diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 24a7d16..c7d209a 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -8,7 +8,7 @@ class ApplicationController < ActionController::Base before_filter :init_noosfero_plugins before_filter :allow_cross_domain_access before_filter :login_required, :if => :private_environment? - before_filter :verify_members_whitelist, :if => :user + before_filter :verify_members_whitelist, :if => [:private_environment?, :user] def verify_members_whitelist render_access_denied unless user.is_admin? || environment.in_whitelist?(user) diff --git a/test/functional/application_controller_test.rb b/test/functional/application_controller_test.rb index fb5c7fc..f6c1dc4 100644 --- a/test/functional/application_controller_test.rb +++ b/test/functional/application_controller_test.rb @@ -564,9 +564,10 @@ class ApplicationControllerTest < ActionController::TestCase assert_redirected_to :controller => 'account', :action => 'login' end - should 'do not allow member not included in whitelist to access an environment' do + should 'do not allow member not included in whitelist to access an restricted environment' do user = create_user e = Environment.default + e.enable(:restrict_to_members) e.members_whitelist_enabled = true e.save! login_as(user.login) @@ -604,4 +605,15 @@ class ApplicationControllerTest < ActionController::TestCase assert_response :success end + should 'not check whitelist members if the environment is not restrict to members' do + e = Environment.default + e.disable(:restrict_to_members) + e.members_whitelist_enabled = true + e.save! + @controller.expects(:verify_members_whitelist).never + login_as create_user.login + get :index + assert_response :success + end + end -- libgit2 0.21.2