Esempio n. 1
0
 def _import_roles(self):
     existed_roles = [role.name for role in self._target.getRoles()]
     new_roles = {}
     for role in self._source.get_roles():
         if role.name in existed_roles:
             continue
         permissions = None
         if hasattr(role, 'permissions'):
             permissions = []
             for perm in role.permissions:
                 yt_perm = redmine.Mapping.PERMISSIONS.get(perm.name)
                 if not yt_perm:
                     continue
                 if isinstance(yt_perm, list):
                     permissions.extend(yt_perm)
                 else:
                     permissions.append(yt_perm)
         new_roles[role.name] = permissions
     for role_name, role_permissions in new_roles.items():
         role = self._to_yt_role(role_name)
         self._target.createRole(role)
         if role_permissions:
             for perm_name in role_permissions:
                 perm = youtrack.Permission()
                 perm.name = perm_name
                 self._target.addPermissionToRole(role, perm)
 def getPermissions(self):
     response, content = self._req('GET', '/admin/permission')
     xml = minidom.parseString(content)
     return [
         youtrack.Permission(e, self)
         for e in xml.documentElement.childNodes
         if e.nodeType == Node.ELEMENT_NODE
     ]
 def getRolePermissions(self, role):
     response, content = self._req(
         'GET', '/admin/role/%s/permission' % urllib.quote(role.name))
     xml = minidom.parseString(content)
     return [
         youtrack.Permission(e, self)
         for e in xml.documentElement.childNodes
         if e.nodeType == Node.ELEMENT_NODE
     ]