mirror of
https://github.com/heartcombo/devise.git
synced 2022-11-09 12:18:31 -05:00
Use Devise::Email::EXACT_PATTERN.
This commit is contained in:
parent
a229627a54
commit
bdad984ace
3 changed files with 24 additions and 25 deletions
|
@ -1,7 +1,7 @@
|
|||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
devise (1.3.0)
|
||||
devise (1.3.1)
|
||||
bcrypt-ruby (~> 2.1.2)
|
||||
orm_adapter (~> 0.0.3)
|
||||
warden (~> 1.0.3)
|
||||
|
|
|
@ -10,7 +10,7 @@ module Devise
|
|||
autoload :PathChecker, 'devise/path_checker'
|
||||
autoload :Schema, 'devise/schema'
|
||||
autoload :TestHelpers, 'devise/test_helpers'
|
||||
autoload :EmailAddressValidation, 'devise/email'
|
||||
autoload :Email, 'devise/email'
|
||||
|
||||
module Controllers
|
||||
autoload :Helpers, 'devise/controllers/helpers'
|
||||
|
@ -92,12 +92,11 @@ module Devise
|
|||
mattr_accessor :http_authentication_realm
|
||||
@@http_authentication_realm = "Application"
|
||||
|
||||
# Email regex used to validate email formats. Based on RFC 822 and retrieved from
|
||||
# Sixarm email validation gem
|
||||
# Email regex used to validate email formats. Based on RFC 822 and
|
||||
# retrieved from Sixarm email validation gem
|
||||
# (https://github.com/SixArm/sixarm_ruby_email_address_validation).
|
||||
include EmailAddressValidation
|
||||
mattr_accessor :email_regexp
|
||||
@@email_regexp = EMAIL_ADDRESS_EXACT_PATTERN
|
||||
@@email_regexp = Devise::Email::EXACT_PATTERN
|
||||
|
||||
# Range validation for password length
|
||||
mattr_accessor :password_length
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
# This e-mail validation regexes were retrieved from SixArm Ruby e-mail validation gem (https://github.com/SixArm/sixarm_ruby_email_address_validation)
|
||||
|
||||
# This e-mail validation regexes were retrieved from SixArm Ruby
|
||||
# e-mail validation gem (https://github.com/SixArm/sixarm_ruby_email_address_validation)
|
||||
# As said on https://github.com/SixArm/sixarm_ruby_email_address_validation/blob/master/LICENSE.txt,
|
||||
# we added it using Ruby license terms.
|
||||
|
||||
module EmailAddressValidation
|
||||
|
||||
EMAIL_ADDRESS_QTEXT = Regexp.new '[^\\x0d\\x22\\x5c\\x80-\\xff]', nil, 'n'
|
||||
EMAIL_ADDRESS_DTEXT = Regexp.new '[^\\x0d\\x5b-\\x5d\\x80-\\xff]', nil, 'n'
|
||||
EMAIL_ADDRESS_ATOM = Regexp.new '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+', nil, 'n'
|
||||
EMAIL_ADDRESS_QUOTED_PAIR = Regexp.new '\\x5c[\\x00-\\x7f]', nil, 'n'
|
||||
EMAIL_ADDRESS_DOMAIN_LITERAL = Regexp.new "\\x5b(?:#{EMAIL_ADDRESS_DTEXT}|#{EMAIL_ADDRESS_QUOTED_PAIR})*\\x5d", nil, 'n'
|
||||
EMAIL_ADDRESS_QUOTED_STRING = Regexp.new "\\x22(?:#{EMAIL_ADDRESS_QTEXT}|#{EMAIL_ADDRESS_QUOTED_PAIR})*\\x22", nil, 'n'
|
||||
EMAIL_ADDRESS_DOMAIN_REF = EMAIL_ADDRESS_ATOM
|
||||
EMAIL_ADDRESS_SUB_DOMAIN = "(?:#{EMAIL_ADDRESS_DOMAIN_REF}|#{EMAIL_ADDRESS_DOMAIN_LITERAL})"
|
||||
EMAIL_ADDRESS_WORD = "(?:#{EMAIL_ADDRESS_ATOM}|#{EMAIL_ADDRESS_QUOTED_STRING})"
|
||||
EMAIL_ADDRESS_DOMAIN = "#{EMAIL_ADDRESS_SUB_DOMAIN}(?:\\x2e#{EMAIL_ADDRESS_SUB_DOMAIN})*"
|
||||
EMAIL_ADDRESS_LOCAL_PART = "#{EMAIL_ADDRESS_WORD}(?:\\x2e#{EMAIL_ADDRESS_WORD})*"
|
||||
EMAIL_ADDRESS_SPEC = "#{EMAIL_ADDRESS_LOCAL_PART}\\x40#{EMAIL_ADDRESS_DOMAIN}"
|
||||
EMAIL_ADDRESS_PATTERN = Regexp.new "#{EMAIL_ADDRESS_SPEC}", nil, 'n'
|
||||
EMAIL_ADDRESS_EXACT_PATTERN = Regexp.new "\\A#{EMAIL_ADDRESS_SPEC}\\z", nil, 'n'
|
||||
|
||||
module Devise
|
||||
module Email
|
||||
QTEXT = Regexp.new '[^\\x0d\\x22\\x5c\\x80-\\xff]', nil, 'n'
|
||||
DTEXT = Regexp.new '[^\\x0d\\x5b-\\x5d\\x80-\\xff]', nil, 'n'
|
||||
ATOM = Regexp.new '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+', nil, 'n'
|
||||
QUOTED_PAIR = Regexp.new '\\x5c[\\x00-\\x7f]', nil, 'n'
|
||||
DOMAIN_LITERAL = Regexp.new "\\x5b(?:#{DTEXT}|#{QUOTED_PAIR})*\\x5d", nil, 'n'
|
||||
QUOTED_STRING = Regexp.new "\\x22(?:#{QTEXT}|#{QUOTED_PAIR})*\\x22", nil, 'n'
|
||||
DOMAIN_REF = ATOM
|
||||
SUB_DOMAIN = "(?:#{DOMAIN_REF}|#{DOMAIN_LITERAL})"
|
||||
WORD = "(?:#{ATOM}|#{QUOTED_STRING})"
|
||||
DOMAIN = "#{SUB_DOMAIN}(?:\\x2e#{SUB_DOMAIN})*"
|
||||
LOCAL_PART = "#{WORD}(?:\\x2e#{WORD})*"
|
||||
SPEC = "#{LOCAL_PART}\\x40#{DOMAIN}"
|
||||
PATTERN = Regexp.new "#{SPEC}", nil, 'n'
|
||||
EXACT_PATTERN = Regexp.new "\\A#{SPEC}\\z", nil, 'n'
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue