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