Add details
to error response for POST /api/v1/accounts
in REST API (#15803)
This commit is contained in:
parent
b4cb8c3c83
commit
9aa37b32c3
12 changed files with 72 additions and 23 deletions
|
@ -4,16 +4,19 @@ require 'resolv'
|
|||
|
||||
class EmailMxValidator < ActiveModel::Validator
|
||||
def validate(user)
|
||||
return if user.email.blank?
|
||||
|
||||
domain = get_domain(user.email)
|
||||
|
||||
if domain.nil?
|
||||
user.errors.add(:email, I18n.t('users.invalid_email'))
|
||||
if domain.blank?
|
||||
user.errors.add(:email, :invalid)
|
||||
else
|
||||
ips, hostnames = resolve_mx(domain)
|
||||
|
||||
if ips.empty?
|
||||
user.errors.add(:email, I18n.t('users.invalid_email_mx'))
|
||||
user.errors.add(:email, :unreachable)
|
||||
elsif on_blacklist?(hostnames + ips)
|
||||
user.errors.add(:email, I18n.t('users.blocked_email_provider'))
|
||||
user.errors.add(:email, :blocked)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue