X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/343892aa0ef79cf607abbfd85a04a612990022e1..bd6b334c80cea328a51a8612d40ef16bdd6ab2e2:/services/api/app/controllers/arvados/v1/user_agreements_controller.rb diff --git a/services/api/app/controllers/arvados/v1/user_agreements_controller.rb b/services/api/app/controllers/arvados/v1/user_agreements_controller.rb index c1b81dda68..f23cd98c35 100644 --- a/services/api/app/controllers/arvados/v1/user_agreements_controller.rb +++ b/services/api/app/controllers/arvados/v1/user_agreements_controller.rb @@ -1,6 +1,7 @@ class Arvados::V1::UserAgreementsController < ApplicationController before_filter :admin_required, except: [:index, :sign, :signatures] - skip_before_filter :find_object, only: [:sign, :signatures] + skip_before_filter :find_object_by_uuid, only: [:sign, :signatures] + skip_before_filter :render_404_if_no_object, only: [:sign, :signatures] def model_class Link @@ -16,15 +17,14 @@ class Arvados::V1::UserAgreementsController < ApplicationController # use this installation. @objects = [] else - current_user_uuid = current_user.uuid act_as_system_user do - uuids = Link.where(owner_uuid: system_user_uuid, - link_class: 'signature', - name: 'require', - tail_kind: 'arvados#user', - tail_uuid: system_user_uuid, - head_kind: 'arvados#collection'). - collect &:head_uuid + uuids = Link.where("owner_uuid = ? and link_class = ? and name = ? and tail_uuid = ? and head_uuid like ?", + system_user_uuid, + 'signature', + 'require', + system_user_uuid, + Collection.uuid_like_pattern). + collect(&:head_uuid) @objects = Collection.where('uuid in (?)', uuids) end end @@ -36,12 +36,12 @@ class Arvados::V1::UserAgreementsController < ApplicationController current_user_uuid = (current_user.andand.is_admin && params[:uuid]) || current_user.uuid act_as_system_user do - @objects = Link.where(owner_uuid: system_user_uuid, - link_class: 'signature', - name: 'click', - tail_kind: 'arvados#user', - tail_uuid: current_user_uuid, - head_kind: 'arvados#collection') + @objects = Link.where("owner_uuid = ? and link_class = ? and name = ? and tail_uuid = ? and head_uuid like ?", + system_user_uuid, + 'signature', + 'click', + current_user_uuid, + Collection.uuid_like_pattern) end @response_resource_name = 'link' render_list @@ -52,9 +52,7 @@ class Arvados::V1::UserAgreementsController < ApplicationController act_as_system_user do @object = Link.create(link_class: 'signature', name: 'click', - tail_kind: 'arvados#user', tail_uuid: current_user_uuid, - head_kind: 'arvados#collection', head_uuid: params[:uuid]) end show