mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 07:53:49 +08:00
DEV: pull email address validation out to a new EmailAddressValidator
We validate the *format* of email addresses in many places with a match against a regex, often with very slightly different syntax. Adding a separate EmailAddressValidator simplifies the code in a few spots and feels cleaner. Deprecated the old location in case someone is using it in a plugin. No functionality change is in this commit. Note: the regex used at the moment does not support using address literals, e.g.: * localpart@[192.168.0.1] * localpart@[2001:db8::1]
This commit is contained in:

committed by
Michael Brown

parent
e54b70460e
commit
3bf3b9a4a5
@ -546,7 +546,7 @@ class SessionController < ApplicationController
|
||||
RateLimiter.new(nil, "forgot-password-min-#{request.remote_ip}", 3, 1.minute).performed!
|
||||
|
||||
user = if SiteSetting.hide_email_address_taken && !current_user&.staff?
|
||||
raise Discourse::InvalidParameters.new(:login) if EmailValidator.email_regex !~ normalized_login_param
|
||||
raise Discourse::InvalidParameters.new(:login) if !EmailAddressValidator.valid_value?(normalized_login_param)
|
||||
User.real.where(staged: false).find_by_email(Email.downcase(normalized_login_param))
|
||||
else
|
||||
User.real.where(staged: false).find_by_username_or_email(normalized_login_param)
|
||||
|
Reference in New Issue
Block a user