|
| 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