Completed
Push — master ( 275057...223d4e )
by
unknown
10s
created

Message.has_object_read_permission()   A

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
# -*- coding: utf-8 -*-
2
from django.db import models
3
4
from sigma_chat.models.chat_member import ChatMember
5
from sigma_chat.models.chat import Chat
6
7
8
def chat_directory_path(instance, filename):
9
    # file will be uploaded to MEDIA_ROOT/user_<id>/<filename>
10
    return 'uploads/chats/{0}/{1}'.format(instance.chat_id.id, filename)
11
12
13
class Message(models.Model):
14
    text = models.TextField(blank=True)
15
    chatmember_id = models.ForeignKey(ChatMember, related_name='chatmember_message')
16
    chat_id = models.ForeignKey(Chat, related_name='message')
17
    date = models.DateTimeField(auto_now=True)
18
    attachment = models.FileField(upload_to=chat_directory_path, blank=True)
19
20
    ################################################################
21
    # PERMISSIONS                                                  #
22
    ################################################################
23
24
    @staticmethod
25
    def has_read_permission(request):
26
        return True
27
28
    def has_object_read_permission(self, request):
29
        return request.user.is_member(self.chat)
30
31
    @staticmethod
32
    def has_write_permission(request):
33
        return True
34
35
    def has_object_write_permission(self, request):
36
        return request.user == self.chatmember.user and self.chatmember.is_member
37