Commit 212bf1e2 authored by Jean-Philippe Lang's avatar Jean-Philippe Lang

Makes email adress uniqueness case-insensitive (#2473).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2253 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 6768bec4
......@@ -54,7 +54,7 @@ class User < ActiveRecord::Base
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 :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
validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
validates_length_of :login, :maximum => 30
......
......@@ -47,6 +47,19 @@ class UserTest < Test::Unit::TestCase
user.password, user.password_confirmation = "password", "password"
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
def test_update
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment