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 ]