Fixed that users with different case logins cannot update their accounts (#10711).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9449 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
62eb536e32
commit
b0f35a3cde
|
@ -68,7 +68,7 @@ class User < Principal
|
||||||
MAIL_LENGTH_LIMIT = 60
|
MAIL_LENGTH_LIMIT = 60
|
||||||
|
|
||||||
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? }, :case_sensitive => false
|
validates_uniqueness_of :login, :if => Proc.new { |user| user.login_changed? && user.login.present? }, :case_sensitive => false
|
||||||
validates_uniqueness_of :mail, :if => Proc.new { |user| !user.mail.blank? }, :case_sensitive => false
|
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
|
||||||
|
|
|
@ -134,6 +134,20 @@ class UserTest < ActiveSupport::TestCase
|
||||||
assert_equal "john", @admin.login
|
assert_equal "john", @admin.login
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_update_should_not_fail_for_legacy_user_with_different_case_logins
|
||||||
|
u1 = User.new(:firstname => "new", :lastname => "user", :mail => "newuser1@somenet.foo")
|
||||||
|
u1.login = 'newuser1'
|
||||||
|
assert u1.save
|
||||||
|
|
||||||
|
u2 = User.new(:firstname => "new", :lastname => "user", :mail => "newuser2@somenet.foo")
|
||||||
|
u2.login = 'newuser1'
|
||||||
|
assert u2.save(false)
|
||||||
|
|
||||||
|
user = User.find(u2.id)
|
||||||
|
user.firstname = "firstname"
|
||||||
|
assert user.save, "Save failed"
|
||||||
|
end
|
||||||
|
|
||||||
def test_destroy_should_delete_members_and_roles
|
def test_destroy_should_delete_members_and_roles
|
||||||
members = Member.find_all_by_user_id(2)
|
members = Member.find_all_by_user_id(2)
|
||||||
ms = members.size
|
ms = members.size
|
||||||
|
|
Loading…
Reference in New Issue