Sha256: 98279895f0d69f09555261940b0f504313bb4b4d2024bd5a4e33256adc813d10

Contents?: true

Size: 1.66 KB

Versions: 13

Compression:

Stored size: 1.66 KB

Contents

module CurationConcerns
  module Workflow
    # Responsible for creating database entries for the given workflow's permissions
    class WorkflowPermissionsGenerator
      # @api public
      #
      # Responsible for creating database entries for the given workflow's permissions
      #
      # @param workflow [Sipity::Workflow]
      # @param workflow_permissions_configuration [Hash] as defined in CurationConcerns::Workflow::WorkflowSchema
      # @return [Sipity::Workflow]
      def self.call(workflow:, workflow_permissions_configuration:)
        new(workflow: workflow, workflow_permissions_configuration: workflow_permissions_configuration).call
      end

      def initialize(workflow:, workflow_permissions_configuration:)
        self.workflow = workflow
        self.workflow_permissions_configuration = workflow_permissions_configuration
      end

      private

        attr_accessor :workflow
        attr_reader :workflow_permissions_configuration

        def workflow_permissions_configuration=(input)
          @workflow_permissions_configuration = Array.wrap(input)
        end

      public

      def call
        find_or_create_workflow_permissions!
        workflow
      end

      private

        def find_or_create_workflow_permissions!
          # In Sipity application, Agents were assigned in the configuration file.
          # However this is something assigned via a UI component for a given role.
          default_agents = []
          workflow_permissions_configuration.each do |configuration|
            PermissionGenerator.call(agents: default_agents, roles: configuration.fetch(:role), workflow: workflow)
          end
        end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
curation_concerns-1.7.8 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.7 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-2.0.0 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-2.0.0.rc2 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.6 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.5 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.4 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.3 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.2 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-2.0.0.rc1 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.1 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.0 app/services/curation_concerns/workflow/workflow_permissions_generator.rb
curation_concerns-1.7.0.beta1 app/services/curation_concerns/workflow/workflow_permissions_generator.rb