X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e5d1f2f918be2c6a59ac4085276342cc4533fe2a..bfa9ee952c1ae3f03fe2f9fa781a132411963030:/services/api/app/controllers/arvados/v1/repositories_controller.rb diff --git a/services/api/app/controllers/arvados/v1/repositories_controller.rb b/services/api/app/controllers/arvados/v1/repositories_controller.rb index 19504e10c8..8b45c56bcb 100644 --- a/services/api/app/controllers/arvados/v1/repositories_controller.rb +++ b/services/api/app/controllers/arvados/v1/repositories_controller.rb @@ -14,7 +14,7 @@ class Arvados::V1::RepositoriesController < ApplicationController gitolite_permissions = '' perms = [] repo.permissions.each do |perm| - if perm.tail_kind == 'arvados#group' + if ArvadosModel::resource_class_for_uuid(perm.tail_uuid) == Group @users.each do |user_uuid, user| user.group_permissions.each do |group_uuid, perm_mask| if perm_mask[:write] @@ -28,6 +28,12 @@ class Arvados::V1::RepositoriesController < ApplicationController perms << {name: perm.name, user_uuid: perm.tail_uuid} end end + # Owner of the repository, and all admins, can RW + ([repo.owner_uuid] + @users.keys).each do |user_uuid| + %w(can_read can_write).each do |name| + perms << {name: name, user_uuid: user_uuid} + end + end perms.each do |perm| user_uuid = perm[:user_uuid] @user_aks[user_uuid] = @users[user_uuid].andand.authorized_keys.andand.