Sha256: 35c975574cdd9cd969481e6c9944c42b08c08972839a4bfcae57a6b2a7a00007

Contents?: true

Size: 1.01 KB

Versions: 27

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

module Decidim
  module Admin
    # A form object used to create managed users from the admin dashboard.
    #
    # This form will contain a dynamic attribute for the user authorization.
    # This authorization will be selected by the admin user if more than one exists.
    class ManagedUserForm < Form
      attribute :name, String

      validates :name, presence: true
      validate :authorization_uniqueness

      def initialize(attributes)
        extend(Virtus.model)

        # Set the authorization dynamic attribute as a nested form class based on the handler name.
        attribute(:authorization, attributes.dig(:authorization, :handler_name).classify.constantize)

        super
      end

      private

      def authorization_uniqueness
        errors.add :authorization, :invalid if Authorization.where(
          user: current_organization.users,
          name: authorization.handler_name,
          unique_id: authorization.unique_id
        ).exists?
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
decidim-admin-0.7.4 app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.7.3 app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.7.2 app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.7.1 app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.7.0 app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.6.8 app/forms/decidim/admin/managed_user_form.rb
decidim-0.6.8 decidim-admin/app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.6.7 app/forms/decidim/admin/managed_user_form.rb
decidim-0.6.7 decidim-admin/app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.6.6 app/forms/decidim/admin/managed_user_form.rb
decidim-0.6.6 decidim-admin/app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.6.5 app/forms/decidim/admin/managed_user_form.rb
decidim-0.6.5 decidim-admin/app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.6.4 app/forms/decidim/admin/managed_user_form.rb
decidim-0.6.4 decidim-admin/app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.6.3 app/forms/decidim/admin/managed_user_form.rb
decidim-0.6.3 decidim-admin/app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.6.2 app/forms/decidim/admin/managed_user_form.rb
decidim-0.6.2 decidim-admin/app/forms/decidim/admin/managed_user_form.rb
decidim-admin-0.6.1 app/forms/decidim/admin/managed_user_form.rb