Source code for stashy.admin.groups

from ..helpers import ResourceBase, FilteredIterableResource
from ..errors import ok_or_error, response_or_error
from ..compat import update_doc

[docs]class Groups(ResourceBase, FilteredIterableResource): @response_or_error
[docs] 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
[docs] def delete(self, group): """ Delete a group. """ return self._client.delete(self.url(), params=dict(name=group))
@ok_or_error
[docs] 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
[docs] 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))
[docs] 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)
[docs] 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 """)