summaryrefslogtreecommitdiffstats
path: root/etc/mistral/policy.json
diff options
context:
space:
mode:
Diffstat (limited to 'etc/mistral/policy.json')
-rw-r--r--etc/mistral/policy.json107
1 files changed, 56 insertions, 51 deletions
diff --git a/etc/mistral/policy.json b/etc/mistral/policy.json
index 3278023..774d22a 100644
--- a/etc/mistral/policy.json
+++ b/etc/mistral/policy.json
@@ -1,64 +1,69 @@
{
- "admin_only": "is_admin:True",
- "admin_or_owner": "is_admin:True or project_id:%(project_id)s",
- "default": "rule:admin_or_owner",
+ "global_readonly": "(role:global_readonly)",
+ "readonly": "((project_id:%(project_id)s and role:readonly) or rule:global_readonly)",
+ "_member_role": "(role:member or role:_member_)",
+ "member": "(project_id:%(project_id)s and rule:_member_role)",
+ "admin": "(is_admin:True or role:admin)",
+ "owner": "(user_id:%(user_id)s and rule:_member_role)",
- "action_executions:delete": "rule:admin_or_owner",
- "action_execution:create": "rule:admin_or_owner",
- "action_executions:get": "rule:admin_or_owner",
- "action_executions:list": "rule:admin_or_owner",
- "action_executions:update": "rule:admin_or_owner",
+ "default": "rule:admin or rule:member",
- "actions:create": "rule:admin_or_owner",
- "actions:delete": "rule:admin_or_owner",
- "actions:get": "rule:admin_or_owner",
- "actions:list": "rule:admin_or_owner",
- "actions:update": "rule:admin_or_owner",
+ "action_executions:delete": "rule:admin or rule:member",
+ "action_execution:create": "rule:admin or rule:member",
+ "action_executions:get": "rule:admin or rule:member",
+ "action_executions:list": "rule:admin or rule:member",
+ "action_executions:update": "rule:admin or rule:member",
- "cron_triggers:create": "rule:admin_or_owner",
- "cron_triggers:delete": "rule:admin_or_owner",
- "cron_triggers:get": "rule:admin_or_owner",
- "cron_triggers:list": "rule:admin_or_owner",
+ "actions:create": "rule:admin or rule:member",
+ "actions:delete": "rule:admin or rule:member",
+ "actions:get": "rule:admin or rule:member",
+ "actions:list": "rule:admin or rule:member",
+ "actions:update": "rule:admin or rule:member",
- "environments:create": "rule:admin_or_owner",
- "environments:delete": "rule:admin_or_owner",
- "environments:get": "rule:admin_or_owner",
- "environments:list": "rule:admin_or_owner",
- "environments:update": "rule:admin_or_owner",
+ "cron_triggers:create": "rule:admin or rule:member",
+ "cron_triggers:delete": "rule:admin or rule:member",
+ "cron_triggers:get": "rule:admin or rule:member",
+ "cron_triggers:list": "rule:admin or rule:member",
- "executions:create": "rule:admin_or_owner",
- "executions:delete": "rule:admin_or_owner",
- "executions:get": "rule:admin_or_owner",
- "executions:list": "rule:admin_or_owner",
- "executions:update": "rule:admin_or_owner",
+ "environments:create": "rule:admin or rule:member",
+ "environments:delete": "rule:admin or rule:member",
+ "environments:get": "rule:admin or rule:member",
+ "environments:list": "rule:admin or rule:member",
+ "environments:update": "rule:admin or rule:member",
- "members:create": "rule:admin_or_owner",
- "members:delete": "rule:admin_or_owner",
- "members:get": "rule:admin_or_owner",
- "members:list": "rule:admin_or_owner",
- "members:update": "rule:admin_or_owner",
+ "executions:create": "rule:admin or rule:member",
+ "executions:delete": "rule:admin or rule:member",
+ "executions:get": "rule:admin or rule:member",
+ "executions:list": "rule:admin or rule:member",
+ "executions:update": "rule:admin or rule:member",
- "services:list": "rule:admin_or_owner",
+ "members:create": "rule:admin or rule:member",
+ "members:delete": "rule:admin or rule:member",
+ "members:get": "rule:admin or rule:member",
+ "members:list": "rule:admin or rule:member",
+ "members:update": "rule:admin or rule:member",
- "tasks:get": "rule:admin_or_owner",
- "tasks:list": "rule:admin_or_owner",
- "tasks:update": "rule:admin_or_owner",
+ "services:list": "rule:admin or rule:member",
- "workbooks:create": "rule:admin_or_owner",
- "workbooks:delete": "rule:admin_or_owner",
- "workbooks:get": "rule:admin_or_owner",
- "workbooks:list": "rule:admin_or_owner",
- "workbooks:update": "rule:admin_or_owner",
+ "tasks:get": "rule:admin or rule:member",
+ "tasks:list": "rule:admin or rule:member",
+ "tasks:update": "rule:admin or rule:member",
- "workflows:create": "rule:admin_or_owner",
- "workflows:delete": "rule:admin_or_owner",
- "workflows:get": "rule:admin_or_owner",
- "workflows:list": "rule:admin_or_owner",
- "workflows:update": "rule:admin_or_owner",
+ "workbooks:create": "rule:admin or rule:member",
+ "workbooks:delete": "rule:admin or rule:member",
+ "workbooks:get": "rule:admin or rule:member",
+ "workbooks:list": "rule:admin or rule:member",
+ "workbooks:update": "rule:admin or rule:member",
- "event_triggers:create": "rule:admin_or_owner",
- "event_triggers:delete": "rule:admin_or_owner",
- "event_triggers:get": "rule:admin_or_owner",
- "event_triggers:list": "rule:admin_or_owner",
- "event_triggers:update": "rule:admin_or_owner"
+ "workflows:create": "rule:admin or rule:member",
+ "workflows:delete": "rule:admin or rule:member",
+ "workflows:get": "rule:admin or rule:member",
+ "workflows:list": "rule:admin or rule:member",
+ "workflows:update": "rule:admin or rule:member",
+
+ "event_triggers:create": "rule:admin or rule:member",
+ "event_triggers:delete": "rule:admin or rule:member",
+ "event_triggers:get": "rule:admin or rule:member",
+ "event_triggers:list": "rule:admin or rule:member",
+ "event_triggers:update": "rule:admin or rule:member"
}