Permission handling in external function
This move the setting of user and group permissions in the startup script to its own function.
This commit is contained in:
parent
882f7bcaf2
commit
8d3bd48c7a
4 changed files with 28 additions and 35 deletions
|
@ -1 +1,2 @@
|
|||
from .load_yaml import load_yaml
|
||||
from .permissions import set_permissions
|
||||
|
|
18
startup_scripts/startup_script_utils/permissions.py
Normal file
18
startup_scripts/startup_script_utils/permissions.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
from django.contrib.auth.models import Permission
|
||||
|
||||
|
||||
def set_permissions(subject, permission_filters):
|
||||
if subject is None or permission_filters is None:
|
||||
return
|
||||
subject.clear()
|
||||
for permission_filter in permission_filters:
|
||||
if "*" in permission_filter:
|
||||
permission_filter_regex = "^" + permission_filter.replace("*", ".*") + "$"
|
||||
permissions = Permission.objects.filter(codename__iregex=permission_filter_regex)
|
||||
print(" ⚿ Granting", permissions.count(), "permissions matching '" + permission_filter + "'")
|
||||
else:
|
||||
permissions = Permission.objects.filter(codename=permission_filter)
|
||||
print(" ⚿ Granting permission", permission_filter)
|
||||
|
||||
for permission in permissions:
|
||||
subject.add(permission)
|
Loading…
Add table
Add a link
Reference in a new issue