Sha256: 01ba54fa83b72d928bdbe007c5ccc7582b7d1d174554fe93fa5fb120fa7361ed
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true module Decidim # A form object used to invite users to an organization. # class InviteUserForm < Form mimic :user attribute :email, String attribute :name, String attribute :invitation_instructions, String attribute :organization, Decidim::Organization attribute :invited_by, Decidim::User attribute :role, String validates :email, :name, :organization, :invitation_instructions, presence: true validates :role, inclusion: { in: Decidim::User::Roles.all } validate :admin_uniqueness def email super&.downcase end def organization super || current_organization end def invited_by super || current_user end def available_roles_for_select Decidim::User::Roles.all.map do |role| [ I18n.t("models.user.fields.roles.#{role}", scope: "decidim.admin"), role ] end end private def admin_uniqueness errors.add(:email, :taken) if organization.admins.where(email: email).exists? end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decidim-core-0.18.1 | app/forms/decidim/invite_user_form.rb |
decidim-core-0.18.0 | app/forms/decidim/invite_user_form.rb |