Passed
Pull Request — master (#70)
by
unknown
01:17
created

GroupFolders.rename_group_folder()   A

Complexity

Conditions 1

Size

Total Lines 13
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 13
rs 10
c 0
b 0
f 0
cc 1
nop 3
1
# -*- coding: utf-8 -*-
2
from nextcloud.base import WithRequester
3
4
5
class GroupFolders(WithRequester):
6
    API_URL = "/apps/groupfolders/folders"
7
    SUCCESS_CODE = 100
8
9
    def get_group_folders(self):
10
        """
11
        Return a list of call configured folders and their settings
12
13
        Returns:
14
15
        """
16
        return self.requester.get()
17
18
    def get_group_folder(self, fid):
19
        """
20
        Return a specific configured folder and it's settings
21
22
        Args:
23
            fid (int/str): group folder id
24
25
        Returns:
26
27
        """
28
        return self.requester.get(fid)
29
30
    def create_group_folder(self, mountpoint):
31
        """
32
        Create a new group folder
33
34
        Args:
35
            mountpoint (str): name for the new folder
36
37
        Returns:
38
39
        """
40
        return self.requester.post(data={"mountpoint": mountpoint})
41
42
    def delete_group_folder(self, fid):
43
        """
44
        Delete a group folder
45
46
        Args:
47
            fid (int/str): group folder id
48
49
        Returns:
50
51
        """
52
        return self.requester.delete(fid)
53
54
    def grant_access_to_group_folder(self, fid, gid):
55
        """
56
        Give a group access to a folder
57
58
        Args:
59
            fid (int/str): group folder id
60
            gid (str): group to share with id
61
62
        Returns:
63
64
        """
65
        url = "/".join([str(fid), "groups"])
66
        return self.requester.post(url, data={"group": gid})
67
68
    def revoke_access_to_group_folder(self, fid, gid):
69
        """
70
        Remove access from a group to a folder
71
72
        Args:
73
            fid (int/str): group folder id
74
            gid (str): group id
75
76
        Returns:
77
78
        """
79
        url = "/".join([str(fid), "groups", gid])
80
        return self.requester.delete(url)
81
82
    def set_permissions_to_group_folder(self, fid, gid, permissions):
83
        """
84
        Set the permissions a group has in a folder
85
86
        Args:
87
            fid (int/str): group folder id
88
            gid (str): group id
89
            permissions (int): The new permissions for the group as attribute of Permission class
90
91
        Returns:
92
93
        """
94
        url = "/".join([str(fid), "groups", gid])
95
        return self.requester.post(url=url, data={"permissions": permissions})
96
97
    def set_quota_of_group_folder(self, fid, quota):
98
        """
99
        Set the quota for a folder in bytes
100
101
        Args:
102
            fid (int/str): group folder id
103
            quota (int/str): The new quota for the folder in bytes, user -3 for unlimited
104
105
        Returns:
106
107
        """
108
        url = "/".join([str(fid), "quota"])
109
        return self.requester.post(url, {"quota": quota})
110
111
    def rename_group_folder(self, fid, mountpoint):
112
        """
113
        Change the name of a folder
114
115
        Args:
116
            fid (int/str): group folder id
117
            mountpoint (str): The new name for the folder
118
119
        Returns:
120
121
        """
122
        url = "/".join([str(fid), "mountpoint"])
123
        return self.requester.post(url=url, data={"mountpoint": mountpoint})
124
125
    def enable_group_folder_advanced_permissions(self, fid):
126
        """
127
        Enable advanced permissions for group folder
128
129
        Args:
130
            fid (int/str): group folder id
131
132
        Returns:
133
134
        """
135
        url = "/".join([str(fid), "1"])
136
        return self.requester.post(url)
137
138
    def disable_group_folder_advanced_permissions(self, fid):
139
        """
140
        Disable advanced permissions for group folder
141
142
        Args:
143
            fid (int/str): group folder id
144
145
        Returns:
146
147
        """
148
        url = "/".join([str(fid), "0"])
149
        return self.requester.post(url)
150
151
    def add_group_folder_manage_group(self, fid, gid):
152
        """
153
        Add group to group folder manangers
154
155
        Args:
156
            fid (int/str): group folder id
157
            gid (str): group id
158
159
        Returns:
160
161
        """
162
        url = "/".join([str(fid), "manageACL"])
163
        return self.requester.post(url=url, data={'manageACL': 1, 'mappingId': gid, 'mappingType': 'group'})
164
165
    def remove_group_folder_manage_group(self, fid, gid):
166
        """
167
        Remove group from group folder manangers
168
169
        Args:
170
            fid (int/str): group folder id
171
            gid (str): group id
172
173
        Returns:
174
175
        """
176
        url = "/".join([str(fid), "manageACL"])
177
        return self.requester.post(url=url, data={'manageACL': 0, 'mappingId': gid, 'mappingType': 'group'})
178
        
179
    def add_group_folder_manage_user(self, fid, uid):
180
        """
181
        Add user to group folder manangers
182
183
        Args:
184
            fid (int/str): group folder id
185
            uid (str): group id
186
187
        Returns:
188
189
        """
190
        url = "/".join([str(fid), "manageACL"])
191
        return self.requester.post(url=url, data={'manageACL': 1, 'mappingId': uid, 'mappingType': 'user'})
192
193
    def remove_group_folder_manage_user(self, fid, uid):
194
        """
195
        Remove user from group folder manangers
196
197
        Args:
198
            fid (int/str): group folder id
199
            uid (str): group id
200
201
        Returns:
202
203
        """
204
        url = "/".join([str(fid), "manageACL"])
205
        return self.requester.post(url=url, data={'manageACL': 0, 'mappingId': uid, 'mappingType': 'user'})
206