diff --git a/src/caosdb/common/administration.py b/src/caosdb/common/administration.py index 7f7217135b2f37c0ae13fb85f94703e94b03e205..27a0cd0676c57562c05956a55e6e2788849a5f93 100644 --- a/src/caosdb/common/administration.py +++ b/src/caosdb/common/administration.py @@ -154,6 +154,7 @@ def _delete_role(name, **kwargs): def _set_roles(username, roles, realm=None, **kwargs): xml = etree.Element("Roles") + print(roles) for r in roles: xml.append(etree.Element("Role", name=r)) @@ -189,8 +190,9 @@ def _get_roles(username, realm=None, **kwargs): e.msg = "User does not exist." raise ret = set() - for r in etree.fromstring(body)[0]: - ret.add(r.get("name")) + for r in etree.fromstring(body).xpath('/Response/Roles')[0]: + if r.tag == "Role": + ret.add(r.get("name")) return ret