fix bug 734 allow NSD primitive actions
[osm/NBI.git] / osm_nbi / admin_topics.py
index eb8c988..ffe24fb 100644 (file)
@@ -478,11 +478,13 @@ class UserTopicAuth(UserTopic):
 
         for project in content["projects"]:
             for role in project["roles"]:
-                project_role_mappings.append([project, role])
+                project_role_mappings.append({"project": project, "role": role})
         
         del content["projects"]
         content["project_role_mappings"] = project_role_mappings
 
+        return content
+
     def new(self, rollback, session, indata=None, kwargs=None, headers=None):
         """
         Creates a new entry into the authentication backend.
@@ -569,15 +571,15 @@ class UserTopicAuth(UserTopic):
                 for mapping in mappings_to_remove:
                     self.auth.remove_role_from_user(
                         user["name"], 
-                        mapping[0],
-                        mapping[1]
+                        mapping["project"],
+                        mapping["role"]
                     )
                 
                 for mapping in mappings_to_add:
                     self.auth.assign_role_to_user(
                         user["name"], 
-                        mapping[0],
-                        mapping[1]
+                        mapping["project"],
+                        mapping["role"]
                     )
 
             return content["_id"]
@@ -932,8 +934,7 @@ class RoleTopicAuth(BaseTopic):
         :param _id: server internal id
         :return: dictionary, raise exception if not found.
         """
-        filter_db = self._get_project_filter(session)
-        filter_db["_id"] = _id
+        filter_db = {"_id": _id}
 
         role = self.db.get_one(self.topic, filter_db)
         new_role = dict(role)
@@ -1012,8 +1013,7 @@ class RoleTopicAuth(BaseTopic):
         :return: dictionary with deleted item _id. It raises EngineException on error: not found, conflict, ...
         """
         self.check_conflict_on_del(session, _id, None)
-        filter_q = self._get_project_filter(session)
-        filter_q["_id"] = _id
+        filter_q = {"_id": _id}
         if not dry_run:
             self.auth.delete_role(_id)
             v = self.db.del_one(self.topic, filter_q)