X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/89f10cd956b1282d8d650fd82f945f8169664df9..f18f0e90022f7a78032d5e4ebf9995d5256a076e:/doc/admin/group-management.html.textile.liquid diff --git a/doc/admin/group-management.html.textile.liquid b/doc/admin/group-management.html.textile.liquid new file mode 100644 index 0000000000..127b91423a --- /dev/null +++ b/doc/admin/group-management.html.textile.liquid @@ -0,0 +1,104 @@ +--- +layout: default +navsection: admin +title: Group management +... + +{% comment %} +Copyright (C) The Arvados Authors. All rights reserved. + +SPDX-License-Identifier: CC-BY-SA-3.0 +{% endcomment %} + +This page describes how to manage groups at the command line. You should be familiar with the "permission system":{{site.baseurl}}/api/permission-model.html . + +h2. Create a group + +User groups are entries in the "groups" table with @"group_class": "role"@. + +
+arv group create --group '{"name": "My new group", "group_class": "role"}'
+
+ +h2. Add a user to a group + +There are two separate permissions associated with group membership. The first link grants the user @can_manage@ permission to manage things that the group can manage. The second link grants permission for other users of the group to see that this user is part of the group. + +
+arv link create --link '{
+  "link_class": "permission",
+  "name": "can_manage",
+  "tail_uuid": "the_user_uuid",
+  "head_uuid": "the_group_uuid"}'
+
+arv link create --link '{
+  "link_class": "permission",
+  "name": "can_read",
+  "tail_uuid": "the_group_uuid",
+  "head_uuid": "the_user_uuid"}'
+
+ +A user can also be given read-only access to a group. In that case, the first link should be created with @can_read@ instead of @can_manage@. + +h2. List groups + +
+arv group list --filters '[["group_class", "=", "role"]]'
+
+ +h2. List members of a group + +Use the command "jq":https://stedolan.github.io/jq/ to extract the tail_uuid of each permission link which has the user uuid. + +
+arv link list --filters '[["link_class", "=", "permission"],
+  ["head_uuid", "=", "the_group_uuid"]]' | jq .items[].tail_uuid
+
+ +h2. Share a project with a group + +This will give all members of the group @can_manage@ access. + +
+arv link create --link '{
+  "link_class": "permission",
+  "name": "can_manage",
+  "tail_uuid": "the_group_uuid",
+  "head_uuid": "the_project_uuid"}'
+
+ +A project can also be shared read-only. In that case, the first link should be created with @can_read@ instead of @can_manage@. + +h2. List things shared with the group + +Use the command "jq":https://stedolan.github.io/jq/ to extract the head_uuid of each permission link which has the object uuid. + +
+arv link list --filters '[["link_class", "=", "permission"],
+  ["tail_uuid", "=", "the_group_uuid"]]' | jq .items[].head_uuid
+
+ +h2. Stop sharing a project with a group + +This will remove access for members of the group. + +The first step is to find the permission link objects. The second step is to delete them. + +
+arv --format=uuid link list --filters '[["link_class", "=", "permission"],
+  ["tail_uuid", "=", "the_group_uuid"], ["head_uuid", "=", "the_project_uuid"]]'
+
+arv link delete --uuid each_link_uuid
+
+ +h2. Remove user from a group + +The first step is to find the permission link objects. The second step is to delete them. + +
+arv --format=uuid link list --filters '[["link_class", "=", "permission"],
+  ["tail_uuid", "in", ["the_user_uuid", "the_group_uuid"]],
+  ["head_uuid", "in", ["the_user_uuid", "the_group_uuid"]]'
+
+arv link delete --uuid each_link_uuid
+