Completed
Push — master ( 576afd...c4beda )
by
unknown
01:15
created

GroupMember.has_perm()   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 2
c 1
b 0
f 1
rs 10
cc 1
1
from django.db import models
2
from django.http import Http404
3
4
from sigma_core.models.user import User
5
6
class GroupMember(models.Model):
7
    """
8
    Modelize a membership relation between an User and a Group.
9
    """
10
    class Meta:
11
        # TODO: Make a primary key once Django supports it
12
        unique_together = (("user", "group"),)
13
14
    user = models.ForeignKey('User', related_name='memberships')
15
    group = models.ForeignKey('Group', related_name='memberships')
16
    created = models.DateTimeField(auto_now_add=True)
17
    join_date = models.DateField(blank=True, null=True)
18
    leave_date = models.DateField(blank=True, null=True)
19
20
    # if super_administrator = True then is_administrator = True
21
    # administrators must have all the rights below
22
    is_administrator = models.BooleanField(default=False)
23
    is_super_administrator = models.BooleanField(default=False)
24
    can_invite = models.BooleanField(default=False)
25
    can_be_contacted = models.BooleanField(default=False)
26
    can_publish = models.BooleanField(default=False)
27
    can_kick = models.BooleanField(default=False)
28
    is_accepted = models.BooleanField(default=False)
29
    can_modify_group_infos = models.BooleanField(default=False)
30
31
    # Related fields:
32
    #   - values (model GroupMemberValue)
33
34
    def __str__(self):
35
        return "User \"%s\" in Group \"%s\"" % (self.user.__str__(), self.group.__str__())
36
37
    # Perms for admin site
38
    def has_perm(self, perm, obj=None): # pragma: no cover
39
        return True
40
41
    def has_module_perms(self, app_label): # pragma: no cover
42
        return True
43