Skip to content

Commit 9c802d5

Browse files
committed
Permissions per keywords.
1 parent d835c03 commit 9c802d5

2 files changed

Lines changed: 273 additions & 0 deletions

File tree

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
lm:globalsettings:
2+
- roles: globaladministrator
3+
- users: null
4+
- groups: null
5+
lm:schoolsettings:
6+
- roles: globaladministrator,schooladministrator
7+
- users: null
8+
- groups: null
9+
lm:sync:list:
10+
- roles: globaladministrator,schooladministrator
11+
- users: null
12+
- groups: null
13+
lm:sync:online:
14+
- roles: globaladministrator,schooladministrator
15+
- users: null
16+
- groups: null
17+
lm:sync:sync:
18+
- roles: globaladministrator,schooladministrator
19+
- users: null
20+
- groups: null
21+
lm:crontab:read:
22+
- roles: globaladministrator
23+
- users: null
24+
- groups: null
25+
lm:crontab:write:
26+
- roles: globaladministrator
27+
- users: null
28+
- groups: null
29+
lm:quotas:apply:
30+
- roles: globaladministrator,schooladministrator
31+
- users: null
32+
- groups: null
33+
lm:quotas:configure:
34+
- roles: globaladministrator,schooladministrator
35+
- users: null
36+
- groups: null
37+
lm:quotas:ldap-search:
38+
- roles: globaladministrator,schooladministrator
39+
- users: null
40+
- groups: null
41+
lmn:session:trans:
42+
- roles: teacher
43+
- users: null
44+
- groups: null
45+
lm:users:apply:
46+
- roles: globaladministrator,schooladministrator
47+
- users: null
48+
- groups: null
49+
lm:users:check:
50+
- roles: globaladministrator,schooladministrator
51+
- users: null
52+
- groups: null
53+
lm:users:customfields:read:
54+
- roles: globaladministrator,schooladministrator,teacher,student,parent,staff
55+
- users: null
56+
- groups: null
57+
lm:users:customfields:write:
58+
- roles: globaladministrator,schooladministrator,teacher,student,parent,staff
59+
- users: null
60+
- groups: null
61+
lm:users:extraclasses:read:
62+
- roles: globaladministrator,schooladministrator
63+
- users: null
64+
- groups: null
65+
lm:users:extraclasses:write:
66+
- roles: globaladministrator,schooladministrator
67+
- users: null
68+
- groups: null
69+
lm:users:extrastudents:read:
70+
- roles: globaladministrator,schooladministrator
71+
- users: null
72+
- groups: null
73+
lm:users:extrastudents:write:
74+
- roles: globaladministrator,schooladministrator
75+
- users: null
76+
- groups: null
77+
lm:users:globaladmins:create:
78+
- roles: globaladministrator
79+
- users: null
80+
- groups: null
81+
lm:users:globaladmins:delete:
82+
- roles: globaladministrator
83+
- users: null
84+
- groups: null
85+
lm:users:globaladmins:read:
86+
- roles: globaladministrator
87+
- users: null
88+
- groups: null
89+
lm:users:passwords:
90+
- roles: globaladministrator,schooladministrator,teacher
91+
- users: null
92+
- groups: null
93+
lm:users:schooladmins:create:
94+
- roles: globaladministrator
95+
- users: null
96+
- groups: null
97+
lm:users:schooladmins:delete:
98+
- roles: globaladministrator
99+
- users: null
100+
- groups: null
101+
lm:users:schooladmins:read:
102+
- roles: globaladministrator
103+
- users: null
104+
- groups: null
105+
lm:users:students:read:
106+
- roles: globaladministrator,schooladministrator,teacher
107+
- users: null
108+
- groups: null
109+
lm:users:students:write:
110+
- roles: globaladministrator,schooladministrator,teacher
111+
- users: null
112+
- groups: null
113+
lm:users:parents:read:
114+
- roles: globaladministrator,schooladministrator
115+
- users: null
116+
- groups: null
117+
lm:users:parents:write:
118+
- roles: globaladministrator,schooladministrator
119+
- users: null
120+
- groups: null
121+
lm:users:staff:read:
122+
- roles: globaladministrator,schooladministrator
123+
- users: null
124+
- groups: null
125+
lm:users:staff:write:
126+
- roles: globaladministrator,schooladministrator
127+
- users: null
128+
- groups: null
129+
lm:users:teachers:list:
130+
- roles: globaladministrator,schooladministrator,teacher
131+
- users: null
132+
- groups: null
133+
lm:users:teachers:read:
134+
- roles: globaladministrator,schooladministrator
135+
- users: null
136+
- groups: null
137+
lm:users:teachers:write:
138+
- roles: globaladministrator,schooladministrator
139+
- users: null
140+
- groups: null
141+
lm:users:users:delete:
142+
- roles: globaladministrator,schooladministrator
143+
- users: null
144+
- groups: null
145+
lmn:groupmembership:
146+
- roles: globaladministrator,schooladministrator,teacher
147+
- users: null
148+
- groups: null
149+
lmn:groupmemberships:write:
150+
- roles: globaladministrator,schooladministrator,teacher
151+
- users: null
152+
- groups: null
153+
lm:devices:
154+
- roles: globaladministrator,schooladministrator
155+
- users: null
156+
- groups: null
157+
lm:devices:import:
158+
- roles: globaladministrator,schooladministrator
159+
- users: null
160+
- groups: null
161+
lm:linbo:configs:
162+
- roles: globaladministrator,schooladministrator
163+
- users: null
164+
- groups: null
165+
lm:linbo:examples:
166+
- roles: globaladministrator,schooladministrator
167+
- users: null
168+
- groups: null
169+
lm:linbo:icons:
170+
- roles: globaladministrator,schooladministrator
171+
- users: null
172+
- groups: null
173+
lm:linbo:images:
174+
- roles: globaladministrator,schooladministrator
175+
- users: null
176+
- groups: null
177+
lm:docker:change:
178+
- roles: globaladministrator,schooladministrator
179+
- users: null
180+
- groups: null
181+
lm:docker:list:
182+
- roles: globaladministrator,schooladministrator
183+
- users: null
184+
- groups: null
185+
lm:samba_dns:read:
186+
- roles: globaladministrator,schooladministrator
187+
- users: null
188+
- groups: null
189+
lm:samba_dns:write:
190+
- roles: globaladministrator,schooladministrator
191+
- users: null
192+
- groups: null
193+
core:config:read:
194+
- roles: globaladministrator,schooladministrator,teacher
195+
- users: null
196+
- groups: null
197+
core:config:write:
198+
- roles: globaladministrator,schooladministrator,teacher
199+
- users: null
200+
- groups: null
201+
filesystem:read:
202+
- roles: globaladministrator,schooladministrator
203+
- users: null
204+
- groups: null
205+
filesystem:write:
206+
- roles: globaladministrator,schooladministrator,teacher
207+
- users: null
208+
- groups: null
209+
network:configure:
210+
- roles: globaladministrator
211+
- users: null
212+
- groups: null
213+
network:updown:
214+
- roles: globaladministrator
215+
- users: null
216+
- groups: null
217+
lmn:clients:config:
218+
- roles: globaladministrator,schooladministrator
219+
- users: null
220+
- groups: null
221+
lm:device-manager:read:
222+
- roles: globaladministrator,schooladministrator
223+
- users: null
224+
- groups: null
225+
lm:device-manager:modify:
226+
- roles: globaladministrator,schooladministrator
227+
- users: null
228+
- groups: null
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#! /usr/bin/env python3
2+
3+
import os
4+
import yaml
5+
6+
7+
PLUGIN_PATH = '/usr/lib/linuxmuster-webui/plugins'
8+
PERMISSIONS_TARGET = '/usr/lib/linuxmuster-webui/etc/default_permissions_keywords.yml'
9+
10+
permissions = {
11+
'globaladministrator': [],
12+
'schooladministrator': [],
13+
'teacher': [],
14+
'student': [],
15+
'parent': [],
16+
'staff': []
17+
}
18+
19+
keywords = []
20+
21+
for plugin in os.listdir(PLUGIN_PATH):
22+
permissions_path = os.path.join(PLUGIN_PATH, plugin, 'permissions.yml')
23+
if os.path.isfile(permissions_path):
24+
with open(permissions_path) as tmp_data:
25+
tmp_permissions = yaml.load(tmp_data, Loader=yaml.SafeLoader)
26+
for role in tmp_permissions:
27+
perms = tmp_permissions.get(role, None)
28+
if perms:
29+
permissions[role].extend(perms)
30+
31+
for perm in perms:
32+
keyword = perm.split(': ')[0]
33+
if keyword not in keywords and 'sidebar' not in keyword:
34+
keywords.append(keyword)
35+
36+
with open(PERMISSIONS_TARGET, 'w') as target:
37+
for keyword in keywords:
38+
target.write(f"{keyword}:\n")
39+
authorized_roles = []
40+
for role in permissions.keys():
41+
if f'{keyword}: true' in permissions[role]:
42+
authorized_roles.append(role)
43+
target.write(f"- roles: {','.join(authorized_roles)}\n")
44+
target.write("- users: null\n")
45+
target.write("- groups: null\n")

0 commit comments

Comments
 (0)