-
Notifications
You must be signed in to change notification settings - Fork 148
/
groups.py
61 lines (50 loc) · 1.96 KB
/
groups.py
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
from ..helpers import ResourceBase, FilteredIterableResource
from ..errors import ok_or_error, response_or_error
from ..compat import update_doc
class Groups(ResourceBase, FilteredIterableResource):
@response_or_error
def add(self, group):
"""
Add a group, returns a dictionary containing the group name
"""
return self._client.post(self.url(), {}, params=dict(name=group))
@ok_or_error
def delete(self, group):
"""
Delete a group.
"""
return self._client.delete(self.url(), params=dict(name=group))
@ok_or_error
def add_user(self, group, user):
"""
Add a user to a group.
"""
return self._client.post(self.url("/add-user"), dict(context=group, itemName=user))
@ok_or_error
def remove_user(self, group, user):
"""
Remove a user to a group.
"""
return self._client.post(self.url("/remove-user"), dict(context=group, itemName=user))
def more_members(self, group, filter=None):
"""
Retrieves a list of users that are members of a specified group.
filter: return only users with usernames, display names or email addresses containing this string
"""
params = dict(context=group)
if filter:
params['filter'] = filter
return self.paginate("/more-members", params)
def more_non_members(self, group, filter=None):
"""
Retrieves a list of users that are not members of a specified group.
filter: return only users with usernames, display names or email addresses containing this string
"""
params = dict(context=group)
if filter:
params['filter'] = filter
return self.paginate("/more-non-members", params)
update_doc(Groups.all, """
Returns an iterator that will walk all the groups, paginating as necessary.
filter: if specified only group names containing the supplied string will be returned
""")