- link := make(map[string]interface{})
- if err := arv.Create("links", arvadosclient.Dict{
- "link": arvadosclient.Dict{
- "owner_uuid": sysUserUUID,
- "link_class": "permission",
- "name": "can_read",
- "tail_uuid": groupUUID,
- "head_uuid": userIDToUUID[groupMember],
- },
- }, &link); err != nil {
- return fmt.Errorf("error adding read group %q -> user %q permission: %s", groupName, groupMember, err)
+ var newLink link
+ linkData := map[string]string{
+ "owner_uuid": sysUserUUID,
+ "link_class": "permission",
+ "name": "can_read",
+ "tail_uuid": groupUUID,
+ "head_uuid": userIDToUUID[groupMember],
+ }
+ if err := ac.RequestAndDecode(&newLink, "POST", "/arvados/v1/links", jsonReader("link", linkData), nil); err != nil {
+ return fmt.Errorf("error adding group %q -> user %q read permission: %s", groupName, groupMember, err)
+ }
+ linkData = map[string]string{
+ "owner_uuid": sysUserUUID,
+ "link_class": "permission",
+ "name": "manage",
+ "tail_uuid": userIDToUUID[groupMember],
+ "head_uuid": groupUUID,