Makes email adress uniqueness case-insensitive (#2473).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2253 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
6768bec456
commit
212bf1e2bb
|
@ -54,7 +54,7 @@ class User < ActiveRecord::Base
|
||||||
|
|
||||||
validates_presence_of :login, :firstname, :lastname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
|
validates_presence_of :login, :firstname, :lastname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
|
||||||
validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }
|
validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }
|
||||||
validates_uniqueness_of :mail, :if => Proc.new { |user| !user.mail.blank? }
|
validates_uniqueness_of :mail, :if => Proc.new { |user| !user.mail.blank? }, :case_sensitive => false
|
||||||
# Login must contain lettres, numbers, underscores only
|
# Login must contain lettres, numbers, underscores only
|
||||||
validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
|
validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
|
||||||
validates_length_of :login, :maximum => 30
|
validates_length_of :login, :maximum => 30
|
||||||
|
|
|
@ -47,6 +47,19 @@ class UserTest < Test::Unit::TestCase
|
||||||
|
|
||||||
user.password, user.password_confirmation = "password", "password"
|
user.password, user.password_confirmation = "password", "password"
|
||||||
assert user.save
|
assert user.save
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mail_uniqueness_should_not_be_case_sensitive
|
||||||
|
u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
|
||||||
|
u.login = 'newuser1'
|
||||||
|
u.password, u.password_confirmation = "password", "password"
|
||||||
|
assert u.save
|
||||||
|
|
||||||
|
u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
|
||||||
|
u.login = 'newuser2'
|
||||||
|
u.password, u.password_confirmation = "password", "password"
|
||||||
|
assert !u.save
|
||||||
|
assert_equal 'activerecord_error_taken', u.errors.on(:mail)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_update
|
def test_update
|
||||||
|
|
Loading…
Reference in New Issue