X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/19d0b4c509ec720f9ffc1ea13f758c5825308834..0b90a6ee86fdfa5b2b8cb51d66d70cef00dc6800:/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 4ad959e86a..748eb06f0a 100644 --- a/services/api/app/controllers/arvados/v1/user_agreements_controller.rb +++ b/services/api/app/controllers/arvados/v1/user_agreements_controller.rb @@ -1,7 +1,11 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + class Arvados::V1::UserAgreementsController < ApplicationController - before_filter :admin_required, except: [:index, :sign, :signatures] - skip_before_filter :find_object_by_uuid, only: [:sign, :signatures] - skip_before_filter :render_404_if_no_object, only: [:sign, :signatures] + before_action :admin_required, except: [:index, :sign, :signatures] + skip_before_action :find_object_by_uuid, only: [:sign, :signatures] + skip_before_action :render_404_if_no_object, only: [:sign, :signatures] def model_class Link @@ -17,15 +21,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 @@ -37,12 +40,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 @@ -53,9 +56,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