Project

General

Profile

Groups Projects Ownership and Permissions Specification » History » Version 3

Peter Amstutz, 08/06/2014 09:50 PM

1 1 Peter Amstutz
h1. Groups, Projects, Ownership and Permissions Specification
2
3 3 Peter Amstutz
h2. Permissions
4
5 2 Peter Amstutz
* There are three levels of permission, *can_read*, *can_write*, and *can_manage*.
6
** *can_read* grants read-only access to the record
7
** *can_write* permits changes to content (but not metadata) fields of the record.  *can_write* also implies *can_read*
8
** *can_manage* permits the user to create permission links with @head_uuid@ set to this object.  *can_manage* also implies *can_write* and *can_read*
9 3 Peter Amstutz
10
h2. Ownership
11
12 1 Peter Amstutz
* All Arvados objects have an @owner_uuid@ field.  Valid uuid types for @owner_uuid@ are "User" or "Group".
13
* If the @owner_uuid@ of an object is a User, that User has *can_manage* permission on that object.
14 3 Peter Amstutz
* If @owner_uuid@ of an object is a Group, then that object is a member of that group, and should be displayed as being contained within the owner Group.
15
** A "Project" is a subtype of Group that indicates the group should be displayed in the "Projects" section of Workbench.  
16
17
h2. Permission links
18
19
* A link object with @link_class@ "permission", @name@ one of *can_read*, *can_write* or *can_manage*, @head_uuid@ of some Arvados object, and @tail_uuid@ of an User or Group, grants the named permission for @head_uuid@ to @tail_uuid@.
20
21
h2. Transitive permissions
22
23
* If a User *can_read* Group A, and Group A *can_read* group B, then User *can_read* Group B.
24
* Permissions are narrowed.
25
** If User *can_write* Group A, and Group A *can_read* Group B, then User *can_read* Group B.
26
** If User *can_read* Group A, and Group A *can_write* Group B, then User *can_read* Group B.