def to_non_authorised_youtrack_user(user_name): """ This method is for creating YT users for people, who were not authorised in Trac, but left their names, and probably emails. Args: user_name: String, that represents user. It must have format "login_name <email_address>". Returns: If user_name can be parsed, returns YT user with login login_name and email email_address, else returns None """ if user_name is None: return None user = youtrack.User() # non authorized users in trac are stored like this "name <email_address>" start = user_name.find("<") end = user_name.rfind(">") # we don't accept users who didn't leave the email if (start > -1) and (end > start + 1): if user_name.find("@", start, end) > 0: user.email = user_name[start + 1 : end].replace(" ", "_") user.login = user_name[start + 1 : end].replace(" ", "_") return user return None
def _to_yt_user(self, redmine_user): if isinstance(redmine_user, str): user_id = redmine_user else: user_id = redmine_user.id if user_id not in self._users: try: redmine_user = self._source.get_user(user_id) except ResourceNotFound: redmine_user = None user = youtrack.User() if redmine_user != None: try: user.email = redmine_user.mail except AttributeError: pass if not user.email and redmine_user.id == 2: user.email = '*****@*****.**' try: # In some cases redmine user login can be empty or missing. # So, both cases should be handled. user.login = redmine_user.login except AttributeError: pass if not user.login and redmine_user.id == 2: user.login = '******' if not hasattr(user, 'login') or not user.login: if hasattr(user, 'email') and user.email: user.login = user.email else: user.login = '******' print(('Cannot get login for user id=%s, set it to "%s"' % (user_id, user.login))) # user.login = redmine_user.login or 'guest' # user.email = redmine_user.mail or '*****@*****.**' if redmine_user != None and user.login != 'guest': if redmine_user.firstname is None and redmine_user.lastname is None: user.fullName = user.login elif redmine_user.firstname is None: user.fullName = redmine_user.lastname elif redmine_user.lastname is None: user.fullName = redmine_user.firstname else: user.fullName = redmine_user.firstname + ' ' + redmine_user.lastname else: user.created = True if redmine_user != None and hasattr(redmine_user, 'groups'): user.groups = [ self._to_yt_group(g) for g in redmine_user.groups ] self._users[user_id] = user return self._users[user_id]
def _to_yt_user(self, redmine_user): if isinstance(redmine_user, basestring): user_id = redmine_user else: user_id = redmine_user.id if user_id not in self._users: redmine_user = self._source.get_user(user_id) user = youtrack.User() try: user.email = redmine_user.mail except AttributeError: pass try: user.login = redmine_user.login except AttributeError: if hasattr(user, 'email'): user.login = user.email else: user.login = '******' print 'Cannot get login for user id=%s, set it to "%s"' % \ (user_id, user.login) #user.login = redmine_user.login or 'guest' #user.email = redmine_user.mail or '*****@*****.**' if user.login != 'guest': user.fullName = redmine_user.firstname + ' ' + redmine_user.lastname else: user.created = True if hasattr(redmine_user, 'groups'): user.groups = [self._to_yt_group(g) for g in redmine_user.groups] self._users[user_id] = user return self._users[user_id]
def getUsersTen(self, start): response, content = self._req('GET', "/admin/user/?start=%s" % str(start)) xml = minidom.parseString(content) users = [ youtrack.User(e, self) for e in xml.documentElement.childNodes if e.nodeType == Node.ELEMENT_NODE ] return users
def getUsers(self, params={}): first = True users = [] position = 0 user_search_params = urllib.urlencode(params) while True: response, content = self._req('GET', "/admin/user/?start=%s&%s" % (str(position), user_search_params)) position += 10 xml = minidom.parseString(content) newUsers = [youtrack.User(e, self) for e in xml.documentElement.childNodes if e.nodeType == Node.ELEMENT_NODE] if not len(newUsers): return users users += newUsers
def to_youtrack_user(trac_user) : """ Converts Trac user to YT user. Args: trac_user: TracUser instance. Returns: YT user with same email and login as trac user. If trac_user doesn't have email, tracLib.DEFAULT_EMAIL is set. """ user = youtrack.User() user.login = trac_user.name user.email = youtrackutils.tracLib.DEFAULT_EMAIL if not (trac_user.email is None): if len(trac_user.email): user.email = trac_user.email return user
def _to_yt_user(self, redmine_user): if isinstance(redmine_user, basestring): user_id = redmine_user else: user_id = redmine_user.id if user_id not in self._users: redmine_user = self._source.get_user(user_id) user = youtrack.User() user.login = redmine_user.login or 'guest' user.email = redmine_user.mail or '*****@*****.**' if user.login != 'guest': user.fullName = redmine_user.firstname + ' ' + redmine_user.lastname else: user.created = True if hasattr(redmine_user, 'groups'): user.groups = [self._to_yt_group(g) for g in redmine_user.groups] self._users[user_id] = user return self._users[user_id]
def getUser(self, login): """ http://confluence.jetbrains.net/display/YTD2/GET+user """ return youtrack.User(self._get("/admin/user/" + urlquote(login.encode('utf8'))), self)
def getUser(self, login): """ http://confluence.jetbrains.net/display/YTD2/GET+user """ if login.startswith('system_user'): login = '******' return youtrack.User(self._get("/admin/user/" + urlquote(login.encode('utf8'))), self)