X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ac7faac8ededb8df5c708180726686f9780184f6..13163d646a6da8d53984dfb54d365cdfb90afde3:/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 c79e4722ef..32adde9507 100644 --- a/services/api/app/controllers/arvados/v1/user_agreements_controller.rb +++ b/services/api/app/controllers/arvados/v1/user_agreements_controller.rb @@ -1,10 +1,16 @@ 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] def model_class Link end + def table_name + 'links' + end + def index if not current_user.is_invited # New users cannot see user agreements until/unless invited to @@ -13,12 +19,12 @@ class Arvados::V1::UserAgreementsController < ApplicationController 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'). + 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 @@ -31,12 +37,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 @@ -47,10 +53,8 @@ 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[:id]) + head_uuid: params[:uuid]) end show end