|
@@ -2637,20 +2637,14 @@ class TestModelverse(unittest.TestCase):
|
|
|
|
|
|
def test_op_permission_owner_model(self):
|
|
|
model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
|
|
|
- try:
|
|
|
- # Might already exist
|
|
|
- group_create("users")
|
|
|
- except GroupExists:
|
|
|
- pass
|
|
|
+
|
|
|
+ group_create("users")
|
|
|
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")
|
|
|
- try:
|
|
|
- group_join("users", "group_user")
|
|
|
- except UserExists:
|
|
|
- pass
|
|
|
+ group_join("users", "group_user")
|
|
|
|
|
|
# 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": ""})
|
|
@@ -2695,20 +2689,14 @@ class TestModelverse(unittest.TestCase):
|
|
|
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": ""})
|
|
|
|
|
|
+ group_delete("users")
|
|
|
+
|
|
|
def test_op_permission_owner_folder(self):
|
|
|
folder_create("users/user/test/a/b/c")
|
|
|
|
|
|
- try:
|
|
|
- # Might already exist
|
|
|
- group_create("users")
|
|
|
- except GroupExists:
|
|
|
- pass
|
|
|
+ group_create("users")
|
|
|
self.do_create_user("group_user")
|
|
|
- try:
|
|
|
- # Might already be a member
|
|
|
- group_join("users", "group_user")
|
|
|
- except UserExists:
|
|
|
- pass
|
|
|
+ group_join("users", "group_user")
|
|
|
|
|
|
permission_group("users/user/test/a/b", "users")
|
|
|
permission_modify("users/user/test/a/b", "210")
|
|
@@ -2740,21 +2728,15 @@ class TestModelverse(unittest.TestCase):
|
|
|
except ReadPermissionDenied:
|
|
|
pass
|
|
|
|
|
|
+ group_delete("users")
|
|
|
+
|
|
|
def test_op_read_permissions_model(self):
|
|
|
model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
|
|
|
|
|
|
- try:
|
|
|
- # Might already exist
|
|
|
- group_create("users")
|
|
|
- except:
|
|
|
- pass
|
|
|
+ group_create("users")
|
|
|
self.do_create_user("group_user")
|
|
|
self.do_create_user("other_user")
|
|
|
- try:
|
|
|
- # Might already be a member
|
|
|
- group_join("users", "group_user")
|
|
|
- except:
|
|
|
- pass
|
|
|
+ group_join("users", "group_user")
|
|
|
|
|
|
permission_group("users/user/test/a", "users")
|
|
|
permission_modify("users/user/test/a", "210")
|
|
@@ -2778,21 +2760,15 @@ class TestModelverse(unittest.TestCase):
|
|
|
except UnknownLocation:
|
|
|
pass
|
|
|
|
|
|
+ group_delete("users")
|
|
|
+
|
|
|
def test_op_read_permissions_folder(self):
|
|
|
folder_create("users/user/test/a")
|
|
|
|
|
|
- try:
|
|
|
- # Might already exist
|
|
|
- group_create("users")
|
|
|
- except:
|
|
|
- pass
|
|
|
+ group_create("users")
|
|
|
self.do_create_user("group_user")
|
|
|
self.do_create_user("other_user")
|
|
|
- try:
|
|
|
- # Might already be a member
|
|
|
- group_join("users", "group_user")
|
|
|
- except:
|
|
|
- pass
|
|
|
+ group_join("users", "group_user")
|
|
|
|
|
|
permission_group("users/user/test/a", "users")
|
|
|
permission_modify("users/user/test/a", "210")
|
|
@@ -2810,6 +2786,101 @@ class TestModelverse(unittest.TestCase):
|
|
|
except UnknownLocation:
|
|
|
pass
|
|
|
|
|
|
+ group_delete("users")
|
|
|
+
|
|
|
+ def test_op_permission_group_model(self):
|
|
|
+ model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
|
|
|
+ group_create("users")
|
|
|
+ group_create("other_group")
|
|
|
+ permission_modify("users/user/test/a", "210")
|
|
|
+
|
|
|
+ self.do_create_user("group_user")
|
|
|
+ self.do_create_user("other_user")
|
|
|
+ group_join("users", "group_user")
|
|
|
+
|
|
|
+ # 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": "", "other_user": ""})
|
|
|
+
|
|
|
+ # Change owner, but permissions stay the same
|
|
|
+ permission_group("users/user/test/a", "users")
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+
|
|
|
+ # Only owner can modify group permissions
|
|
|
+ try:
|
|
|
+ self.do_as_user("group_user", permission_group, ["users/user/test/a", "other_group"])
|
|
|
+ self.fail()
|
|
|
+ except UserPermissionDenied:
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+
|
|
|
+ # Test that admin can always do operations, even if not owner
|
|
|
+ # And test that user permissions still override group permissions
|
|
|
+ self.do_as_user("admin", permission_group, ["users/user/test/a", "admin"])
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
|
|
|
+ self.do_as_user("admin", permission_group, ["users/user/test/a", "other_group"])
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
|
|
|
+ self.do_as_user("admin", permission_group, ["users/user/test/a", "users"])
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+
|
|
|
+ # Test non-existing model
|
|
|
+ try:
|
|
|
+ permission_group("adfadf", "admin")
|
|
|
+ self.fail()
|
|
|
+ except UnknownModel:
|
|
|
+ pass
|
|
|
+
|
|
|
+ # Test non-existing group
|
|
|
+ try:
|
|
|
+ self.do_as_user("admin", permission_group, ["users/user/test/a", "dfadf"])
|
|
|
+ self.fail()
|
|
|
+ except UnknownGroup:
|
|
|
+ pass
|
|
|
+
|
|
|
+ # Test assign to group which is already owning group, resulting in no change
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+ self.do_as_user("admin", permission_group, ["users/user/test/a", "users"])
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+
|
|
|
+ self.do_as_user("admin", group_delete, ["other_group"])
|
|
|
+ self.do_as_user("admin", group_delete, ["users"])
|
|
|
+
|
|
|
+ def test_op_permission_group_folder(self):
|
|
|
+ folder_create("users/user/test/a/b/c")
|
|
|
+
|
|
|
+ group_create("users")
|
|
|
+ self.do_create_user("group_user")
|
|
|
+ group_join("users", "group_user")
|
|
|
+
|
|
|
+ permission_group("users/user/test/a/b", "users")
|
|
|
+ permission_modify("users/user/test/a/b", "210")
|
|
|
+
|
|
|
+ # Test permissions
|
|
|
+ self.do_test_permission("users/user/test/", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
|
|
|
+ self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
|
|
|
+ self.do_test_permission("users/user/test/a/b", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
|
|
|
+ self.do_test_permission("users/user/test/a/b/c", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
|
|
|
+
|
|
|
+ # But test if they are really applicable
|
|
|
+ try:
|
|
|
+ self.do_as_user("group_user", model_list, ["users/user/test"])
|
|
|
+ self.fail()
|
|
|
+ except ReadPermissionDenied:
|
|
|
+ pass
|
|
|
+
|
|
|
+ try:
|
|
|
+ self.do_as_user("group_user", model_list, ["users/user/test/a"])
|
|
|
+ self.fail()
|
|
|
+ except ReadPermissionDenied:
|
|
|
+ pass
|
|
|
+
|
|
|
+ self.do_as_user("group_user", model_list, ["users/user/test/a/b"])
|
|
|
+
|
|
|
+ try:
|
|
|
+ self.do_as_user("group_user", model_list, ["users/user/test/a/b/c"])
|
|
|
+ self.fail()
|
|
|
+ except ReadPermissionDenied:
|
|
|
+ pass
|
|
|
+
|
|
|
+ group_delete("users")
|
|
|
|
|
|
"""
|
|
|
def test_op_model_render(self):
|
|
@@ -2822,8 +2893,6 @@ class TestModelverse(unittest.TestCase):
|
|
|
def test_op_transformation_execute_MANUAL(self):
|
|
|
def test_op_transformation_signature(self):
|
|
|
def test_op_process_signature(self):
|
|
|
- def test_op_permission_group(self):
|
|
|
- def test_op_permission_owner(self):
|
|
|
def test_op_group_owner_add(self):
|
|
|
def test_op_group_owner_delete(self):
|
|
|
def test_op_conformance_delete(self):
|