Sha256: 3e8cf386247d4672553b5de7fd6bd2a6699d4f4b6ce03eb6c373b02643396585
Contents?: true
Size: 769 Bytes
Versions: 6
Compression:
Stored size: 769 Bytes
Contents
# frozen_string_literal: true require 'dry/monads' module Hyrax module Transactions module Steps ## # Saves the Hyrax::AccessControlList for any resource with a `#permission_manager`. # If `#permission_manager` is undefined, succeeds. # # @see https://dry-rb.org/gems/dry-monads/1.0/result/ class SaveAccessControl include Dry::Monads[:result] ## # @param [Valkyrie::Resource] obj # # @return [Dry::Monads::Result] def call(obj) return Success(obj) unless obj.respond_to?(:permission_manager) acl = obj.permission_manager&.acl acl&.save || (return Failure[:failed_to_save_acl, acl]) Success(obj) end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems