Files
old-holivud2/app/controllers/password_resets_controller.rb
2020-06-03 07:24:01 +02:00

59 lines
1.1 KiB
Ruby

class PasswordResetsController < ApplicationController
skip_before_action :require_login
skip_after_action :verify_authorized
before_action :set_user, only: [:edit, :update]
def new
end
def create
@user = find_user_by_email
if @user
UserMailer.password_reset(@user).deliver_later
end
redirect_to new_session_path, notice: t(".notice")
end
def edit
end
def update
if @user && reset_password(@user, new_password_param)
@user.regenerate_password_reset_token
redirect_to new_session_path, notice: t(".notice")
end
rescue ActiveRecord::RecordInvalid
flash.alert = t(".alert")
render :edit
end
private
def set_user
@user = find_user_by_token
end
def password_reset_params
params.require(:password_reset).permit(:email, :password)
end
def email_param
password_reset_params.dig(:email)
end
def new_password_param
password_reset_params.dig(:password)
end
def find_user_by_email
@user = User.find_by(email: email_param)
end
def find_user_by_token
@user = User.find_by(password_reset_token: params[:id])
end
end