Completed
Push — master ( 9a7f1b...b2a2c0 )
by Camille
9s
created

Cluster.save()   A

Complexity

Conditions 1

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 15
rs 9.4285
cc 1
1
from django.db import models
2
3
from sigma_core.models.group import Group
4
5
6
class Cluster(Group):
7
    design = models.CharField(max_length=255)
8
9
    DEFAULT_MEMBER_RANK = 1
10
    ADMINISTRATOR_RANK = Group.ADMINISTRATOR_RANK
11
12
    # Related fields:
13
    #   - cluster_users (model User.clusters)
14
15
    def save(self, *args, **kwargs):
16
        """
17
        Clusters are special groups: some params cannot be specified by user.
18
        """
19
        self.is_private = False
20
        self.default_member_rank = -1
21
        self.req_rank_invite = Group.ADMINISTRATOR_RANK
22
        self.req_rank_kick = Group.ADMINISTRATOR_RANK
23
        self.req_rank_accept_join_requests = Group.ADMINISTRATOR_RANK
24
        self.req_rank_promote = Group.ADMINISTRATOR_RANK
25
        self.req_rank_demote = Group.ADMINISTRATOR_RANK
26
        self.req_rank_modify_group_infos = Group.ADMINISTRATOR_RANK
27
        self.is_protected = True
28
29
        return super().save(*args, **kwargs)
30
31
    @property
32
    def subgroups_list(self):
33
        return self.group_ptr.subgroups_list
34