Sha256: 00eb47a19fca6056876d67ad394f497bf1e4dff5d6a3d90e90f87d5f4949c345

Contents?: true

Size: 1.12 KB

Versions: 27

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module Decidim
  # This command updates the user's account.
  class UpdateAccount < Rectify::Command
    # Updates a user's account.
    #
    # user - The user to be updated.
    # form - The form with the data.
    def initialize(user, form)
      @user = user
      @form = form
    end

    def call
      return broadcast(:invalid) unless @form.valid?

      update_personal_data
      update_avatar
      update_password

      if @user.valid?
        @user.save!
        broadcast(:ok, @user.unconfirmed_email.present?)
      else
        if @user.errors.has_key? :avatar
          @form.errors.add :avatar, @user.errors[:avatar]
        end
        broadcast(:invalid)
      end
    end

    private

    def update_personal_data
      @user.name = @form.name
      @user.email = @form.email
    end

    def update_avatar
      @user.avatar = @form.avatar
      @user.remove_avatar = @form.remove_avatar
    end

    def update_password
      return unless @form.password.present?

      @user.password = @form.password
      @user.password_confirmation = @form.password_confirmation
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
decidim-core-0.6.8 app/commands/decidim/update_account.rb
decidim-0.6.8 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.6.7 app/commands/decidim/update_account.rb
decidim-0.6.7 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.6.6 app/commands/decidim/update_account.rb
decidim-0.6.6 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.6.5 app/commands/decidim/update_account.rb
decidim-0.6.5 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.6.4 app/commands/decidim/update_account.rb
decidim-0.6.4 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.6.3 app/commands/decidim/update_account.rb
decidim-0.6.3 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.6.2 app/commands/decidim/update_account.rb
decidim-0.6.2 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.6.1 app/commands/decidim/update_account.rb
decidim-0.6.1 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.6.0 app/commands/decidim/update_account.rb
decidim-0.6.0 decidim-core/app/commands/decidim/update_account.rb
decidim-core-0.5.1 app/commands/decidim/update_account.rb
decidim-0.5.1 decidim-core/app/commands/decidim/update_account.rb