From af559daddac69336d1b0563c3236e53180fad26d Mon Sep 17 00:00:00 2001 From: Shaxobff Date: Fri, 24 Apr 2026 11:04:37 +0500 Subject: [PATCH] ADD permission --- core/apps/accounts/models/user.py | 2 ++ .../apps/evaluation/permissions/permission.py | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 core/apps/evaluation/permissions/permission.py diff --git a/core/apps/accounts/models/user.py b/core/apps/accounts/models/user.py index d6e375f..154fb35 100644 --- a/core/apps/accounts/models/user.py +++ b/core/apps/accounts/models/user.py @@ -3,6 +3,7 @@ from django.db import models from ..choices import RoleChoice from ..managers import UserManager +from ...evaluation.permissions.permission import Role class User(auth_models.AbstractUser): @@ -17,6 +18,7 @@ class User(auth_models.AbstractUser): default=RoleChoice.USER, ) avatar = models.ImageField(upload_to="avatars/", null=True, blank=True) + role_permission = models.ForeignKey(Role, on_delete=models.SET_NULL, null=True) USERNAME_FIELD = "phone" objects = UserManager() diff --git a/core/apps/evaluation/permissions/permission.py b/core/apps/evaluation/permissions/permission.py new file mode 100644 index 0000000..3905419 --- /dev/null +++ b/core/apps/evaluation/permissions/permission.py @@ -0,0 +1,21 @@ +from django.db import models + + +class Role(models.Model): + name = models.CharField(max_length=50) + + +class Permission(models.Model): + class Action(models.TextChoices): + CREATE = "create_avto_valuation" + CREATE_FAST = "create_fast_auto_valuation" + CREATE_AVTO_APPEAL = "create_avto_appeal" + + page = models.CharField(max_length=100) + section = models.CharField(max_length=100, null=True, blank=True) + action = models.CharField(max_length=20, choices=Action.choices) + + +class RolePermission(models.Model): + role = models.ForeignKey(Role, on_delete=models.CASCADE) + permission = models.ForeignKey(Permission, on_delete=models.CASCADE)