forked from Dosugamea/NEXT-OCS-API-forPy
-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathgroup_folders.py
More file actions
205 lines (144 loc) · 5.04 KB
/
group_folders.py
File metadata and controls
205 lines (144 loc) · 5.04 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# -*- coding: utf-8 -*-
from nextcloud.base import WithRequester
class GroupFolders(WithRequester):
API_URL = "/apps/groupfolders/folders"
SUCCESS_CODE = 100
def get_group_folders(self):
"""
Return a list of call configured folders and their settings
Returns:
"""
return self.requester.get()
def get_group_folder(self, fid):
"""
Return a specific configured folder and it's settings
Args:
fid (int/str): group folder id
Returns:
"""
return self.requester.get(fid)
def create_group_folder(self, mountpoint):
"""
Create a new group folder
Args:
mountpoint (str): name for the new folder
Returns:
"""
return self.requester.post(data={"mountpoint": mountpoint})
def delete_group_folder(self, fid):
"""
Delete a group folder
Args:
fid (int/str): group folder id
Returns:
"""
return self.requester.delete(fid)
def grant_access_to_group_folder(self, fid, gid):
"""
Give a group access to a folder
Args:
fid (int/str): group folder id
gid (str): group to share with id
Returns:
"""
url = "/".join([str(fid), "groups"])
return self.requester.post(url, data={"group": gid})
def revoke_access_to_group_folder(self, fid, gid):
"""
Remove access from a group to a folder
Args:
fid (int/str): group folder id
gid (str): group id
Returns:
"""
url = "/".join([str(fid), "groups", gid])
return self.requester.delete(url)
def set_permissions_to_group_folder(self, fid, gid, permissions):
"""
Set the permissions a group has in a folder
Args:
fid (int/str): group folder id
gid (str): group id
permissions (int): The new permissions for the group as attribute of Permission class
Returns:
"""
url = "/".join([str(fid), "groups", gid])
return self.requester.post(url=url, data={"permissions": permissions})
def set_quota_of_group_folder(self, fid, quota):
"""
Set the quota for a folder in bytes
Args:
fid (int/str): group folder id
quota (int/str): The new quota for the folder in bytes, user -3 for unlimited
Returns:
"""
url = "/".join([str(fid), "quota"])
return self.requester.post(url, {"quota": quota})
def rename_group_folder(self, fid, mountpoint):
"""
Change the name of a folder
Args:
fid (int/str): group folder id
mountpoint (str): The new name for the folder
Returns:
"""
url = "/".join([str(fid), "mountpoint"])
return self.requester.post(url=url, data={"mountpoint": mountpoint})
def enable_group_folder_advanced_permissions(self, fid):
"""
Enable advanced permissions for group folder
Args:
fid (int/str): group folder id
Returns:
"""
url = "/".join([str(fid), "1"])
return self.requester.post(url)
def disable_group_folder_advanced_permissions(self, fid):
"""
Disable advanced permissions for group folder
Args:
fid (int/str): group folder id
Returns:
"""
url = "/".join([str(fid), "0"])
return self.requester.post(url)
def add_group_folder_manage_group(self, fid, gid):
"""
Add group to group folder manangers
Args:
fid (int/str): group folder id
gid (str): group id
Returns:
"""
url = "/".join([str(fid), "manageACL"])
return self.requester.post(url=url, data={'manageACL': 1, 'mappingId': gid, 'mappingType': 'group'})
def remove_group_folder_manage_group(self, fid, gid):
"""
Remove group from group folder manangers
Args:
fid (int/str): group folder id
gid (str): group id
Returns:
"""
url = "/".join([str(fid), "manageACL"])
return self.requester.post(url=url, data={'manageACL': 0, 'mappingId': gid, 'mappingType': 'group'})
def add_group_folder_manage_user(self, fid, uid):
"""
Add user to group folder manangers
Args:
fid (int/str): group folder id
uid (str): group id
Returns:
"""
url = "/".join([str(fid), "manageACL"])
return self.requester.post(url=url, data={'manageACL': 1, 'mappingId': uid, 'mappingType': 'user'})
def remove_group_folder_manage_user(self, fid, uid):
"""
Remove user from group folder manangers
Args:
fid (int/str): group folder id
uid (str): group id
Returns:
"""
url = "/".join([str(fid), "manageACL"])
return self.requester.post(url=url, data={'manageACL': 0, 'mappingId': uid, 'mappingType': 'user'})