Image   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 6
c 3
b 0
f 0
dl 0
loc 26
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A delete() 0 3 1
A __str__() 0 2 1
A has_read_permission() 0 3 1
A has_write_permission() 0 3 1
A has_object_read_permission() 0 2 1
A has_object_write_permission() 0 2 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