Completed
Push — master ( a78a43...15b619 )
by Camille
52s
created

img_path()   A

Complexity

Conditions 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 4
rs 10
1
import os.path
2
3
from django.db import models
4
5
from dry_rest_permissions.generics import allow_staff_or_superuser
6
7
from sigma_core.models.user import User
8
from sigma_core.models.group import Group
9
10
11
def img_path(instance, filename):
12
    from django.utils.crypto import get_random_string
13
    extension = os.path.splitext(filename)[1]
14
    return "img/" + get_random_string(length=150, allowed_chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_') + extension
15
16
17
class Image(models.Model):
18
    file = models.ImageField(max_length=255, upload_to=img_path)
19
    owner = models.ForeignKey(User)
20
    added = models.DateTimeField(auto_now_add=True)
21
22
    def __str__(self):
23
        return "Profile image of user %s" % self.user.__str__()
24
25
    def delete(self, *args, **kwargs):
26
        self.file.delete(save=False)
27
        return super(Image, self).delete(*args, **kwargs)
28
29
    # Permissions
30
    @staticmethod
31
    def has_read_permission(request):
32
        return True
33
34
    def has_object_read_permission(self, request):
35
        return True
36
37
    @staticmethod
38
    def has_write_permission(request):
39
        return True
40
41
    def has_object_write_permission(self, request):
42
        return request.user == self.owner
43