Image.has_object_read_permission()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 2
rs 10
cc 1
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 self.file.__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