Sha256: e14c53f3ae8b06faf998d937c1dc48bdb539a8e35851bd1b1fce2f4df8f154bb

Contents?: true

Size: 1.45 KB

Versions: 40

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

module Decidim
  module Assemblies
    module Admin
      # A command with all the business logic when creating a new participatory
      # process admin in the system.
      class CreateAssemblyAdmin < NotifyRoleAssignedToAssembly
        include ::Decidim::Admin::CreateParticipatorySpaceAdminUserActions

        # Public: Initializes the command.
        #
        # form - A form object with the params.
        # assembly - The Assembly that will hold the
        #   user role
        def initialize(form, current_user, assembly)
          @form = form
          @current_user = current_user
          @participatory_space = assembly
        end

        private

        attr_reader :form, :participatory_space, :current_user, :user

        def existing_role
          Decidim::AssemblyUserRole.exists?(
            role: form.role.to_sym,
            user: user,
            assembly: @participatory_process
          )
        end

        def create_role
          Decidim.traceability.perform_action!(
            :create,
            Decidim::AssemblyUserRole,
            current_user,
            resource: {
              title: user.name
            }
          ) do
            Decidim::AssemblyUserRole.find_or_create_by!(
              role: form.role.to_sym,
              user: user,
              assembly: participatory_space
            )
          end
          send_notification user
        end
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
decidim-assemblies-0.27.9 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.8 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.7 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.6 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.26.10 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.26.9 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.5 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.26.8 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.4 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.3 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.26.7 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.26.5 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.2 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.1 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.26.4 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.0 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.26.3 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.0.rc2 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.27.0.rc1 app/commands/decidim/assemblies/admin/create_assembly_admin.rb
decidim-assemblies-0.26.2 app/commands/decidim/assemblies/admin/create_assembly_admin.rb