Skip to content

Commit aa0d2a6

Browse files
LBegnaudcimnine
authored andcommitted
simplify yml definitions to use wildcard syntax
1 parent cce4370 commit aa0d2a6

File tree

4 files changed

+25
-36
lines changed

4 files changed

+25
-36
lines changed

initializers/groups.yml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,15 @@
77
# writers:
88
# users:
99
# - writer
10-
## specify explicit permission codenames or codename filter functions and filters to match on
10+
## specify explicit permission codenames or include wildcard to match multiple permissions
1111
# permissions:
1212
# - delete_device
1313
# - delete_virtualmachine
14-
# - codename__startswith:
15-
# - add_
16-
# - change_
14+
# - add_*
15+
# - change_*
1716
# vm_managers:
18-
# - codename__endswith:
19-
# - _virtualmachine
17+
# - *_virtualmachine
2018
# device_managers:
21-
# - codename__contains:
22-
# - device
19+
# - *device*
2320
# creators:
24-
# - codename__startswith:
25-
# - add_
21+
# - add_*

initializers/users.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
# password: reader
55
# writer:
66
# password: writer
7-
## specify explicit permission codenames or codename filter functions and filters to match on
7+
## specify explicit permission codenames or include wildcard to match multiple permissions
88
# permissions:
99
# - delete_device
1010
# - delete_virtualmachine
11-
# - codename__startswith:
12-
# - add_
13-
# - change_
11+
# - add_*
12+
# - change_*

startup_scripts/000_users.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,15 @@
3030
if yaml_permissions:
3131
permission_object.permissions.clear()
3232
for yaml_permission in yaml_permissions:
33-
if isinstance(yaml_permission,dict):
34-
# assume this is the specific codename filter function instead of an exact codename
35-
permission_codename_function = list(yaml_permission.keys())[0]
36-
permission_codenames = yaml_permission[permission_codename_function]
33+
if '*' in yaml_permission:
34+
permission_codename_function = 'codename__iregex'
35+
permission_codename = '^' + yaml_permission.replace('*','.*') + '$'
3736
else:
3837
permission_codename_function = 'codename'
39-
permission_codenames = list({yaml_permission})
40-
41-
# supports either one codename from the permissions list, or multiple codenames in a codename_function dict
42-
for permission_codename in permission_codenames:
43-
# supports non-unique permission codenames
44-
for permission in eval('Permission.objects.filter(' + permission_codename_function + '=permission_codename)'):
45-
permission_object.permissions.add(permission)
38+
permission_codename = yaml_permission
39+
40+
# supports non-unique permission codenames
41+
for permission in eval('Permission.objects.filter(' + permission_codename_function + '=permission_codename)'):
42+
permission_object.permissions.add(permission)
4643

4744
permission_object.save()

startup_scripts/010_groups.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,13 @@
2929
if yaml_permissions:
3030
permission_object.permissions.clear()
3131
for yaml_permission in yaml_permissions:
32-
if isinstance(yaml_permission,dict):
33-
# assume this is the specific codename filter function instead of an exact codename
34-
permission_codename_function = list(yaml_permission.keys())[0]
35-
permission_codenames = yaml_permission[permission_codename_function]
32+
if '*' in yaml_permission:
33+
permission_codename_function = 'codename__iregex'
34+
permission_codename = '^' + yaml_permission.replace('*','.*') + '$'
3635
else:
3736
permission_codename_function = 'codename'
38-
permission_codenames = list({yaml_permission})
39-
40-
# supports either one codename from the permissions list, or multiple codenames in a codename_function dict
41-
for permission_codename in permission_codenames:
42-
# supports non-unique permission codenames
43-
for permission in eval('Permission.objects.filter(' + permission_codename_function + '=permission_codename)'):
44-
permission_object.permissions.add(permission)
37+
permission_codename = yaml_permission
38+
39+
# supports non-unique permission codenames
40+
for permission in eval('Permission.objects.filter(' + permission_codename_function + '=permission_codename)'):
41+
permission_object.permissions.add(permission)

0 commit comments

Comments
 (0)