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
Exemple #2
0
    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]
Exemple #3
0
 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
Exemple #5
0
 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
Exemple #7
0
 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]
Exemple #8
0
 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)