Source code for pylero.user

# -*- coding: utf8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

from pylero.base_polarion import BasePolarion
from pylero.exceptions import PyleroLibException
from pylero.subterra_uri import ArrayOfSubterraURI
from pylero.subterra_uri import SubterraURI
from pylero.text import Text


[docs] class User(BasePolarion): """Object to handle the Polarion WSDL tns3:User class Attributes: description (Text) disabled_notifications (boolean) email (string) user_id (string) name (string) vote_uris (ArrayOfSubterraURI) watche_uris (ArrayOfSubterraURI)""" _cls_suds_map = { "description": {"field_name": "description", "cls": Text}, "disabled_notifications": "disabledNotifications", "email": "email", "user_id": "id", "name": "name", "vote_uris": { "field_name": "voteURIs", "is_array": True, "cls": SubterraURI, "arr_cls": ArrayOfSubterraURI, "inner_field_name": "SubterraURI", }, "watche_uris": { "field_name": "watcheURIs", "is_array": True, "cls": SubterraURI, "arr_cls": ArrayOfSubterraURI, "inner_field_name": "SubterraURI", }, "uri": "_uri", "_unresolved": "_unresolved", } _id_field = "user_id" _obj_client = "project_client" _obj_struct = "tns2:User"
[docs] @classmethod def create_user(cls, user_id): r"""class method create_user that creates a Polarion user. Args: user_id: the id of the user to create (login name) Returns new User object References: Project.\ :project:`createUser(java.lang.String)` """ suds_object = cls.session.project_client.service.createUser(user_id) user = User() user._suds_object = suds_object return user
[docs] @classmethod def get_user_from_token(cls, token): """Returns the username of the user that has the assigned token. Args: token Returns: user_id References: Security.getUserFromToken """ return cls.session.security_client.service.getuserFromToken(token)
[docs] @classmethod def get_users(cls): """class method that returns all the system users Args: None Returns: list containing User objects for all users. References: Project.getUsers """ users = [] suds_objects = cls.session.project_client.service.getUsers() for suds_object in suds_objects: user = User() user._suds_object = suds_object users.append(user) return users
[docs] def __init__(self, user_id=None, suds_object=None, uri=None): """User constructor. Args: user_id: when given, the object is populated with user's data suds_object: Polarion User object. When given, the object is populated by object data. uri: when given, the object is populated with user's data Notes: Either user_id, suds_object or uri can be passed in, not multiple References: Project.getUser Project.getUserByUri """ super(self.__class__, self).__init__(user_id, suds_object) # user_id will be null if called from the get_users class function if user_id or uri: if user_id: self._suds_object = self.session.project_client.service.getUser(user_id) elif uri: self._suds_object = self.session.project_client.service.getUserByUri( uri ) if getattr(self._suds_object, "_unresolvable", True): raise PyleroLibException("The user {0} was not found.".format(user_id))
[docs] def get_context_roles(self, location): """Returns the context (project) roles for the user at given location. Args: location: the location of the context (project/project group) Returns: list of roles References: Security.getContextRolesForUser """ self._verify_obj() return self.session.security_client.service.getContextRolesForUser( self.user_id, location )
[docs] def get_roles(self, location): """Returns all global and context roles for the context at given location assigned to the user. Args: location Returns: list of roles References: Security.getRolesForUser """ self._verify_obj() return self.session.security_client.service.getRolesForUser( self.user_id, location )
# getUserAvatarURL parameter is misnamed in the docs. it really takes user id.
[docs] def get_user_avatar_url(self): """method get_user_avatar_url, returns a string with the relative URL of the user's avatar. Args: None Notes: Raises an error if the User is not populated. References: Project.getUserAvatarURL """ if self.user_id: return self.session.project_client.service.getUserAvatarURL(self.user_id) else: raise PyleroLibException("The user object is empty")
[docs] def has_permission(self, permission, project_id): """Checks if given permission is granted to the user. Args: permission: the permission to check. project_id: the id of the project to check the permission in, None to check global permissions. Returns: bool References: Security.hasPermission """ self._verify_obj() return self.session.security_client.service.hasPermission( self.user_id, permission, project_id )
[docs] def update(self): """method update, updates Polarion with the User attributes Args: None Notes: Raises an error if the User is not populated. References: p.Project.updateUser """ if self.user_id: # self._map_to_suds() self.session.project_client.service.updateUser(self._suds_object) # CHECK for verification else: raise PyleroLibException("The user object is empty")
[docs] class ArrayOfUser(BasePolarion): _obj_client = "builder_client" _obj_struct = "tns3:ArrayOfUser"