aboutsummaryrefslogtreecommitdiffstats
path: root/moonv4/moon_interface/tests/apitests/scenario
diff options
context:
space:
mode:
authorasteroide <thomas.duval@orange.com>2017-05-09 10:16:06 +0200
committerasteroide <thomas.duval@orange.com>2017-05-09 10:16:06 +0200
commit4dc3cabba46fad28f5018aea516c560d497e9147 (patch)
treeac74e7a9b8dfd627be0326117e99a83005574dd2 /moonv4/moon_interface/tests/apitests/scenario
parent94aa78ca23c4db13a0752fbdd0df96730b1e7288 (diff)
Add instructions tag in each rule
Change-Id: Ib63ad8c4b2261d993ee156fae18fd315a775dbd0
Diffstat (limited to 'moonv4/moon_interface/tests/apitests/scenario')
-rw-r--r--moonv4/moon_interface/tests/apitests/scenario/delegation.py40
-rw-r--r--moonv4/moon_interface/tests/apitests/scenario/mls.py15
-rw-r--r--moonv4/moon_interface/tests/apitests/scenario/rbac.py16
-rw-r--r--moonv4/moon_interface/tests/apitests/scenario/session.py55
4 files changed, 120 insertions, 6 deletions
diff --git a/moonv4/moon_interface/tests/apitests/scenario/delegation.py b/moonv4/moon_interface/tests/apitests/scenario/delegation.py
new file mode 100644
index 00000000..839e74ce
--- /dev/null
+++ b/moonv4/moon_interface/tests/apitests/scenario/delegation.py
@@ -0,0 +1,40 @@
+
+pdp_name = "pdp1"
+policy_name = "Delegation policy example"
+model_name = "Delegation"
+
+subjects = {"user0": "", }
+objects = {"user1": "", }
+actions = {"delegate": ""}
+
+subject_categories = {"subjectid": "", }
+object_categories = {"delegated": "", }
+action_categories = {"delegation-action": "", }
+
+subject_data = {"subjectid": {"user0": ""}}
+object_data = {"delegated": {"user1": ""}}
+action_data = {"delegation-action": {"delegate": ""}}
+
+subject_assignments = {"user0": {"subjectid": "user0"}}
+object_assignments = {"user1": {"delegated": "user1"}}
+action_assignments = {"delegate": {"delegation-action": "delegate"}}
+
+meta_rule = {
+ "session": {"id": "", "value": ("subjectid", "delegated", "delegation-action")},
+}
+
+rules = {
+ "session": (
+ {
+ "rule": ("user0", "user1", "delegate"),
+ "instructions": (
+ {
+ "update": {"request:subject": "user1"} # update the current user with "user1"
+ },
+ {"chain": {"security_pipeline": "rbac"}}
+ )
+ },
+ )
+}
+
+
diff --git a/moonv4/moon_interface/tests/apitests/scenario/mls.py b/moonv4/moon_interface/tests/apitests/scenario/mls.py
index e36a86bc..3a3ded43 100644
--- a/moonv4/moon_interface/tests/apitests/scenario/mls.py
+++ b/moonv4/moon_interface/tests/apitests/scenario/mls.py
@@ -38,8 +38,17 @@ meta_rule = {
rules = {
"mls": (
- ("high", "medium", "vm-action"),
- ("high", "low", "vm-action"),
- ("medium", "low", "vm-action"),
+ {
+ "rules": ("high", "medium", "vm-action"),
+ "instructions": ({"decision": "grant"})
+ },
+ {
+ "rules": ("high", "low", "vm-action"),
+ "instructions": ({"decision": "grant"})
+ },
+ {
+ "rules": ("medium", "low", "vm-action"),
+ "instructions": ({"decision": "grant"})
+ },
)
}
diff --git a/moonv4/moon_interface/tests/apitests/scenario/rbac.py b/moonv4/moon_interface/tests/apitests/scenario/rbac.py
index cd08308e..a43bd1f4 100644
--- a/moonv4/moon_interface/tests/apitests/scenario/rbac.py
+++ b/moonv4/moon_interface/tests/apitests/scenario/rbac.py
@@ -15,7 +15,7 @@ subject_data = {"role": {"admin": "", "employee": ""}}
object_data = {"id": {"vm0": "", "vm1": ""}}
action_data = {"action-type": {"vm-action": "", }}
-subject_assignments = {"user0": {"role": "admin"}, "user1": {"role": "employee"}, }
+subject_assignments = {"user0": {"role": "employee"}, "user1": {"role": "employee"}, }
object_assignments = {"vm0": {"id": "vm0"}, "vm1": {"id": "vm1"}}
action_assignments = {"start": {"action-type": "vm-action"}, "stop": {"action-type": "vm-action"}}
@@ -25,8 +25,18 @@ meta_rule = {
rules = {
"rbac": (
- ("admin", "vm0", "vm-action"),
- ("admin", "vm1", "vm-action"),
+ {
+ "rule": ("admin", "vm0", "vm-action"),
+ "instructions": (
+ {"decision": "grant"} # "grant" to immediately exit, "continue" to wait for the result of next policy
+ )
+ },
+ {
+ "rule": ("admin", "vm1", "vm-action"),
+ "instructions": (
+ {"decision": "grant"}
+ )
+ },
)
}
diff --git a/moonv4/moon_interface/tests/apitests/scenario/session.py b/moonv4/moon_interface/tests/apitests/scenario/session.py
new file mode 100644
index 00000000..6b7e0f18
--- /dev/null
+++ b/moonv4/moon_interface/tests/apitests/scenario/session.py
@@ -0,0 +1,55 @@
+
+pdp_name = "pdp1"
+policy_name = "Session policy example"
+model_name = "Session"
+
+subjects = {"user0": "", "user1": "", }
+objects = {"admin": "", "employee": "", }
+actions = {"activate": "", "deactivate": ""}
+
+subject_categories = {"subjectid": "", }
+object_categories = {"role": "", }
+action_categories = {"session-action": "", }
+
+subject_data = {"subjectid": {"user0": "", "user1": ""}}
+object_data = {"role": {"admin": "", "employee": ""}}
+action_data = {"session-action": {"activate": "", "deactivate": ""}}
+
+subject_assignments = {"user0": {"subjectid": "user0"}, "user1": {"subjectid": "user1"}, }
+object_assignments = {"admin": {"role": "admin"}, "employee": {"role": "employee"}}
+action_assignments = {"activate": {"session-action": "activate"}, "deactivate": {"session-action": "deactivate"}}
+
+meta_rule = {
+ "session": {"id": "", "value": ("subjectid", "role", "session-action")},
+}
+
+rules = {
+ "session": (
+ {
+ "rule": ("user0", "admin", "activate"),
+ "instructions": (
+ {
+ "update": {
+ "operation": "add",
+ "target": "rbac:role:admin" # add the role admin to the current user
+ }
+ },
+ {"chain": [{"security_pipeline": "rbac"}]} # chain with the meta_rule named rbac
+ )
+ },
+ {
+ "rule": ("user1", "employee", "deactivate"),
+ "instructions": (
+ {
+ "update": {
+ "operation": "delete",
+ "target": "rbac:role:employee" # delete the role employee from the current user
+ }
+ },
+ {"chain": [{"security_pipeline": "rbac"}]} # chain with the meta_rule named rbac
+ )
+ },
+ )
+}
+
+