diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-04-14 04:42:56 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-04-14 04:42:56 +0000 |
commit | ed0d0533e71c4bb0f31caa8f7db8a1fc1684c2e8 (patch) | |
tree | 76cb9bbc80fa83e73962e527956d1d8e702545a2 | |
parent | 22d639402cadbedb410315d4c80c0797752f9413 (diff) | |
download | redmine-ed0d0533e71c4bb0f31caa8f7db8a1fc1684c2e8.tar.gz redmine-ed0d0533e71c4bb0f31caa8f7db8a1fc1684c2e8.zip |
Merged r9379 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.3-stable@9394 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/controllers/admin_controller.rb | 4 | ||||
-rw-r--r-- | app/models/user.rb | 5 | ||||
-rw-r--r-- | test/unit/user_test.rb | 32 |
3 files changed, 38 insertions, 3 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 128459e43..2e0883bc7 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -73,9 +73,7 @@ class AdminController < ApplicationController def info @db_adapter_name = ActiveRecord::Base.connection.adapter_name @checklist = [ - [:text_default_administrator_account_changed, - User.find(:first, - :conditions => ["login=? and hashed_password=?", 'admin', User.hash_password('admin')]).nil?], + [:text_default_administrator_account_changed, User.default_admin_account_changed?], [:text_file_repository_writable, File.writable?(Attachment.storage_path)], [:text_plugin_assets_writable, File.writable?(Engines.public_directory)], [:text_rmagick_available, Object.const_defined?(:Magick)] diff --git a/app/models/user.rb b/app/models/user.rb index 8268d752e..e97c8922b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -343,6 +343,11 @@ class User < Principal find(:first, :conditions => ["LOWER(mail) = ?", mail.to_s.downcase]) end + # Returns true if the default admin account can no longer be used + def self.default_admin_account_changed? + !User.active.find_by_login("admin").try(:check_password?, "admin") + end + def to_s name end diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index a772d0079..3cb31c23e 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -574,6 +574,38 @@ class UserTest < ActiveSupport::TestCase end end + def test_default_admin_account_changed_should_return_false_if_account_was_not_changed + user = User.find_by_login("admin") + user.password = "admin" + user.save! + + assert_equal false, User.default_admin_account_changed? + end + + def test_default_admin_account_changed_should_return_true_if_password_was_changed + user = User.find_by_login("admin") + user.password = "newpassword" + user.save! + + assert_equal true, User.default_admin_account_changed? + end + + def test_default_admin_account_changed_should_return_true_if_account_is_disabled + user = User.find_by_login("admin") + user.password = "admin" + user.status = User::STATUS_LOCKED + user.save! + + assert_equal true, User.default_admin_account_changed? + end + + def test_default_admin_account_changed_should_return_true_if_account_does_not_exist + user = User.find_by_login("admin") + user.destroy + + assert_equal true, User.default_admin_account_changed? + end + def test_roles_for_project # user with a role roles = @jsmith.roles_for_project(Project.find(1)) |