feat(backend): added auth, reviews, users modules
also provided tests
This commit is contained in:
@@ -1,11 +1,44 @@
|
||||
from django.contrib.auth.models import AbstractUser
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from apps.core.models import BaseModel
|
||||
|
||||
|
||||
class UserRole(models.TextChoices):
|
||||
ADMIN = "admin", _("Admin")
|
||||
EXPERIMENTER = "experimenter", _("Experimenter")
|
||||
APPROVER = "approver", _("Approver")
|
||||
VIEWER = "viewer", _("Viewer")
|
||||
|
||||
|
||||
class User(AbstractUser, BaseModel):
|
||||
role = models.CharField(
|
||||
max_length=20,
|
||||
choices=UserRole.choices,
|
||||
default=UserRole.VIEWER,
|
||||
db_index=True,
|
||||
verbose_name=_("role"),
|
||||
help_text=_("Platform role that defines user permissions"),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
swappable = "AUTH_USER_MODEL"
|
||||
verbose_name = _("user")
|
||||
verbose_name_plural = _("users")
|
||||
|
||||
@property
|
||||
def is_admin_role(self) -> bool:
|
||||
return self.role == UserRole.ADMIN
|
||||
|
||||
@property
|
||||
def is_experimenter(self) -> bool:
|
||||
return self.role == UserRole.EXPERIMENTER
|
||||
|
||||
@property
|
||||
def is_approver(self) -> bool:
|
||||
return self.role == UserRole.APPROVER
|
||||
|
||||
@property
|
||||
def is_viewer(self) -> bool:
|
||||
return self.role == UserRole.VIEWER
|
||||
|
||||
Reference in New Issue
Block a user