c9bb0e576d
Prevent new accounts from being created using the same underlying e-mail as a suspended account using extensions and period permutations. Stores e-mails as a SHA256 hash
18 lines
398 B
Ruby
18 lines
398 B
Ruby
# frozen_string_literal: true
|
|
|
|
module EmailHelper
|
|
def self.included(base)
|
|
base.extend(self)
|
|
end
|
|
|
|
def email_to_canonical_email(str)
|
|
username, domain = str.downcase.split('@', 2)
|
|
username, = username.gsub('.', '').split('+', 2)
|
|
|
|
"#{username}@#{domain}"
|
|
end
|
|
|
|
def email_to_canonical_email_hash(str)
|
|
Digest::SHA2.new(256).hexdigest(email_to_canonical_email(str))
|
|
end
|
|
end
|