Merge tag '0.10.2'
[ganeti_webmgr.git] / docs / source / features / permissions.rst
blob471863466e6fadbb8453f591bdb6726cbf172dca
1 .. _permissions:
3 Permissions
4 ===========
6 Permissions may be granted to both clusters and virtual machines. The
7 permissions system is intended to allow users to manage themselves. Any
8 object that can have its permissions edited will have a *Users* tab.
10 For a high level description of how permissions can be used in various
11 scenarios, read this `blog
12 post <http://blogs.osuosl.org/kreneskyp/2010/12/28/ganeti-web-manager-permissions/>`_.
14 Adding users to objects.
15 ~~~~~~~~~~~~~~~~~~~~~~~~
17 #. navigate to Group, Cluster, or VirtualMachine detail page
18 #. click *Add New User*
19 #. select user or group
20 #. select permissions
21 #. *save*
23 Updating permissions
24 ~~~~~~~~~~~~~~~~~~~~
26 #. navigate to Group, Cluster, or VirtualMachine detail page
27 #. click *Users* tab
28 #. click permissions column
29 #. select permissions and *save*
31 Deleting permissions
32 ~~~~~~~~~~~~~~~~~~~~
34 #. navigate to Group, Cluster, or VirtualMachine detail page
35 #. click *Users* tab
36 #. click the *delete* icon
38 Deleting a user will remove all permissions, and other properties
39 associated with the user such as cluster quotas.
41 Groups
42 ------
44 Groups may be created so that permissions. This allows permissions
45 structures where you are granting permissions to different
46 organizations. Users may belong to unlimited number of groups. They will
47 inherit the permissions of any group they belong to.
49 Groups are a persona that user's may act on behalf of. When creating
50 virtual machines, the user must choose whether they are acting on behalf
51 of themselves or a group they are a member of. When acting on behalf of
52 a group, the group's permissions and quota used.
54 Group Permissions
55 ~~~~~~~~~~~~~~~~~
57 -  **admin** - Grants the ability to see the member list, and edit
58    permissions
60 Cluster
61 -------
63 These permissions can be granted to either a user or a group. A user who
64 is part of a group with a permission does not automatically have that
65 permission individually. For instance, a user who is part of a group
66 that has VM create permission can create a VM, but can only assign
67 ownership to the group, not to themself. To grant permissions on a
68 cluster, click *add user* on the Users tab of the cluster detail page.
69 Cluster permissions can also be added by clicking *Add Cluster* in the
70 Permissions tab of the user detail page.
72 -  **admin** - Grants full access to the cluster. Includes ability to
73    set permissions and quotas, and full access to all virtual machines.
74 -  **create\_vm** - Grants ability to create virtual machines on the
75    cluster.
76 -  **tags** - Grants ability to set tags on the cluster.
77 -  **replace disks** - Ability to replace disks of VMs on the cluster.
78 -  **migrate** - Can migrate a VM to another node
79 -  **export** - Can export a virtual machine
81 Quotas
82 ------
84 Quotas restrict the usage of cluster resources by users and groups.
85 Default quotas can be set by editing clusters, if no quota is set
86 unlimited access is allowed. This will affect all users and groups.
88 The default quota can be overridden on the cluster users page:
90 #. *Clusters -> Cluster -> Users*
91 #. click quota value.
92 #. edit values, and click *save*
94 Leaving a value empty specifies unlimited access for that resource.
96 Virtual Machines
97 ----------------
99 To grant a user permissions on a VM, click *Add VirtualMachine* in the
100 Permissions tab of the User detail page. To grant permissions to a user
101 or group, use the *Add User* button on the Users tab of the VM detail
102 page.
104 -  **admin** - Grants full access to the virtual machine, including
105    granting permissions.
106 -  **Modify** - Allows user to modify VM's settings, including
107    reinstallation of OS
108 -  **Remove** - Permission to delete this VM
109 -  **Power** - Permission to start, stop, reboot, and access console
110 -  **Tags** - Can set tags for this VM
112 .. _permission-tags:
114 Permission Tags
115 ~~~~~~~~~~~~~~~
117 Permissions for virtual machines are also registered as tags on the
118 virtual machine object. This allows the permissions to be viewed and set
119 via the command line tool. Tags will be parsed when creating virtual
120 machines, and will be updated when the object is refreshed
121 (`#387 <http://code.osuosl.org/issues/387>`_). When permissions are granted tags will be set
122 on the virtual machine (`#393 <http://code.osuosl.org/issues/393>`_).
124 Tags use the pattern:
125 *GANETI\_WEB\_MANAGER:<permission>:[G\|U]:<user\_id>*
127 -  **GANETI\_WEB\_MANAGER:admin:U:2** - admin permission for User with
128    id 2
129 -  **GANETI\_WEB\_MANAGER:admin:G:4** - admin permission for Group with
130    id 4
131 -  **GANETI\_WEB\_MANAGER:start:U:2** - start permission for User with
132    id 2