Реализовал систему разрешений

This commit is contained in:
2025-12-15 11:45:25 +03:00
parent ca7709ebff
commit 46dc79b93f
33 changed files with 1340 additions and 124 deletions

View File

@@ -0,0 +1,38 @@
"""
Management command для инициализации разрешений в базе данных.
Usage:
python manage.py init_permissions
"""
from django.core.management.base import BaseCommand
from mainapp.models import UserPermission
from mainapp.permissions import PERMISSIONS
class Command(BaseCommand):
help = 'Инициализирует все разрешения в базе данных'
def handle(self, *args, **options):
created_count = 0
existing_count = 0
for code, name, description in PERMISSIONS:
permission, created = UserPermission.objects.get_or_create(code=code)
if created:
created_count += 1
self.stdout.write(
self.style.SUCCESS(f'Создано разрешение: {code} - {name}')
)
else:
existing_count += 1
self.stdout.write(
self.style.SUCCESS(
f'\nГотово! Создано: {created_count}, уже существовало: {existing_count}'
)
)
# Показываем все разрешения
self.stdout.write('\nВсе разрешения в системе:')
for code, name, description in PERMISSIONS:
self.stdout.write(f' - {code}: {name}')