Обновления в 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

@@ -18,6 +18,12 @@ class RoleService:
поэтому роли создаются в schema конкретного тенанта автоматически!
"""
default_roles = [
{
'code': Role.PLATFORM_SUPPORT,
'name': 'Техподдержка платформы',
'description': 'Служебный аккаунт техподдержки платформы. Полный доступ для помощи владельцу.',
'is_system': True,
},
{
'code': Role.OWNER,
'name': 'Владелец',
@@ -50,6 +56,26 @@ class RoleService:
defaults=role_data
)
@staticmethod
def get_visible_roles():
"""
Возвращает роли, видимые для пользователей тенанта.
Исключает служебные роли (platform_support).
"""
return Role.objects.exclude(code__in=Role.HIDDEN_ROLES)
@staticmethod
def get_visible_users():
"""
Возвращает пользователей, видимых для владельца тенанта.
Исключает пользователей с ролью platform_support.
"""
from accounts.models import CustomUser
hidden_user_ids = UserRole.objects.filter(
role__code__in=Role.HIDDEN_ROLES
).values_list('user_id', flat=True)
return CustomUser.objects.exclude(id__in=hidden_user_ids)
@staticmethod
def get_role_by_code(code):
"""Получить роль по коду"""