Sha256: cf37d9124660d4e6d0dbc72d936b054b77f373aef0e8c678fc92de9ddf9b2f91
Contents?: true
Size: 1.13 KB
Versions: 2
Compression:
Stored size: 1.13 KB
Contents
# frozen_string_literal: true module Decidim # A command with the business logic to invite a user to an organization. class InviteUser < Rectify::Command # Public: Initializes the command. # # form - A form object with the params. def initialize(form) @form = form end def call return broadcast(:invalid) if form.invalid? if user.present? set_user_roles else invite_user end broadcast(:ok, user) end private attr_reader :form def user @user ||= Decidim::User.where(organization: form.organization).where(email: form.email.downcase).first end def set_user_roles user.roles += form.roles user.save! end def invite_user @user = Decidim::User.create( { name: form.name, email: form.email.downcase, organization: form.organization, roles: form.roles, comments_notifications: true, replies_notifications: true }) @user.invite!( form.invited_by, invitation_instructions: form.invitation_instructions ) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decidim-core-0.0.8.1 | app/commands/decidim/invite_user.rb |
decidim-core-0.0.7 | app/commands/decidim/invite_user.rb |