Рефакторинг: убрана зависимость от 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:
2026-01-10 00:10:25 +03:00
parent d90b0162c5
commit b63162b1cb
5 changed files with 162 additions and 43 deletions

View File

@@ -0,0 +1,54 @@
# Generated by Django 5.0.10 on 2026-01-09 21:04
import django.utils.timezone
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='customuser',
name='first_name',
),
migrations.RemoveField(
model_name='customuser',
name='groups',
),
migrations.RemoveField(
model_name='customuser',
name='last_name',
),
migrations.RemoveField(
model_name='customuser',
name='user_permissions',
),
migrations.RemoveField(
model_name='customuser',
name='username',
),
migrations.AlterField(
model_name='customuser',
name='date_joined',
field=models.DateTimeField(default=django.utils.timezone.now),
),
migrations.AlterField(
model_name='customuser',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='customuser',
name='is_staff',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='customuser',
name='is_superuser',
field=models.BooleanField(default=False),
),
]