X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/cac20b7dd2177edebc0a4f8087032d1143bd524e..f2a79e0cc9bffcbe941d9a05b78f102fa6f09d03:/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 5c09b1fccd..3803d37691 100644 --- a/services/api/app/controllers/arvados/v1/collections_controller.rb +++ b/services/api/app/controllers/arvados/v1/collections_controller.rb @@ -1,7 +1,13 @@ +# 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 + include TrashableController def self._index_requires_parameters (super rescue {}). @@ -12,7 +18,6 @@ class Arvados::V1::CollectionsController < ApplicationController }) end - def create if resource_attrs[:uuid] and (loc = Keep::Locator.parse(resource_attrs[:uuid])) resource_attrs[:portable_data_hash] = loc.to_s @@ -23,7 +28,7 @@ class Arvados::V1::CollectionsController < ApplicationController def find_objects_for_index if params[:include_trash] || ['destroy', 'trash', 'untrash'].include?(action_name) - @objects = Collection.unscoped.readable_by(*@read_users) + @objects = Collection.readable_by(*@read_users, {include_trash: true, query_on: Collection.unscoped}) end super end @@ -54,33 +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 untrash - if @object.is_trashed - @object.update_attributes!(trash_at: nil) - else - raise InvalidStateTransitionError - end - show - end def find_collections(visited, sp, &b) case sp