Class: Decidim::Admin::PromoteManagedUser

Inherits:
Rectify::Command
  • Object
show all
Defined in:
app/commands/decidim/admin/promote_managed_user.rb

Overview

A command with all the business logic to promote a managed user.

Managed users can be promoted to standard users. It means they will be invited to the application and will lose the managed flag so the user cannot be impersonated anymore.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(form, user, promoted_by) ⇒ PromoteManagedUser

Public: Initializes the command.

form - A form object with the params. user - The user to promote promoted_by - The user performing the operation



16
17
18
19
20
# File 'app/commands/decidim/admin/promote_managed_user.rb', line 16

def initialize(form, user, promoted_by)
  @form = form
  @user = user
  @promoted_by = promoted_by
end

Instance Attribute Details

#formObject (readonly)

Returns the value of attribute form.



37
38
39
# File 'app/commands/decidim/admin/promote_managed_user.rb', line 37

def form
  @form
end

Returns the value of attribute promoted_by.



37
38
39
# File 'app/commands/decidim/admin/promote_managed_user.rb', line 37

def promoted_by
  @promoted_by
end

#userObject (readonly)

Returns the value of attribute user.



37
38
39
# File 'app/commands/decidim/admin/promote_managed_user.rb', line 37

def user
  @user
end

Instance Method Details

#callObject

Executes the command. Broadcasts these events:

  • :ok when everything is valid.

  • :invalid if the form wasn’t valid and we couldn’t proceed.

Returns nothing.



28
29
30
31
32
33
34
35
# File 'app/commands/decidim/admin/promote_managed_user.rb', line 28

def call
  return broadcast(:invalid) if form.invalid? || !user.managed? || email_already_exists?

  promote_user
  invite_user

  broadcast(:ok)
end