Files
timerr/apps/accounts/models.py
T
2026-07-15 00:12:31 +05:00

28 lines
1007 B
Python

from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
class Role(models.TextChoices):
ADMIN = "admin", "Администратор"
WORKER = "worker", "Исполнитель"
role = models.CharField(max_length=16, choices=Role.choices, default=Role.WORKER)
must_change_password = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
@property
def is_app_admin(self):
return self.is_superuser or self.role == self.Role.ADMIN
def save(self, *args, **kwargs):
if self.role == self.Role.ADMIN:
self.is_staff = True
super().save(*args, **kwargs)
def has_perm(self, perm, obj=None):
return True if self.is_app_admin else super().has_perm(perm, obj)
def has_module_perms(self, app_label):
return True if self.is_app_admin else super().has_module_perms(app_label)