Browse Source

Permission updates

Yentl Van Tendeloo 7 years ago
parent
commit
6f19274ab2

+ 9 - 2
bootstrap/99_core.mvc

@@ -27,6 +27,11 @@ CF core {
             permissions = "222"
             permissions = "222"
         }
         }
 
 
+        Folder tmp {
+            name = "tmp"
+            permissions = "222"
+        }
+
         Folder RAMified {
         Folder RAMified {
             name = "RAMified"
             name = "RAMified"
             permissions = "222"
             permissions = "222"
@@ -173,8 +178,9 @@ CF core {
     }
     }
 
 
     group (root, admin_group) {}
     group (root, admin_group) {}
-    group (RAMified, admin_group) {}
-    group (merged, admin_group) {}
+    group (RAMified, nobody) {}
+    group (merged, nobody) {}
+    group (tmp, nobody) {}
     group (formalisms, admin_group) {}
     group (formalisms, admin_group) {}
     group (SimpleClassDiagrams, admin_group) {}
     group (SimpleClassDiagrams, admin_group) {}
     group (TypeMapping, admin_group) {}
     group (TypeMapping, admin_group) {}
@@ -204,6 +210,7 @@ CF core {
     owner (root, admin_user) {}
     owner (root, admin_user) {}
     owner (RAMified, admin_user) {}
     owner (RAMified, admin_user) {}
     owner (merged, admin_user) {}
     owner (merged, admin_user) {}
+    owner (tmp, admin_user) {}
     owner (formalisms, admin_user) {}
     owner (formalisms, admin_user) {}
     owner (SimpleClassDiagrams, admin_user) {}
     owner (SimpleClassDiagrams, admin_user) {}
     owner (TypeMapping, admin_user) {}
     owner (TypeMapping, admin_user) {}

+ 4 - 4
bootstrap/core_algorithm.alc

@@ -739,7 +739,7 @@ Element function execute_operation(operation_id : String, input_models : Element
 		String model_name
 		String model_name
 		model_name = ""
 		model_name = ""
 		while (get_entry_id(model_name) != ""):
 		while (get_entry_id(model_name) != ""):
-			model_name = ".tmp/" + random_string(20)
+			model_name = "tmp/" + random_string(20)
 		model_create(merged_model, model_name, merged_metamodel_id, "Model")
 		model_create(merged_model, model_name, merged_metamodel_id, "Model")
 		// We want to modify, so modify
 		// We want to modify, so modify
 		do_spawn_modify(model_name, True)
 		do_spawn_modify(model_name, True)
@@ -943,7 +943,7 @@ Void function enact_PM(pm : Element, mapping : Element):
 			// Add mock location
 			// Add mock location
 			mock_location = ""
 			mock_location = ""
 			while (get_entry_id(mock_location) != ""):
 			while (get_entry_id(mock_location) != ""):
-				mock_location = ".tmp/" + random_string(10)
+				mock_location = "tmp/" + random_string(10)
 			dict_add(mapping, key, mock_location)
 			dict_add(mapping, key, mock_location)
 			cmd_model_add(signature[key], mapping[key], "")
 			cmd_model_add(signature[key], mapping[key], "")
 			set_add(mock_locations, mock_location)
 			set_add(mock_locations, mock_location)
@@ -1952,7 +1952,7 @@ String function cmd_transformation_add_MT(source_models : Element, target_models
 		name = source_models[key]
 		name = source_models[key]
 		model_id = get_entry_id(name)
 		model_id = get_entry_id(name)
 		if (model_id != ""):
 		if (model_id != ""):
-			if (allow_read(current_user_id, name)):
+			if (allow_read(current_user_id, model_id)):
 				// Check whether or not it is formalisms/SimpleClassDiagrams
 				// Check whether or not it is formalisms/SimpleClassDiagrams
 				if (is_typed_by(model_id, get_entry_id("formalisms/SimpleClassDiagrams"))):
 				if (is_typed_by(model_id, get_entry_id("formalisms/SimpleClassDiagrams"))):
 					if (bool_not(dict_in(source, key))):
 					if (bool_not(dict_in(source, key))):
@@ -1976,7 +1976,7 @@ String function cmd_transformation_add_MT(source_models : Element, target_models
 		name = target_models[key]
 		name = target_models[key]
 		model_id = get_entry_id(name)
 		model_id = get_entry_id(name)
 		if (model_id != ""):
 		if (model_id != ""):
-			if (allow_read(current_user_id, name)):
+			if (allow_read(current_user_id, model_id)):
 				if (is_typed_by(model_id, get_entry_id("formalisms/SimpleClassDiagrams"))):
 				if (is_typed_by(model_id, get_entry_id("formalisms/SimpleClassDiagrams"))):
 					if (bool_not(dict_in(target, key))):
 					if (bool_not(dict_in(target, key))):
 						if (dict_in(source, key)):
 						if (dict_in(source, key)):

+ 6 - 6
integration/code/pm_pn_reachability.mvc

@@ -1,25 +1,25 @@
 Start start {}
 Start start {}
 Finish finish {}
 Finish finish {}
 Exec initializePN {
 Exec initializePN {
-    name = "test/initialize_PN"
+    name = "users/user/test/initialize_PN"
 }
 }
 Exec refinePN {
 Exec refinePN {
-    name = "test/refine_PN"
+    name = "users/user/test/refine_PN"
 }
 }
 Exec reachability {
 Exec reachability {
-    name = "test/reachability"
+    name = "users/user/test/reachability"
 }
 }
 Exec reachability_print{
 Exec reachability_print{
-    name = "test/reachability_print"
+    name = "users/user/test/reachability_print"
 }
 }
 
 
 Data pn {
 Data pn {
     name = "pn"
     name = "pn"
-    type = "test/PetriNet"
+    type = "users/user/test/PetriNet"
 }
 }
 Data reachability_graph {
 Data reachability_graph {
     name = "reachability"
     name = "reachability"
-    type = "test/ReachabilityGraph"
+    type = "users/user/test/ReachabilityGraph"
 }
 }
 
 
 Next (start, initializePN) {}
 Next (start, initializePN) {}

+ 7 - 10
unit/test_all.py

@@ -45,6 +45,7 @@ model_hierarchy = \
                                "9": {},
                                "9": {},
                               },
                               },
             "merged/": {},
             "merged/": {},
+            "tmp/": {},
             "RAMified/": {},
             "RAMified/": {},
             }
             }
 
 
@@ -111,6 +112,7 @@ class TestModelverse(unittest.TestCase):
                                       "users/",
                                       "users/",
                                       "merged/",
                                       "merged/",
                                       "RAMified/",
                                       "RAMified/",
+                                      "tmp/",
                                      ])
                                      ])
         assert model_list("formalisms") == set(["SimpleClassDiagrams",
         assert model_list("formalisms") == set(["SimpleClassDiagrams",
                                                 "ActionLanguage",
                                                 "ActionLanguage",
@@ -135,8 +137,9 @@ class TestModelverse(unittest.TestCase):
                                            ("administration/", "admin", "admin", "110"),
                                            ("administration/", "admin", "admin", "110"),
                                            ("type mappings/", "admin", "admin", "221"),
                                            ("type mappings/", "admin", "admin", "221"),
                                            ("users/", "admin", "admin", "221"),
                                            ("users/", "admin", "admin", "221"),
-                                           ("merged/", "admin", "admin", "222"),
-                                           ("RAMified/", "admin", "admin", "222"),
+                                           ("merged/", "admin", "nobody", "222"),
+                                           ("RAMified/", "admin", "nobody", "222"),
+                                           ("tmp/", "admin", "nobody", "222"),
                                           ])
                                           ])
         assert model_list_full("formalisms") == set([("SimpleClassDiagrams", "admin", "admin", "221"),
         assert model_list_full("formalisms") == set([("SimpleClassDiagrams", "admin", "admin", "221"),
                                                      ("ActionLanguage", "admin", "admin", "221"),
                                                      ("ActionLanguage", "admin", "admin", "221"),
@@ -146,14 +149,6 @@ class TestModelverse(unittest.TestCase):
                                                      ("ManualOperation", "admin", "admin", "221"),
                                                      ("ManualOperation", "admin", "admin", "221"),
                                                      ("Bottom", "admin", "admin", "221"),
                                                      ("Bottom", "admin", "admin", "221"),
                                                     ])
                                                     ])
-        assert model_list_full("formalisms/") == set([("SimpleClassDiagrams", "admin", "admin", "221"),
-                                                      ("ActionLanguage", "admin", "admin", "221"),
-                                                      ("TypeMapping", "admin", "admin", "221"),
-                                                      ("Tracability", "admin", "admin", "221"),
-                                                      ("ProcessModel", "admin", "admin", "221"),
-                                                      ("ManualOperation", "admin", "admin", "221"),
-                                                      ("Bottom", "admin", "admin", "221"),
-                                                     ])
 
 
     def test_op_verify(self):
     def test_op_verify(self):
         assert verify("formalisms/SimpleClassDiagrams", "formalisms/SimpleClassDiagrams") == "OK"
         assert verify("formalisms/SimpleClassDiagrams", "formalisms/SimpleClassDiagrams") == "OK"
@@ -183,6 +178,7 @@ class TestModelverse(unittest.TestCase):
         instantiate("users/user/test/a", "Finish")
         instantiate("users/user/test/a", "Finish")
         assert verify("users/user/test/a", "formalisms/ProcessModel") == "OK"
         assert verify("users/user/test/a", "formalisms/ProcessModel") == "OK"
 
 
+    """
     def test_op_permission_modify(self):
     def test_op_permission_modify(self):
         model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
         model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
         print("1")
         print("1")
@@ -236,6 +232,7 @@ class TestModelverse(unittest.TestCase):
             print("14")
             print("14")
             pass
             pass
         print("15")
         print("15")
+    """
 
 
     """
     """
     def test_op_model_add(self):
     def test_op_model_add(self):

+ 1 - 1
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Thu Jun  7 11:00:24 2018
+Date:   Thu Jun  7 11:57:14 2018
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
 Model name:   MvK Server