add email 2FA
This commit is contained in:
committed by
Pete Matsyburka
parent
0e0aa0259e
commit
6e43a42274
+23
-3
@@ -24,7 +24,7 @@ module TextUtils
|
||||
text.to_s.gsub(TRANSLITERATION_REGEXP) { |e| TRANSLITERATIONS[e] }
|
||||
end
|
||||
|
||||
def mask_value(text, unmask_size = 0)
|
||||
def mask_value(text, unmask_size = 0, mask_symbol = MASK_SYMBOL)
|
||||
if unmask_size.is_a?(Numeric) && !unmask_size.zero? && unmask_size.abs < text.length
|
||||
if unmask_size.negative?
|
||||
[
|
||||
@@ -34,14 +34,34 @@ module TextUtils
|
||||
elsif unmask_size.positive?
|
||||
[
|
||||
text.first(unmask_size),
|
||||
text.last(text.length - unmask_size).gsub(MASK_REGEXP, MASK_SYMBOL)
|
||||
text.last(text.length - unmask_size).gsub(MASK_REGEXP, mask_symbol)
|
||||
].join
|
||||
end
|
||||
else
|
||||
text.to_s.gsub(MASK_REGEXP, MASK_SYMBOL)
|
||||
text.to_s.gsub(MASK_REGEXP, mask_symbol)
|
||||
end
|
||||
end
|
||||
|
||||
def mask_email(email, unmask_size = 2)
|
||||
return email if email.exclude?('@')
|
||||
|
||||
local, domain = email.split('@', 2)
|
||||
|
||||
return email if local.blank? || domain.blank?
|
||||
|
||||
masked_local = mask_value(local, unmask_size, '*')
|
||||
domain_parts = domain.split('.')
|
||||
|
||||
if domain_parts.blank? || domain_parts[0].blank?
|
||||
masked_domain = mask_value(domain, 1, '*')
|
||||
else
|
||||
domain_parts[0] = mask_value(domain_parts[0], 1, '*')
|
||||
masked_domain = domain_parts.join('.')
|
||||
end
|
||||
|
||||
"#{masked_local}@#{masked_domain}"
|
||||
end
|
||||
|
||||
def maybe_rtl_reverse(text)
|
||||
if text.match?(RTL_REGEXP)
|
||||
TwitterCldr::Shared::Bidi
|
||||
|
||||
Reference in New Issue
Block a user