Sha256: ecec68ea47c0dd669c127752d94caeb6c9975e7c256b6af5a352d822f6be8306

Contents?: true

Size: 1.42 KB

Versions: 29

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: true
module Hyrax
  module Actors
    # Responsible for "applying" the various edit and read attributes to the given curation concern.
    # @see Hyrax::AdminSetService for release_date interaction
    class ApplyPermissionTemplateActor < Hyrax::Actors::AbstractActor
      # @param [Hyrax::Actors::Environment] env
      # @return [Boolean] true if create was successful
      def create(env)
        add_edit_users(env)
        next_actor.create(env)
      end

      private

      def add_edit_users(env)
        add_admin_set_participants(env)
        add_collection_participants(env)
      end

      def add_admin_set_participants(env)
        return if env.attributes[:admin_set_id].blank?
        template = Hyrax::PermissionTemplate.find_by!(source_id: env.attributes[:admin_set_id])
        set_curation_concern_access(env, template)
      end

      def add_collection_participants(env)
        return if env.attributes[:collection_id].blank?
        collection_id = env.attributes.delete(:collection_id) # delete collection_id from attributes because works do not have a collection_id property
        template = Hyrax::PermissionTemplate.find_by!(source_id: collection_id)
        set_curation_concern_access(env, template)
      end

      def set_curation_concern_access(env, template)
        PermissionTemplateApplicator
          .apply(template).to(model: env.curation_concern)
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
hyrax-5.1.0.pre.beta1 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-5.0.4 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-5.0.3 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-5.0.2 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-5.0.1 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-5.0.0 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-5.0.0.rc3 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-5.0.0.rc2 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-5.0.0.rc1 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-3.6.0 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-4.0.0 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-4.0.0.rc3 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-4.0.0.rc2 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-4.0.0.rc1 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-3.5.0 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-4.0.0.beta2 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-3.4.2 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-4.0.0.beta1 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-3.4.1 app/actors/hyrax/actors/apply_permission_template_actor.rb
hyrax-3.4.0 app/actors/hyrax/actors/apply_permission_template_actor.rb