Рефакторинг: убрана зависимость от Django Groups/Permissions для CustomUser
- CustomUser теперь наследуется от AbstractBaseUser (вместо AbstractUser) - Удалены поля groups и user_permissions из CustomUser - Все authentication backends (TenantUserBackend, PlatformAdminBackend, RoleBasedPermissionBackend) больше НЕ наследуются от ModelBackend - Добавлены методы has_perm() и has_module_perms() в CustomUser для делегирования проверки прав кастомным backends - Полная изоляция: CustomUser использует только систему ролей (UserRole), PlatformAdmin использует только is_superuser - Удалён весь старый код, связанный с Django permissions - Нет обратной совместимости (не требуется) - Чистая архитектура для multi-tenant приложения
This commit is contained in:
@@ -7,15 +7,18 @@ Authentication backend для CustomUser (пользователей тенан
|
||||
|
||||
ВАЖНО: CustomUser теперь в TENANT_APPS - каждый тенант имеет свою таблицу!
|
||||
Backend работает с таблицей accounts_customuser в текущей tenant schema.
|
||||
|
||||
ВАЖНО: НЕ наследуется от ModelBackend! Полностью независимая реализация.
|
||||
"""
|
||||
from django.contrib.auth.backends import ModelBackend
|
||||
from django.db import connection
|
||||
|
||||
|
||||
class TenantUserBackend(ModelBackend):
|
||||
class TenantUserBackend:
|
||||
"""
|
||||
Backend аутентификации для CustomUser (tenant-only).
|
||||
|
||||
НЕ наследуется от ModelBackend! Полностью независимая реализация.
|
||||
|
||||
Особенности:
|
||||
- Работает ТОЛЬКО на tenant доменах (не на public)
|
||||
- Ищет пользователя в таблице accounts_customuser текущей tenant schema
|
||||
|
||||
Reference in New Issue
Block a user