0
0
Fork 0

Add details to error response for POST /api/v1/accounts in REST API (#15803)

This commit is contained in:
Eugen Rochko 2021-03-01 04:59:13 +01:00 committed by GitHub
parent b4cb8c3c83
commit 9aa37b32c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 72 additions and 23 deletions

View file

@ -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