X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8e6cd14b7884a691a110110b0f366577437c6d9e..2727970da3aa2537df0b465bca1f08142208d4d9:/services/api/app/controllers/arvados/v1/collections_controller.rb diff --git a/services/api/app/controllers/arvados/v1/collections_controller.rb b/services/api/app/controllers/arvados/v1/collections_controller.rb index 2beb1e714d..fb75007dc6 100644 --- a/services/api/app/controllers/arvados/v1/collections_controller.rb +++ b/services/api/app/controllers/arvados/v1/collections_controller.rb @@ -1,10 +1,21 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require "arvados/keep" +require "trashable" class Arvados::V1::CollectionsController < ApplicationController include DbCurrentTime - - def self.limit_index_columns_read - ["manifest_text"] + include TrashableController + + def self._index_requires_parameters + (super rescue {}). + merge({ + include_trash: { + type: 'boolean', required: false, description: "Include collections whose is_trashed attribute is true." + }, + }) end def create @@ -16,8 +27,8 @@ class Arvados::V1::CollectionsController < ApplicationController end def find_objects_for_index - if params[:include_trash] || ['destroy', 'trash'].include?(action_name) - @objects = Collection.unscoped.readable_by(*@read_users) + if params[:include_trash] || ['destroy', 'trash', 'untrash'].include?(action_name) + @objects = Collection.readable_by(*@read_users, {include_trash: true}) end super end @@ -48,24 +59,6 @@ class Arvados::V1::CollectionsController < ApplicationController end end - def destroy - if !@object.is_trashed - @object.update_attributes!(trash_at: db_current_time) - end - earliest_delete = (@object.trash_at + - Rails.configuration.blob_signature_ttl.seconds) - if @object.delete_at > earliest_delete - @object.update_attributes!(delete_at: earliest_delete) - end - show - end - - def trash - if !@object.is_trashed - @object.update_attributes!(trash_at: db_current_time) - end - show - end def find_collections(visited, sp, &b) case sp