diff --git a/inventory/apps.py b/inventory/apps.py index 2ee050d..8f8b12f 100644 --- a/inventory/apps.py +++ b/inventory/apps.py @@ -16,3 +16,4 @@ class InventoryConfig(AppConfig): def ready(self): import inventory.checks # noqa + import inventory.signals # noqa diff --git a/inventory/checks.py b/inventory/checks.py index cd0ffc0..5d83730 100644 --- a/inventory/checks.py +++ b/inventory/checks.py @@ -1,8 +1,6 @@ from pathlib import Path -from django.core.checks import Error, Warning, register - -from inventory.permissions import get_or_create_normal_user_group, setup_normal_user_permissions +from django.core.checks import Error, register @register() @@ -17,25 +15,3 @@ def inventory_checks(app_configs, **kwargs): ) ) return errors - - -@register() -def inventory_user_groups(app_configs, **kwargs): - """ - Setup PyInventory user groups - """ - warnings = [] - - normal_user_group, created = get_or_create_normal_user_group() - if created: - warnings.append( - Warning(f'User group {normal_user_group} created') - ) - - updated = setup_normal_user_permissions(normal_user_group) - if updated: - warnings.append( - Warning(f'Update permissions for {normal_user_group}') - ) - - return warnings diff --git a/inventory/signals.py b/inventory/signals.py new file mode 100644 index 0000000..a397192 --- /dev/null +++ b/inventory/signals.py @@ -0,0 +1,15 @@ +from django.db.models.signals import post_migrate +from django.dispatch import receiver + +from inventory.permissions import get_or_create_normal_user_group, setup_normal_user_permissions + + +@receiver(post_migrate) +def post_migrate_callback(sender, **kwargs): + normal_user_group, created = get_or_create_normal_user_group() + if created: + print(f'User group {normal_user_group} created') + + updated = setup_normal_user_permissions(normal_user_group) + if updated: + print(f'Update permissions for {normal_user_group}')