-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgroup_utils.py
More file actions
72 lines (58 loc) · 1.74 KB
/
Copy pathgroup_utils.py
File metadata and controls
72 lines (58 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import json
filename = "Data/groups.json"
def add_permission(group, permission):
data = read_json()
data['Groups'][group]['Permissions'].append(permission)
write_json(data)
def remove_permission(group, permission):
data = read_json()
data['Groups'][group]['Permissions'].remove(permission)
write_json(data)
def read_permissions(group):
data = read_json()
return data['Groups'][group]['Permissions']
def read_json():
with open(filename, "r") as jsonfile:
return json.load(jsonfile)
def write_json(data):
with open(filename, "w") as jsonfile:
json.dump(data, jsonfile)
return
def has_permission(user, permission):
for group in get_groups():
if in_group(user, group):
for perm in group_permissions(group):
if perm == permission:
return True
return False
def create_group(group):
data = read_json()
data['Groups'][group]={"Permissions": [], "Users": []}
write_json(data)
def join_group(group, user):
data = read_json()
data['Groups'][group]['Users'].append(user)
write_json(data)
def leave_group(group, user):
data = read_json()
data['Groups'][group]['Users'].remove(user)
write_json(data)
def remove_group(group):
data = read_json()
del data['Groups'][group]
write_json(data)
def in_group(user, group):
users = read_json()['Groups'][group]['Users']
if users.count(user) > 0:
return True
else:
return False
def group_permissions(group):
permissions = read_json()['Groups'][group]['Permissions']
return permissions
def get_groups():
group_list = []
groups = read_json()['Groups']
for group in groups:
group_list.append(group)
return group_list