From 3542ca7afe25a2a97229d2f6cef2416911e8d713 Mon Sep 17 00:00:00 2001 From: Jeremy Friesen Date: Mon, 11 Mar 2024 10:32:44 -0400 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Ensure=20setting=20permiss?= =?UTF-8?q?ion=20template=20for=20work=20factories=20(#6723)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ♻️ Ensure setting permission template for work factories Prior to this commit, even if we specified an admin_set as part of creation, we would not use that set's permission template. This could result in inconsistent behavior. With this commit, we have normalized the behavior. * Fix issue where trait may not be defined --- spec/factories/hyrax_work.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/factories/hyrax_work.rb b/spec/factories/hyrax_work.rb index f168b14b21..f946cde69a 100644 --- a/spec/factories/hyrax_work.rb +++ b/spec/factories/hyrax_work.rb @@ -66,6 +66,11 @@ .assign_access_for(visibility: evaluator.visibility_setting) end + if evaluator.respond_to?(:admin_set) && evaluator.admin_set.present? + template = Hyrax::PermissionTemplate.find_by(source_id: evaluator.admin_set.id) + Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) if template + end + work.permission_manager.edit_groups = work.permission_manager.edit_groups.to_a + evaluator.edit_groups work.permission_manager.edit_users = work.permission_manager.edit_users.to_a + evaluator.edit_users work.permission_manager.read_users = work.permission_manager.read_users.to_a + evaluator.read_users @@ -80,6 +85,12 @@ .new(resource: work) .assign_access_for(visibility: evaluator.visibility_setting) end + + if evaluator.respond_to?(:admin_set) && evaluator.admin_set.present? + template = Hyrax::PermissionTemplate.find_by(source_id: evaluator.admin_set.id) + Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) if template + end + work.permission_manager.edit_groups = work.permission_manager.edit_groups.to_a + evaluator.edit_groups work.permission_manager.edit_users = work.permission_manager.edit_users.to_a + evaluator.edit_users work.permission_manager.read_users = work.permission_manager.read_users.to_a + evaluator.read_users