mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-08 08:31:31 +00:00
Adds a configuration setting to enable sudo mode, disabled by default (#19851).
git-svn-id: http://svn.redmine.org/redmine/trunk@14336 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
8541775549
commit
e12322dac3
@ -170,6 +170,13 @@ default:
|
||||
# same secret token on each machine.
|
||||
#secret_token: 'change it to a long random string'
|
||||
|
||||
# Requires users to re-enter their password for sensitive actions (editing
|
||||
# of account data, project memberships, application settings, user, group,
|
||||
# role, auth source management and project deletion).
|
||||
# Disabled by default.
|
||||
#
|
||||
#sudo_mode: true
|
||||
|
||||
# Absolute path (e.g. /usr/bin/convert, c:/im/convert.exe) to
|
||||
# the ImageMagick's `convert` binary. Used to generate attachment thumbnails.
|
||||
#imagemagick_convert_command:
|
||||
|
||||
@ -202,7 +202,7 @@ module Redmine
|
||||
end
|
||||
|
||||
def self.possible?
|
||||
!disabled? && User.current.logged?
|
||||
enabled? && User.current.logged?
|
||||
end
|
||||
|
||||
# Turn off sudo mode (never require password entry).
|
||||
@ -215,10 +215,9 @@ module Redmine
|
||||
RequestStore.store[:sudo_mode_disabled] = nil
|
||||
end
|
||||
|
||||
def self.disabled?
|
||||
!!RequestStore.store[:sudo_mode_disabled]
|
||||
def self.enabled?
|
||||
Redmine::Configuration['sudo_mode'] && !RequestStore.store[:sudo_mode_disabled]
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -22,7 +22,6 @@ class AuthSourcesControllerTest < ActionController::TestCase
|
||||
|
||||
def setup
|
||||
@request.session[:user_id] = 1
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_index
|
||||
|
||||
@ -22,7 +22,6 @@ class EmailAddressesControllerTest < ActionController::TestCase
|
||||
|
||||
def setup
|
||||
User.current = nil
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_index_with_no_additional_emails
|
||||
|
||||
@ -22,7 +22,6 @@ class GroupsControllerTest < ActionController::TestCase
|
||||
|
||||
def setup
|
||||
@request.session[:user_id] = 1
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_index
|
||||
|
||||
@ -23,7 +23,6 @@ class MembersControllerTest < ActionController::TestCase
|
||||
def setup
|
||||
User.current = nil
|
||||
@request.session[:user_id] = 2
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_new
|
||||
|
||||
@ -23,7 +23,6 @@ class MyControllerTest < ActionController::TestCase
|
||||
|
||||
def setup
|
||||
@request.session[:user_id] = 2
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_index
|
||||
|
||||
@ -28,7 +28,6 @@ class ProjectsControllerTest < ActionController::TestCase
|
||||
def setup
|
||||
@request.session[:user_id] = nil
|
||||
Setting.default_language = 'en'
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_index_by_anonymous_should_not_show_private_projects
|
||||
|
||||
@ -23,7 +23,6 @@ class RolesControllerTest < ActionController::TestCase
|
||||
def setup
|
||||
User.current = nil
|
||||
@request.session[:user_id] = 1 # admin
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_index
|
||||
|
||||
@ -24,7 +24,6 @@ class SettingsControllerTest < ActionController::TestCase
|
||||
def setup
|
||||
User.current = nil
|
||||
@request.session[:user_id] = 1 # admin
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_index
|
||||
|
||||
@ -30,7 +30,6 @@ class UsersControllerTest < ActionController::TestCase
|
||||
def setup
|
||||
User.current = nil
|
||||
@request.session[:user_id] = 1 # admin
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_index
|
||||
|
||||
@ -26,14 +26,6 @@ class AdminTest < Redmine::IntegrationTest
|
||||
:members,
|
||||
:enabled_modules
|
||||
|
||||
def setup
|
||||
Redmine::SudoMode.enable!
|
||||
end
|
||||
|
||||
def teardown
|
||||
Redmine::SudoMode.disable!
|
||||
end
|
||||
|
||||
def test_add_user
|
||||
log_user("admin", "admin")
|
||||
get "/users/new"
|
||||
@ -44,15 +36,6 @@ class AdminTest < Redmine::IntegrationTest
|
||||
:lastname => "Smith", :mail => "psmith@somenet.foo",
|
||||
:language => "en", :password => "psmith09",
|
||||
:password_confirmation => "psmith09" }
|
||||
assert_response :success
|
||||
assert_nil User.find_by_login("psmith")
|
||||
|
||||
post "/users",
|
||||
:user => { :login => "psmith", :firstname => "Paul",
|
||||
:lastname => "Smith", :mail => "psmith@somenet.foo",
|
||||
:language => "en", :password => "psmith09",
|
||||
:password_confirmation => "psmith09" },
|
||||
:sudo_password => 'admin'
|
||||
|
||||
user = User.find_by_login("psmith")
|
||||
assert_kind_of User, user
|
||||
|
||||
@ -4,11 +4,31 @@ class SudoTest < Redmine::IntegrationTest
|
||||
fixtures :projects, :members, :member_roles, :roles, :users
|
||||
|
||||
def setup
|
||||
Redmine::SudoMode.enable!
|
||||
Redmine::SudoMode.stubs(:enabled?).returns(true)
|
||||
end
|
||||
|
||||
def teardown
|
||||
Redmine::SudoMode.disable!
|
||||
def test_add_user
|
||||
log_user("admin", "admin")
|
||||
get "/users/new"
|
||||
assert_response :success
|
||||
post "/users",
|
||||
:user => { :login => "psmith", :firstname => "Paul",
|
||||
:lastname => "Smith", :mail => "psmith@somenet.foo",
|
||||
:language => "en", :password => "psmith09",
|
||||
:password_confirmation => "psmith09" }
|
||||
assert_response :success
|
||||
assert_nil User.find_by_login("psmith")
|
||||
|
||||
post "/users",
|
||||
:user => { :login => "psmith", :firstname => "Paul",
|
||||
:lastname => "Smith", :mail => "psmith@somenet.foo",
|
||||
:language => "en", :password => "psmith09",
|
||||
:password_confirmation => "psmith09" },
|
||||
:sudo_password => 'admin'
|
||||
assert_response 302
|
||||
|
||||
user = User.find_by_login("psmith")
|
||||
assert_kind_of User, user
|
||||
end
|
||||
|
||||
def test_create_member_xhr
|
||||
|
||||
@ -33,6 +33,8 @@ include ObjectHelpers
|
||||
require 'net/ldap'
|
||||
require 'mocha/setup'
|
||||
|
||||
Redmine::SudoMode.disable!
|
||||
|
||||
class ActionView::TestCase
|
||||
helper :application
|
||||
include ApplicationHelper
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user