Commit 181fc2687fd8233c08ed14d6ebf8f08bd1d25718

Authored by Joenio Costa
1 parent 3f489bc4

Check whitelist members only if environment is restricted

(ActionItem3191)
app/controllers/application_controller.rb
@@ -8,7 +8,7 @@ class ApplicationController < ActionController::Base @@ -8,7 +8,7 @@ class ApplicationController < ActionController::Base
8 before_filter :init_noosfero_plugins 8 before_filter :init_noosfero_plugins
9 before_filter :allow_cross_domain_access 9 before_filter :allow_cross_domain_access
10 before_filter :login_required, :if => :private_environment? 10 before_filter :login_required, :if => :private_environment?
11 - before_filter :verify_members_whitelist, :if => :user 11 + before_filter :verify_members_whitelist, :if => [:private_environment?, :user]
12 12
13 def verify_members_whitelist 13 def verify_members_whitelist
14 render_access_denied unless user.is_admin? || environment.in_whitelist?(user) 14 render_access_denied unless user.is_admin? || environment.in_whitelist?(user)
test/functional/application_controller_test.rb
@@ -564,9 +564,10 @@ class ApplicationControllerTest < ActionController::TestCase @@ -564,9 +564,10 @@ class ApplicationControllerTest < ActionController::TestCase
564 assert_redirected_to :controller => 'account', :action => 'login' 564 assert_redirected_to :controller => 'account', :action => 'login'
565 end 565 end
566 566
567 - should 'do not allow member not included in whitelist to access an environment' do 567 + should 'do not allow member not included in whitelist to access an restricted environment' do
568 user = create_user 568 user = create_user
569 e = Environment.default 569 e = Environment.default
  570 + e.enable(:restrict_to_members)
570 e.members_whitelist_enabled = true 571 e.members_whitelist_enabled = true
571 e.save! 572 e.save!
572 login_as(user.login) 573 login_as(user.login)
@@ -604,4 +605,15 @@ class ApplicationControllerTest < ActionController::TestCase @@ -604,4 +605,15 @@ class ApplicationControllerTest < ActionController::TestCase
604 assert_response :success 605 assert_response :success
605 end 606 end
606 607
  608 + should 'not check whitelist members if the environment is not restrict to members' do
  609 + e = Environment.default
  610 + e.disable(:restrict_to_members)
  611 + e.members_whitelist_enabled = true
  612 + e.save!
  613 + @controller.expects(:verify_members_whitelist).never
  614 + login_as create_user.login
  615 + get :index
  616 + assert_response :success
  617 + end
  618 +
607 end 619 end