From 4e31218ce64d3bf36ed3c8f6f16c69ad48373f23 Mon Sep 17 00:00:00 2001 From: ryanmerolle Date: Sun, 25 Apr 2021 11:15:46 -0400 Subject: [PATCH] update object permission conditionals --- startup_scripts/015_object_permissions.py | 46 ++++++++++++----------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/startup_scripts/015_object_permissions.py b/startup_scripts/015_object_permissions.py index 5b41e52..5d9cede 100644 --- a/startup_scripts/015_object_permissions.py +++ b/startup_scripts/015_object_permissions.py @@ -10,39 +10,41 @@ if object_permissions is None: sys.exit() -for params in object_permissions: +for permission_name, permission_details in object_permissions.items(): object_permission, created = ObjectPermission.objects.get_or_create( - name=params["name"], - description=params["description"], - enabled=params["enabled"], - actions=params["actions"], + name=permission_name, + description=permission_details["description"], + enabled=permission_details["enabled"], + actions=permission_details["actions"], ) # Need to try to pass a list of model_name and app_label for more than the current ALL - # object_types = ContentType.objects.filter(app_label__in=params.pop("object_types")) - # object_permission.object_types.set(ContentType.objects.filter(app_label__in=params.pop("object_types"))) + # object_types = ContentType.objects.filter(app_label__in=permission_details["object_types"]) + # object_permission.object_types.set(ContentType.objects.filter(app_label__in=permission_details"object_types"])) object_permission.object_types.set(ContentType.objects.all()) object_permission.save() print("🔓 Created object permission", object_permission.name) + + if permission_details.get("groups", 0): + for groupname in permission_details["groups"]: + group = AdminGroup.objects.get(name=groupname) - for groupname in params.get("groups", []): - group = AdminGroup.objects.get(name=groupname) + if group: + object_permission.groups.add(group) + print( + " 👥 Assigned group %s object permission of %s" % (groupname, object_permission.name) + ) - if group: - object_permission.groups.add(group) - print( - " 👥 Assigned group %s object permission of %s" % (groupname, object_permission.name) - ) + if permission_details.get("users", 0): + for username in permission_details["users"]: + user = AdminUser.objects.get(username=username) - for username in params.get("users", []): - user = AdminUser.objects.get(username=username) - - if user: - object_permission.users.add(user) - print( - " 👤 Assigned user %s object permission of %s" % (username, object_permission.name) - ) + if user: + object_permission.users.add(user) + print( + " 👤 Assigned user %s object permission of %s" % (username, object_permission.name) + ) object_permission.save()