Обновления в user_roles: модели, сервисы, представления и миграции

This commit is contained in:
2026-01-08 22:15:42 +03:00
parent 76acf419fc
commit 75384999ee
4 changed files with 70 additions and 18 deletions

View File

@@ -13,18 +13,23 @@ class Role(models.Model):
Не нужно явно связывать с тенантом через FK - изоляция происходит автоматически!
"""
PLATFORM_SUPPORT = 'platform_support'
OWNER = 'owner'
MANAGER = 'manager'
FLORIST = 'florist'
COURIER = 'courier'
ROLE_CHOICES = [
(PLATFORM_SUPPORT, 'Техподдержка платформы'),
(OWNER, 'Владелец'),
(MANAGER, 'Менеджер'),
(FLORIST, 'Флорист'),
(COURIER, 'Курьер'),
]
# Роли, скрытые от пользователей тенанта (не отображаются в списках)
HIDDEN_ROLES = [PLATFORM_SUPPORT]
code = models.CharField(
max_length=20,
choices=ROLE_CHOICES,
@@ -67,11 +72,11 @@ class UserRole(models.Model):
Один пользователь = одна роль в рамках одного тенанта.
"""
user = models.OneToOneField(
settings.AUTH_USER_MODEL,
'accounts.CustomUser',
on_delete=models.CASCADE,
related_name='tenant_role',
verbose_name="Пользователь",
help_text="Пользователь из public schema (SHARED_APPS)"
help_text="Пользователь тенанта (из tenant schema)"
)
role = models.ForeignKey(
Role,
@@ -81,7 +86,7 @@ class UserRole(models.Model):
)
created_at = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
'accounts.CustomUser',
null=True,
blank=True,
on_delete=models.SET_NULL,