app/services/hyrax/visibility_writer.rb in hyrax-3.0.0.pre.rc1 vs app/services/hyrax/visibility_writer.rb in hyrax-3.0.0.pre.rc2
- old
+ new
@@ -15,26 +15,33 @@
# writer.assign_access_for(visibility: 'authenticated')
# resource.read_groups # => ["registered"]
#
class VisibilityWriter
##
+ # @!attribute [r] permission_manager
+ # @return [Hyrax::PermissionManager]
# @!attribute [rw] resource
- # @return [Valkyrie::Resource::AccessControls]
+ # @return [Valkyrie::Resource]
attr_accessor :resource
+ attr_reader :permission_manager
##
- # @param resource [Valkyrie::Resource::AccessControls]
+ # @param resource [Valkyrie::Resource]
def initialize(resource:)
- self.resource = resource
+ self.resource = resource
+ @permission_manager = resource.permission_manager
end
##
# @param visibility [String]
#
# @return [void]
def assign_access_for(visibility:)
- resource.read_groups -= visibility_map.deletions_for(visibility: visibility)
- resource.read_groups += visibility_map.additions_for(visibility: visibility)
+ permission_manager.read_groups =
+ permission_manager.read_groups.to_a - visibility_map.deletions_for(visibility: visibility)
+
+ permission_manager.read_groups =
+ permission_manager.read_groups.to_a + visibility_map.additions_for(visibility: visibility)
end
def visibility_map
Hyrax::VisibilityMap.instance
end