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