Skip to content

Commit 3542ca7

Browse files
authored
♻️ Ensure setting permission template for work factories (#6723)
* ♻️ 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
1 parent 94ec447 commit 3542ca7

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

spec/factories/hyrax_work.rb

+11
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@
6666
.assign_access_for(visibility: evaluator.visibility_setting)
6767
end
6868

69+
if evaluator.respond_to?(:admin_set) && evaluator.admin_set.present?
70+
template = Hyrax::PermissionTemplate.find_by(source_id: evaluator.admin_set.id)
71+
Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) if template
72+
end
73+
6974
work.permission_manager.edit_groups = work.permission_manager.edit_groups.to_a + evaluator.edit_groups
7075
work.permission_manager.edit_users = work.permission_manager.edit_users.to_a + evaluator.edit_users
7176
work.permission_manager.read_users = work.permission_manager.read_users.to_a + evaluator.read_users
@@ -80,6 +85,12 @@
8085
.new(resource: work)
8186
.assign_access_for(visibility: evaluator.visibility_setting)
8287
end
88+
89+
if evaluator.respond_to?(:admin_set) && evaluator.admin_set.present?
90+
template = Hyrax::PermissionTemplate.find_by(source_id: evaluator.admin_set.id)
91+
Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) if template
92+
end
93+
8394
work.permission_manager.edit_groups = work.permission_manager.edit_groups.to_a + evaluator.edit_groups
8495
work.permission_manager.edit_users = work.permission_manager.edit_users.to_a + evaluator.edit_users
8596
work.permission_manager.read_users = work.permission_manager.read_users.to_a + evaluator.read_users

0 commit comments

Comments
 (0)