Sha256: fdefa3ce99478449411af0c57f313c63b2d7bfe647bc32297e5202d9bd4a3578
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
# frozen_string_literal: true require 'eac_ruby_utils/core_ext' module EacUsersSupport module Tasks class PasswordReset enable_simple_cache common_constructor :email, :administrator def run found_user ? run_on_user_found : run_on_user_not_found Rails.logger.info "Senha resetada para #{email}" end private # @return [Hash] def administrator_attributes_to_update administrator ? { administrator: true } : {} end # @return [Hash] def attributes_to_update %w[common confirmation administrator].inject({}) do |a, e| a.merge(send("#{e}_attributes_to_update")) end end # @return [Hash] def common_attributes_to_update { password: email, password_confirmation: email } end # @return [Hash] def confirmation_attributes_to_update return {} unless found_user.blank? || found_user.confirmed_at.blank? { confirmed_at: ::DateTime.now } end def found_user_uncached ::EacUsersSupport::User.find_by(email: email) end # @return [void] def run_on_user_found Rails.logger.info "Usuário encontrado com o email \"#{email}\"" found_user.update!(attributes_to_update) end # @return [void] def run_on_user_not_found Rails.logger.info "Usuário não encontrado com o email \"#{email}\". Criando..." User.create!({ email: email }.merge(attributes_to_update)) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
eac_users_support-0.11.1 | lib/eac_users_support/tasks/password_reset.rb |