X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b745c25cb15077f4f5cd658a6d59392c48bc8add..fe561d69b42d55191d6d1f01d4f3cdcf1fc9faaa:/services/api/app/controllers/arvados/v1/groups_controller.rb diff --git a/services/api/app/controllers/arvados/v1/groups_controller.rb b/services/api/app/controllers/arvados/v1/groups_controller.rb index 4c33be666d..ec3b69ab05 100644 --- a/services/api/app/controllers/arvados/v1/groups_controller.rb +++ b/services/api/app/controllers/arvados/v1/groups_controller.rb @@ -1,4 +1,20 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + +require "trashable" + class Arvados::V1::GroupsController < ApplicationController + include TrashableController + + def self._index_requires_parameters + (super rescue {}). + merge({ + include_trash: { + type: 'boolean', required: false, description: "Include items whose is_trashed attribute is true." + }, + }) + end def self._contents_requires_parameters params = _index_requires_parameters. @@ -6,6 +22,9 @@ class Arvados::V1::GroupsController < ApplicationController uuid: { type: 'string', required: false, default: nil }, + recursive: { + type: 'boolean', required: false, description: 'Include contents from child groups recursively.' + }, }) params.delete(:select) params @@ -144,13 +163,9 @@ class Arvados::V1::GroupsController < ApplicationController end end.compact - if klass == Collection and params[:include_trash] - @objects = klass.unscoped.readable_by(*@read_users). - order(request_order).where(where_conds) - else - @objects = klass.readable_by(*@read_users). - order(request_order).where(where_conds) - end + @objects = klass.readable_by(*@read_users, {:include_trash => params[:include_trash]}). + order(request_order).where(where_conds) + klass_limit = limit_all - all_objects.count @limit = klass_limit apply_where_limit_order_params klass