X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/16f704326f44fd1e5e5e60b936c9b5895d6a6ff8..97c83ddd8852d5ca445527f9914a31a8976a9031:/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 6163f893ce..394b5603b7 100644 --- a/services/api/app/controllers/arvados/v1/groups_controller.rb +++ b/services/api/app/controllers/arvados/v1/groups_controller.rb @@ -7,14 +7,23 @@ require "trashable" class Arvados::V1::GroupsController < ApplicationController include TrashableController - skip_before_filter :find_object_by_uuid, only: :shared - skip_before_filter :render_404_if_no_object, only: :shared + skip_before_action :find_object_by_uuid, only: :shared + skip_before_action :render_404_if_no_object, only: :shared def self._index_requires_parameters (super rescue {}). merge({ include_trash: { - type: 'boolean', required: false, description: "Include items whose is_trashed attribute is true." + type: 'boolean', required: false, default: false, description: "Include items whose is_trashed attribute is true.", + }, + }) + end + + def self._show_requires_parameters + (super rescue {}). + merge({ + include_trash: { + type: 'boolean', required: false, default: false, description: "Show group/project even if its is_trashed attribute is true.", }, }) end @@ -23,11 +32,17 @@ class Arvados::V1::GroupsController < ApplicationController params = _index_requires_parameters. merge({ uuid: { - type: 'string', required: false, default: nil + type: 'string', required: false, default: nil, }, recursive: { - type: 'boolean', required: false, description: 'Include contents from child groups recursively.' + type: 'boolean', required: false, default: false, description: 'Include contents from child groups recursively.', + }, + include: { + type: 'string', required: false, description: 'Include objects referred to by listed field in "included" (only owner_uuid).', }, + include_old_versions: { + type: 'boolean', required: false, default: false, description: 'Include past collection versions.', + } }) params.delete(:select) params @@ -41,7 +56,7 @@ class Arvados::V1::GroupsController < ApplicationController type: 'boolean', location: 'query', default: false, - description: 'defer permissions update' + description: 'defer permissions update', } } ) @@ -55,7 +70,7 @@ class Arvados::V1::GroupsController < ApplicationController type: 'boolean', location: 'query', default: false, - description: 'defer permissions update' + description: 'defer permissions update', } } ) @@ -191,8 +206,8 @@ class Arvados::V1::GroupsController < ApplicationController table_names = Hash[klasses.collect { |k| [k, k.table_name] }] - disabled_methods = Rails.configuration.disable_api_methods - avail_klasses = table_names.select{|k, t| !disabled_methods.include?(t+'.index')} + disabled_methods = Rails.configuration.API.DisabledAPIs + avail_klasses = table_names.select{|k, t| !disabled_methods[t+'.index']} klasses = avail_klasses.keys request_filters.each do |col, op, val| @@ -256,7 +271,7 @@ class Arvados::V1::GroupsController < ApplicationController @select = nil where_conds = filter_by_owner if klass == Collection - @select = klass.selectable_attributes - ["manifest_text"] + @select = klass.selectable_attributes - ["manifest_text", "unsigned_manifest_text"] elsif klass == Group where_conds = where_conds.merge(group_class: "project") end @@ -271,8 +286,10 @@ class Arvados::V1::GroupsController < ApplicationController end end.compact - @objects = klass.readable_by(*@read_users, {:include_trash => params[:include_trash]}). - order(request_order).where(where_conds) + @objects = klass.readable_by(*@read_users, { + :include_trash => params[:include_trash], + :include_old_versions => params[:include_old_versions] + }).order(request_order).where(where_conds) if params['exclude_home_project'] @objects = exclude_home @objects, klass