Fix bug 713
[osm/NBI.git] / osm_nbi / admin_topics.py
index a737301..bc2c7d9 100644 (file)
@@ -478,7 +478,7 @@ class UserTopicAuth(UserTopic):
 
         for project in content["projects"]:
             for role in project["roles"]:
 
         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
         
         del content["projects"]
         content["project_role_mappings"] = project_role_mappings
@@ -569,15 +569,15 @@ class UserTopicAuth(UserTopic):
                 for mapping in mappings_to_remove:
                     self.auth.remove_role_from_user(
                         user["name"], 
                 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"], 
                     )
                 
                 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"]
                     )
 
             return content["_id"]
@@ -862,7 +862,13 @@ class RoleTopicAuth(BaseTopic):
         if not content["_admin"].get("created"):
             content["_admin"]["created"] = now
         content["_admin"]["modified"] = now
         if not content["_admin"].get("created"):
             content["_admin"]["created"] = now
         content["_admin"]["modified"] = now
-        content[":"] = False
+        
+        if "." in content.keys():
+            content["root"] = content["."]
+            del content["."]
+        
+        if "root" not in content.keys():
+            content["root"] = False
 
         ignore_fields = ["_id", "_admin", "name"]
         content_keys = content.keys()
 
         ignore_fields = ["_id", "_admin", "name"]
         content_keys = content.keys()
@@ -893,8 +899,12 @@ class RoleTopicAuth(BaseTopic):
         for role_def, value in edit_content.items():
             final_content[role_def.replace(".", ":")] = value
         
         for role_def, value in edit_content.items():
             final_content[role_def.replace(".", ":")] = value
         
-        if ":" not in final_content.keys():
-            final_content[":"] = False
+        if ":" in final_content.keys():
+            final_content["root"] = final_content[":"]
+            del final_content[":"]
+        
+        if "root" not in final_content.keys():
+            final_content["root"] = False
 
     @staticmethod
     def format_on_show(content):
 
     @staticmethod
     def format_on_show(content):
@@ -907,6 +917,8 @@ class RoleTopicAuth(BaseTopic):
         """
         content_keys = list(content.keys())
 
         """
         content_keys = list(content.keys())
 
+        content["_id"] = str(content["_id"])
+
         for key in content_keys:
             if ":" in key:
                 content[key.replace(":", ".")] = content[key]
         for key in content_keys:
             if ":" in key:
                 content[key.replace(":", ".")] = content[key]