class EacUsersSupport::Tasks::PasswordReset

Public Class Methods

new(email, administrator) click to toggle source
# File lib/eac_users_support/tasks/password_reset.rb, line 10
def initialize(email, administrator)
  @email = email
  @administrator = administrator
end

Public Instance Methods

run() click to toggle source
# File lib/eac_users_support/tasks/password_reset.rb, line 15
def run
  if found_user
    Rails.logger.info "Usuário encontrado com o email \"#{@email}\""
    found_user.update!(attributes_to_update)
  else
    Rails.logger.info "Usuário não encontrado com o email \"#{@email}\". Criando..."
    User.create!({ email: @email }.merge(attributes_to_update))
  end
  Rails.logger.info "Senha resetada para #{@email}"
end

Private Instance Methods

attributes_to_update() click to toggle source
# File lib/eac_users_support/tasks/password_reset.rb, line 28
def attributes_to_update
  r = { password: @email, password_confirmation: @email }
  if found_user.present? && found_user.confirmed_at.blank?
    r.merge(confirmed_at: ::DateTime.now)
  end
  r[:administrator] = true if @administrator
  r
end
found_user_uncached() click to toggle source
# File lib/eac_users_support/tasks/password_reset.rb, line 37
def found_user_uncached
  ::EacUsersSupport::User.find_by(email: @email)
end