Sha256: b2eaceb60787d31d7ea9ec0d59be006ea2cd00c037a97a85893715a6c97929fa
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
module Spina module Admin class PasswordResetsController < AdminController layout "spina/admin/sessions" skip_before_action :authorize_spina_user def new end def create user = User.find_by(email: params[:email]) if user.present? user.regenerate_password_reset_token user.touch(:password_reset_sent_at) UserMailer.forgot_password(user).deliver_now redirect_to admin_login_path, flash: {success: t('spina.forgot_password.instructions_sent')} else flash.now[:alert] = t('spina.forgot_password.unknown_user') render :new, status: :unprocessable_entity end end def edit @user = User.find_by!(password_reset_token: params[:id]) end def update @user = User.find_by(password_reset_token: params[:id]) if @user.password_reset_sent_at < 2.hours.ago redirect_to new_admin_password_reset_path, flash: {alert: t('spina.forgot_password.expired')} elsif @user.update(user_params) redirect_to admin_login_path, flash: {success: t('spina.forgot_password.success')} else render :edit, status: :unprocessable_entity end end private def user_params params.require(:user).permit(:password, :password_confirmation) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
spina-2.1.1 | app/controllers/spina/admin/password_resets_controller.rb |
spina-2.1.0 | app/controllers/spina/admin/password_resets_controller.rb |