1 # Copyright 2018 Whitestack, LLC
3 # Licensed under the Apache License, Version 2.0 (the "License"); you may
4 # not use this file except in compliance with the License. You may obtain
5 # a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 # License for the specific language governing permissions and limitations
15 # For those usages not covered by the Apache License, Version 2.0 please
16 # contact: esousa@whitestack.com or glavado@whitestack.com
23 # This file defines the mapping between user roles and operation permissions.
24 # It uses the following pattern:
28 # "<OPERATION>": true | false
30 # <ROLE_NAME> defines the name of the role. This name will be matched with an
31 # existing role in the RBAC system (e.g. keystone).
33 # NOTE: The role will only be used if there is an existing match. If there
34 # isn't a role in the system that can be matched, the operation permissions
35 # won't yield any result.
37 # permissions: is a dictionary of operation permissions for the role. An operation
38 # permission is defined using the following pattern:
40 # "<OPERATION>": true | false
42 # The operations are defined using an hierarchical tree. For this purpose, an
43 # <OPERATION> tag can represents the path for the following:
44 # - default: what action to be taken by default, allow or deny
45 # - admin: allow or deny usin querey string ADMIN to act on behalf of other project
46 # - colon separated hierarchical tree
48 # The default and admin <OPERATION> tag is considered false if missing.
49 # When you use this tag, all the operation permissions will be set to the value
51 # NOTE 1: The default value is false. So if a value isn't specified, it will
53 # NOTE 2: The default <OPERATION> tag can be overridden by using more specific tags
54 # with a different value.
56 # The node <OPERATION> tag is defined by using an internal node of the tree, i.e.
57 # "nsds", "users:id". A node <OPERATION> tag will affect all the nodes and leafs
58 # beneath it. It can be used to override a default <OPERATION> tag.
59 # NOTE 1: It can be overridden by using a more specific tag, such as a node which
60 # is beneath it or a leaf.
62 # The leaf <OPERATION> tag is defined by using a leaf of the tree, i.e. "users:post",
63 # "ns_instances:get", "vim_accounts:id:get". A leaf <OPERATION> tag will override all
64 # the values defined by the parent nodes, since it is the more specific tag that can
68 # - In order to find which tags are in use, check the resources_to_operations.yml.
69 # - In order to find which roles are in use, check the RBAC system.
70 # - Non existing tags will be ignored.
71 # - Tags finishing in a colon will be ignored.
72 # - The anonymous role allows to bypass the role definition for paths that
73 # shouldn't be verified.
76 - name: "system_admin"
81 - name: "account_manager"
90 - name: "project_admin"
96 users:id:delete: false
103 - name: "project_user"
108 ns_instances:get: true
124 vim_accounts:get: true
125 vim_accounts:id:get: true
127 sdn_controllers: false
128 sdn_controllers:get: true
129 sdn_controllers:id:get: true
136 wim_accounts:get: true
137 wim_accounts:id:get: true