1+ definition inventory/server {
2+ permission can_delete = t_workspace->servers_delete
3+ permission can_read = t_workspace->servers_read
4+ permission can_write = t_workspace->servers_write
5+ permission workspace = t_workspace
6+ relation t_workspace: rbac/workspace
7+ }
8+
9+ definition rbac/principal {}
10+
11+ definition rbac/role {
12+ permission global_all_permissions = t_global_all_permissions
13+ relation t_global_all_permissions: rbac/principal:*
14+ permission mod_inventory_all_rel_can_delete = t_mod_inventory_all_rel_can_delete
15+ relation t_mod_inventory_all_rel_can_delete: rbac/principal:*
16+ permission mod_inventory_all_rel_can_read = t_mod_inventory_all_rel_can_read
17+ relation t_mod_inventory_all_rel_can_read: rbac/principal:*
18+ permission mod_inventory_all_rel_can_write = t_mod_inventory_all_rel_can_write
19+ relation t_mod_inventory_all_rel_can_write: rbac/principal:*
20+ permission mod_inventory_type_server_all = t_mod_inventory_type_server_all
21+ relation t_mod_inventory_type_server_all: rbac/principal:*
22+ permission servers_delete = t_servers_delete
23+ relation t_servers_delete: rbac/principal:*
24+ permission servers_read = t_servers_read
25+ relation t_servers_read: rbac/principal:*
26+ permission servers_write = t_servers_write
27+ relation t_servers_write: rbac/principal:*
28+ }
29+
30+ definition rbac/role_binding {
31+ permission granted = t_granted
32+ relation t_granted: rbac/role
33+ permission servers_delete = (subject & t_granted->servers_delete + t_granted->global_all_permissions + t_granted->mod_inventory_type_server_all + t_granted->mod_inventory_all_rel_can_delete)
34+ permission servers_read = (subject & t_granted->servers_read + t_granted->global_all_permissions + t_granted->mod_inventory_type_server_all + t_granted->mod_inventory_all_rel_can_read)
35+ permission servers_write = (subject & t_granted->servers_write + t_granted->global_all_permissions + t_granted->mod_inventory_type_server_all + t_granted->mod_inventory_all_rel_can_write)
36+ permission subject = t_subject
37+ relation t_subject: rbac/user
38+ }
39+
40+ definition rbac/user {}
41+
42+ definition rbac/workspace {
43+ permission parent = t_parent
44+ relation t_parent: rbac/workspace
45+ permission servers_delete = t_user_grant->servers_delete + t_parent->servers_delete
46+ permission servers_read = t_user_grant->servers_read + t_parent->servers_read
47+ permission servers_write = t_user_grant->servers_write + t_parent->servers_write
48+ permission user_grant = t_user_grant
49+ relation t_user_grant: rbac/role_binding
50+ }
0 commit comments