[ARVADOS] created: 2.1.0-1623-g43d9cc591
Git user
git at public.arvados.org
Wed Nov 17 11:29:28 UTC 2021
at 43d9cc591e4207501d608d7b2ca1e7687d92825e (commit)
commit 43d9cc591e4207501d608d7b2ca1e7687d92825e
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date: Wed Nov 17 08:28:36 2021 -0300
18340: Only trash project groups on delete calls.
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>
diff --git a/services/api/app/controllers/arvados/v1/groups_controller.rb b/services/api/app/controllers/arvados/v1/groups_controller.rb
index 8d15bb1c5..7fbb86c01 100644
--- a/services/api/app/controllers/arvados/v1/groups_controller.rb
+++ b/services/api/app/controllers/arvados/v1/groups_controller.rb
@@ -10,6 +10,8 @@ class Arvados::V1::GroupsController < ApplicationController
skip_before_action :find_object_by_uuid, only: :shared
skip_before_action :render_404_if_no_object, only: :shared
+ TRASHABLE_CLASSES = ['project']
+
def self._index_requires_parameters
(super rescue {}).
merge({
@@ -99,6 +101,15 @@ class Arvados::V1::GroupsController < ApplicationController
end
end
+ def destroy
+ if !TRASHABLE_CLASSES.include?(@object.group_class)
+ return @object.destroy
+ show
+ else
+ super # Calls destroy from TrashableController module
+ end
+ end
+
def render_404_if_no_object
if params[:action] == 'contents'
if !params[:uuid]
@@ -351,8 +362,6 @@ class Arvados::V1::GroupsController < ApplicationController
@offset = offset_all
end
- protected
-
def exclude_home objectlist, klass
# select records that are readable by current user AND
# the owner_uuid is a user (but not the current user) OR
diff --git a/services/api/test/functional/arvados/v1/groups_controller_test.rb b/services/api/test/functional/arvados/v1/groups_controller_test.rb
index 79b66f35e..4dbccc5eb 100644
--- a/services/api/test/functional/arvados/v1/groups_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/groups_controller_test.rb
@@ -538,9 +538,10 @@ class Arvados::V1::GroupsControllerTest < ActionController::TestCase
assert_includes(owners, groups(:asubproject).uuid)
end
- test "delete filter & role groups" do
- authorize_with :admin
- [:afiltergroup, :private_role].each do |grp|
+ [:afiltergroup, :private_role].each do |grp|
+ test "delete non-project group #{grp}" do
+ authorize_with :admin
+ assert_not_nil Group.find_by_uuid(groups(grp).uuid)
assert !Group.find_by_uuid(groups(grp).uuid).is_trashed
post :destroy, params: {
id: groups(grp).uuid,
commit 02025c4fde1336313bb1428707245a05bd8b8a29
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date: Tue Nov 16 19:24:16 2021 -0300
18340: Adds test for role & filter group deletion.
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>
diff --git a/services/api/test/functional/arvados/v1/groups_controller_test.rb b/services/api/test/functional/arvados/v1/groups_controller_test.rb
index 02a4ce966..79b66f35e 100644
--- a/services/api/test/functional/arvados/v1/groups_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/groups_controller_test.rb
@@ -538,6 +538,20 @@ class Arvados::V1::GroupsControllerTest < ActionController::TestCase
assert_includes(owners, groups(:asubproject).uuid)
end
+ test "delete filter & role groups" do
+ authorize_with :admin
+ [:afiltergroup, :private_role].each do |grp|
+ assert !Group.find_by_uuid(groups(grp).uuid).is_trashed
+ post :destroy, params: {
+ id: groups(grp).uuid,
+ format: :json,
+ }
+ assert_response :success
+ # Should not be trashed
+ assert_nil Group.find_by_uuid(groups(grp).uuid)
+ end
+ end
+
### trashed project tests ###
#
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list