{% if user.is_authenticated %}
{% if user.person.has_right_modify_account %}
{% endif %}{% if user.person.has_right_view_customers %}{% endif %}
class Role(BaseModel):
R_TYPE_SUPER_ADMIN = 1
R_TYPE_ADMIN = 2
R_TYPE_EMPLOYEE = 3
TAB_R_TYPE = {
R_TYPE_SUPER_ADMIN: _("Super-admin"),
R_TYPE_ADMIN: _("Co-branding admin"),
R_TYPE_EMPLOYEE: _("Co-branding employee"),
}
authorization_level = models.IntegerField(
choices=[(a, b) for a, b in list(TAB_R_TYPE.items())],
default=R_TYPE_CO_BRANDING_EMPLOYEE)
def authorization_level_description(self):
return Role.TAB_R_TYPE[self.authorization_level]
description = models.CharField(max_length=200, default=None,
blank=True, null=True)
def __str__(self):
return str(self.description) if self.description is not None else '?'
class Person(models.Model):
user = models.ForeignKey(User)
roles = models.ManyToManyField(Role)
class Person(models.Model):
user = models.ForeignKey(User)
roles = models.ManyToManyField(Role)
def has_right_modify_account(self): # only admin and super admin
return len(self.roles.all() & [Role.R_TYPE_SUPER_ADMIN, Role.R_TYPE_ADMIN]) > 0
def has_right_view_customers(self):
# everybody = at least one role:
return len(self.roles.all()) > 0