songtianlun
7cf8411afa
- Standardize string quotes in the PasswordResetsController - Ensure consistent formatting for better readability This commit improves the code style by changing single quotes to double quotes for string literals in the PasswordResetsController. This change is purely cosmetic and does not affect the functionality of the code.
66 lines
1.6 KiB
Ruby
66 lines
1.6 KiB
Ruby
class PasswordResetsController < ApplicationController
|
|
before_action :get_user, only: [ :edit, :update ]
|
|
before_action :valid_user, only: [ :edit, :update ]
|
|
before_action :check_expiration, only: [ :edit, :update ]
|
|
|
|
include SessionsHelper
|
|
def new
|
|
end
|
|
|
|
def create
|
|
@user = User.find_by(email: params[:password_reset][:email].downcase)
|
|
if @user
|
|
@user.create_reset_digest
|
|
@user.send_password_reset_email
|
|
flash[:info] = "Email send with password reset instructions"
|
|
redirect_to root_url
|
|
else
|
|
flash.now[:danger] = "Email not found"
|
|
render "new", status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def update
|
|
if params[:user][:password].empty?
|
|
@user.errors.add(:password, "can't be empty")
|
|
render "edit", status: :unprocessable_entity
|
|
elsif @user.update(user_params)
|
|
forget(@user)
|
|
reset_session
|
|
@user.update_attribute(:reset_digest, nil)
|
|
log_in @user
|
|
flash[:success] = "Password has been reset"
|
|
redirect_to @user
|
|
else
|
|
render "edit", status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def user_params
|
|
params.require(:user).permit(:password, :password_confirmation)
|
|
end
|
|
|
|
def get_user
|
|
@user = User.find_by(email: params[:email])
|
|
end
|
|
|
|
def valid_user
|
|
unless @user && @user.activated? &&
|
|
@user.authenticated?(:reset, params[:id])
|
|
redirect_to root_url
|
|
end
|
|
end
|
|
|
|
def check_expiration
|
|
if @user.password_reset_expired?
|
|
flash[:danger] = "Password reset has expired"
|
|
redirect_to new_password_reset_url
|
|
end
|
|
end
|
|
end
|