app/models/hyrax/permission_template.rb in hyrax-3.1.0 vs app/models/hyrax/permission_template.rb in hyrax-3.2.0

- old
+ new

@@ -214,30 +214,44 @@ agent_ids_for(access: 'deposit', agent_type: 'group')).uniq - [::Ability.registered_group_name, ::Ability.public_group_name] end ## + # @param interpret_visibility [Boolean] whether to retain the existing + # visibility when applying permission template ACLs # @return [Boolean] def reset_access_controls(interpret_visibility: false) reset_access_controls_for(collection: source_model, interpret_visibility: interpret_visibility) end ## + # @param collection [::Collection, Hyrax::Resource] + # @param interpret_visibility [Boolean] whether to retain the existing + # visibility when applying permission template ACLs # @return [Boolean] - def reset_access_controls_for(collection:, interpret_visibility: false) + def reset_access_controls_for(collection:, interpret_visibility: false) # rubocop:disable Metrics/MethodLength interpreted_read_groups = read_groups if interpret_visibility visibilities = Hyrax::VisibilityMap.instance interpreted_read_groups -= visibilities.deletions_for(visibility: collection.visibility) interpreted_read_groups += visibilities.additions_for(visibility: collection.visibility) end - collection.update!(edit_users: edit_users, - edit_groups: edit_groups, - read_users: read_users, - read_groups: interpreted_read_groups.uniq) + case collection + when Valkyrie::Resource + collection.permission_manager.edit_groups = edit_groups + collection.permission_manager.edit_users = edit_users + collection.permission_manager.read_groups = interpreted_read_groups + collection.permission_manager.read_users = read_users + collection.permission_manager.acl.save + else + collection.update!(edit_users: edit_users, + edit_groups: edit_groups, + read_users: read_users, + read_groups: interpreted_read_groups.uniq) + end end private # If template requires no delays, check if date is exactly today