File tree Expand file tree Collapse file tree 4 files changed +25
-36
lines changed Expand file tree Collapse file tree 4 files changed +25
-36
lines changed Original file line number Diff line number Diff line change 7
7
# writers:
8
8
# users:
9
9
# - 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
11
11
# permissions:
12
12
# - delete_device
13
13
# - delete_virtualmachine
14
- # - codename__startswith:
15
- # - add_
16
- # - change_
14
+ # - add_*
15
+ # - change_*
17
16
# vm_managers:
18
- # - codename__endswith:
19
- # - _virtualmachine
17
+ # - *_virtualmachine
20
18
# device_managers:
21
- # - codename__contains:
22
- # - device
19
+ # - *device*
23
20
# creators:
24
- # - codename__startswith:
25
- # - add_
21
+ # - add_*
Original file line number Diff line number Diff line change 4
4
# password: reader
5
5
# writer:
6
6
# 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
8
8
# permissions:
9
9
# - delete_device
10
10
# - delete_virtualmachine
11
- # - codename__startswith:
12
- # - add_
13
- # - change_
11
+ # - add_*
12
+ # - change_*
Original file line number Diff line number Diff line change 30
30
if yaml_permissions :
31
31
permission_object .permissions .clear ()
32
32
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 ('*' ,'.*' ) + '$'
37
36
else :
38
37
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 )
46
43
47
44
permission_object .save ()
Original file line number Diff line number Diff line change 29
29
if yaml_permissions :
30
30
permission_object .permissions .clear ()
31
31
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 ('*' ,'.*' ) + '$'
36
35
else :
37
36
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 )
You can’t perform that action at this time.
0 commit comments