mirror of
https://github.com/discourse/discourse.git
synced 2025-06-01 17:40:43 +08:00
Utilize already existing method 'find_by_username_or_email'
check presence of email using include, dont use =~
This commit is contained in:
@ -10,14 +10,11 @@ class SessionController < ApplicationController
|
||||
params.require(:login)
|
||||
params.require(:password)
|
||||
|
||||
login = params[:login].strip
|
||||
login = login[1..-1] if login[0] == "@"
|
||||
login = params[:login].strip
|
||||
password = params[:password]
|
||||
login = login[1..-1] if login[0] == "@"
|
||||
|
||||
if login =~ /@/
|
||||
@user = User.where(email: Email.downcase(login)).first
|
||||
else
|
||||
@user = User.where(username_lower: login.downcase).first
|
||||
end
|
||||
@user = User.find_by_username_or_email(login)
|
||||
|
||||
if @user.present?
|
||||
|
||||
@ -28,7 +25,7 @@ class SessionController < ApplicationController
|
||||
end
|
||||
|
||||
# If their password is correct
|
||||
if @user.confirm_password?(params[:password])
|
||||
if @user.confirm_password?(password)
|
||||
|
||||
if @user.is_banned?
|
||||
render json: { error: I18n.t("login.banned", {date: I18n.l(@user.banned_till, format: :date_only)}) }
|
||||
@ -57,7 +54,7 @@ class SessionController < ApplicationController
|
||||
def forgot_password
|
||||
params.require(:login)
|
||||
|
||||
user = User.where('username_lower = :username or email = :email', username: params[:login].downcase, email: Email.downcase(params[:login])).first
|
||||
user = User.find_by_username_or_email(params[:login])
|
||||
if user.present?
|
||||
email_token = user.email_tokens.create(email: user.email)
|
||||
Jobs.enqueue(:user_email, type: :forgot_password, user_id: user.id, email_token: email_token.token)
|
||||
|
Reference in New Issue
Block a user