Source code for sisense.admin.user

from sisense.resource import Resource


[docs]class User(Resource):
[docs] def get(self, email: str = None, oid: str = None) -> Resource: """ Get user by e-mail. At least one parameter should be set. :param email: (str, default None) User's e-mail. :param oid: (str, default None) User's ID. :return: User, if found. None, otherwise. """ if oid: content = self._api.get(f'users/{oid}') elif email: content = self._api.get('users', query={'email': email}) content = content[0] if len(content) else None else: raise ValueError('At least one parameter should be set.') return User(self._api, content) if content else None
[docs] def all(self, **kwargs) -> list: """ Get all users. :param kwargs: Positional optional arguments used to filter users: - userName: (str) Username. - email: (str) User's email. - firstName: (str) User's first name. - lastName: (str) User's last name. - roleId: (str) Role ID. - groupId: (str) Group ID. - active: (bool) Whether to get active users (True) or not (False). - origin: ('ad', 'sisense') User's origin. - ids: (list) Users' IDs. - fields: (list) Which fields to return. - sort: (str) Field in which the results should be sorted. - skip: (int) Number of results to skip from start. - limit: (int) Number of results returned. - expand: (list) Fields that should be expanded (substitutes their IDs with actual objects). :return: (list) """ content = self._api.get('users', query=kwargs) content = [User(self._api, rjson) for rjson in content] return content
[docs] def create(self, email: str, **kwargs) -> Resource: """ Create a new user. :param email: (str) User's email. :param kwargs: (dict) Optional keyword arguments: - userName: (str) Username. - firstName: (str) First name. - lastName: (str) Last name. - roleId: (str) Role's ID. - groups: (list) Group's ID in which user is part of. :return: (User) Newly created user. """ data = {'email': email} data.update(kwargs) content = self._api.post('users', data=data) return User(self._api, content)
[docs] def update(self, **kwargs): """ Update the current user. At least one argument must be set. :param kwargs: Positional optional arguments: - email: (str), - userName: (str) Username. - firstName: (str) First name. - lastName: (str) Last name. - roleId: (str) Role's ID. - groups: (list) Group's ID in which user is part of. - preferences: (dict) User's preferences such as 'localeId'. - uiSettings: (dict) User's UI settings. """ content = self._api.patch(f'users/{self._id}', data=kwargs) self.json = content
[docs] def delete(self): """Delete the current user.""" self._api.delete(f'users/{self._id}')