diff options
-rw-r--r-- | ishtar_common/management/commands/regenerate_permissions.py | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/ishtar_common/management/commands/regenerate_permissions.py b/ishtar_common/management/commands/regenerate_permissions.py index 599e64d64..9cd8b2277 100644 --- a/ishtar_common/management/commands/regenerate_permissions.py +++ b/ishtar_common/management/commands/regenerate_permissions.py @@ -19,9 +19,9 @@ from django.core.management.base import BaseCommand -from django.contrib.contenttypes.models import ContentType -from django.contrib.auth.models import Permission +from django.contrib.auth.management import create_permissions +from django.apps import apps class Command(BaseCommand): @@ -29,13 +29,7 @@ class Command(BaseCommand): help = 'Regenerate permissions' def handle(self, *args, **options): - for ct in ContentType.objects.all(): - model = ct.model_class() - if not model: - continue - for perm_slug, perm_label in model._meta.permissions: - perm, c = Permission.objects.get_or_create( - content_type=ct, codename=perm_slug, - defaults={'name': perm_label}) - if c: - print('Permission {} created.'.format(perm_label)) + for app in ['ishtar_common', 'archaeological_operations', + 'archaeological_context_records', + 'archaeological_finds', 'archaeological_warehouse']: + create_permissions(apps.get_app_config(app)) |