|
@@ -288,14 +288,14 @@ class TestModelverse(unittest.TestCase):
|
|
|
model_add("users/new_model", "formalisms/SimpleClassDiagrams")
|
|
|
self.fail()
|
|
|
except WritePermissionDenied:
|
|
|
- assert model_list("users/") == set(["user/", "admin/", "LoLA/", "pypdevs_batch_service/", "HUTN/", "JSON/", "file/", "pypdevs_service/"])
|
|
|
+ assert "new_model/" not in model_list("users/")
|
|
|
|
|
|
try:
|
|
|
# Cannot upload model to unwritable location somewhere in hierarchy with multiple new branches
|
|
|
model_add("users/new_username/new_model", "formalisms/SimpleClassDiagrams")
|
|
|
self.fail()
|
|
|
except WritePermissionDenied:
|
|
|
- assert model_list("users/") == set(["user/", "admin/", "LoLA/", "pypdevs_batch_service/", "HUTN/", "JSON/", "file/", "pypdevs_service/"])
|
|
|
+ assert "new_username/" not in model_list("users/")
|
|
|
|
|
|
model_add("users/user/test/c", "users/user/test/b", """
|
|
|
A a {}
|
|
@@ -2579,27 +2579,77 @@ class TestModelverse(unittest.TestCase):
|
|
|
|
|
|
def do_test_permission(self, model, expected_permissions):
|
|
|
for user, permission in expected_permissions.items():
|
|
|
- read = permission != "N"
|
|
|
- write = permission == "W"
|
|
|
+ assert self.do_as_user(user, read_permissions, [model]) == permission
|
|
|
|
|
|
- actual = self.do_as_user(user, read_permissions, [model])
|
|
|
-
|
|
|
- assert ("R" in actual) == read
|
|
|
- assert ("W" in actual) == write
|
|
|
-
|
|
|
- """
|
|
|
- def test_op_permission_owner(self):
|
|
|
+ def test_op_permission_owner_model(self):
|
|
|
model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
|
|
|
- group_create("users")
|
|
|
+ try:
|
|
|
+ # Might already exist
|
|
|
+ group_create("users")
|
|
|
+ except:
|
|
|
+ pass
|
|
|
permission_group("users/user/test/a", "users")
|
|
|
+ permission_modify("users/user/test/a", "210")
|
|
|
|
|
|
self.do_create_user("group_user")
|
|
|
self.do_create_user("other_user")
|
|
|
group_join("users", "group_user")
|
|
|
|
|
|
- self.do_test_permission("users/user/test/a", {"admin": "W", "user": "W", "group_user": "R", "other_user": "N"})
|
|
|
+ # Test initial situation, where we have owners user:users with permission 210
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+
|
|
|
+ # Change owner, but permissions stay the same
|
|
|
+ permission_owner("users/user/test/a", "group_user")
|
|
|
+ print("Groups: " + str(group_list()))
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "R", "group_user": "RW", "other_user": ""})
|
|
|
+
|
|
|
+ # Can no longer modify permissions: only owner can do that
|
|
|
+ try:
|
|
|
+ permission_owner("users/user/test/a", "admin")
|
|
|
+ self.fail()
|
|
|
+ except UserPermissionDenied:
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "R", "group_user": "RW", "other_user": ""})
|
|
|
+
|
|
|
+ # Change owner to admin, who always has RW permissions
|
|
|
+ self.do_as_user("group_user", permission_owner, ["users/user/test/a", "admin"])
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "R", "group_user": "R", "other_user": ""})
|
|
|
+
|
|
|
+ # Give permissions back to someone else, and test that admin can always do operations, even if not owner
|
|
|
+ self.do_as_user("admin", permission_owner, ["users/user/test/a", "group_user"])
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "R", "group_user": "RW", "other_user": ""})
|
|
|
+ self.do_as_user("admin", permission_owner, ["users/user/test/a", "user"])
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+
|
|
|
+ # Test non-existing model
|
|
|
+ try:
|
|
|
+ permission_owner("adfadf", "admin")
|
|
|
+ self.fail()
|
|
|
+ except UnknownModel:
|
|
|
+ pass
|
|
|
+
|
|
|
+ # Test non-existing user
|
|
|
+ try:
|
|
|
+ self.do_as_user("admin", permission_owner, ["users/user/test/a", "dfadf"])
|
|
|
+ self.fail()
|
|
|
+ except UnknownUser:
|
|
|
+ pass
|
|
|
+
|
|
|
+ # Test assign to user who is already owner
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+ self.do_as_user("admin", permission_owner, ["users/user/test/a", "user"])
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+
|
|
|
+ """
|
|
|
+ def test_op_permission_owner_model(self):
|
|
|
+ folder_create("users/user/test/a/b/c")
|
|
|
+
|
|
|
+ try:
|
|
|
+ # Might already exist
|
|
|
+ group_create("users")
|
|
|
+ except:
|
|
|
+ pass
|
|
|
|
|
|
- #permission_owner("users/user/test/a", "group_user")
|
|
|
+ permission_group("users/user/test/a/b", "users")
|
|
|
"""
|
|
|
|
|
|
"""
|