X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fadmin_topics.py;h=31937f9ed61b49a43592a6f8458cf970be403dec;hp=07f18da6c6728593e2d81aefb3b48427af33b401;hb=339ed7893234f5876a8ef2a5316c8351671a5327;hpb=c5b30ccbda826045bc23fe261e73333c0e735890 diff --git a/osm_nbi/admin_topics.py b/osm_nbi/admin_topics.py index 07f18da..31937f9 100644 --- a/osm_nbi/admin_topics.py +++ b/osm_nbi/admin_topics.py @@ -84,6 +84,13 @@ class UserTopic(BaseTopic): content["_admin"]["salt"] = salt if content.get("password"): content["password"] = sha256(content["password"].encode('utf-8') + salt.encode('utf-8')).hexdigest() + if content.get("project_role_mappings"): + projects = [mapping[0] for mapping in content["project_role_mappings"]] + + if content.get("projects"): + content["projects"] += projects + else: + content["projects"] = projects @staticmethod def format_on_edit(final_content, edit_content): @@ -387,6 +394,10 @@ class UserTopicAuth(UserTopic): username = indata.get("username") user_list = list(map(lambda x: x["username"], self.auth.get_user_list())) + if "projects" in indata.keys(): + raise EngineException("Format invalid: the keyword \"projects\" is not allowed for Keystone", + HTTPStatus.BAD_REQUEST) + if username in user_list: raise EngineException("username '{}' exists".format(username), HTTPStatus.CONFLICT)