From: Anton Khorev Date: Fri, 1 Sep 2023 16:33:22 +0000 (+0300) Subject: Move email-related methods to mixin X-Git-Tag: live~1095^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/f5c20527aa76aa6758e4f84e82b8ba82b9599adc?ds=sidebyside;hp=abecde92f5c4adbdd3882f833787f3f8cdbd564b Move email-related methods to mixin --- diff --git a/app/controllers/concerns/email_methods.rb b/app/controllers/concerns/email_methods.rb new file mode 100644 index 000000000..471a61e6a --- /dev/null +++ b/app/controllers/concerns/email_methods.rb @@ -0,0 +1,27 @@ +module EmailMethods + extend ActiveSupport::Concern + + private + + def canonical_email(email) + local_part, domain = if email.nil? + nil + else + email.split("@") + end + + local_part.sub!(/\+.*$/, "") + + local_part.delete!(".") if %w[gmail.com googlemail.com].include?(domain) + + "#{local_part}@#{domain}" + end + + ## + # get list of MX servers for a domains + def domain_mx_servers(domain) + Resolv::DNS.open do |dns| + dns.getresources(domain, Resolv::DNS::Resource::IN::MX).collect { |mx| mx.exchange.to_s } + end + end +end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 9d4b3d258..5ba1b702b 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,4 +1,5 @@ class UsersController < ApplicationController + include EmailMethods include SessionMethods include UserMethods @@ -361,26 +362,4 @@ class UsersController < ApplicationController !blocked end - - def canonical_email(email) - local_part, domain = if email.nil? - nil - else - email.split("@") - end - - local_part.sub!(/\+.*$/, "") - - local_part.delete!(".") if %w[gmail.com googlemail.com].include?(domain) - - "#{local_part}@#{domain}" - end - - ## - # get list of MX servers for a domains - def domain_mx_servers(domain) - Resolv::DNS.open do |dns| - dns.getresources(domain, Resolv::DNS::Resource::IN::MX).collect { |mx| mx.exchange.to_s } - end - end end