Revision e7803819
Added by Marek Hulán about 9 years ago
app/controllers/usergroups_controller.rb | ||
---|---|---|
class UsergroupsController < ApplicationController
|
||
include Foreman::Controller::AutoCompleteSearch
|
||
before_filter :find_resource, :only => [:edit, :update, :destroy]
|
||
before_filter :get_external_usergroups_to_refresh, :only => [:update]
|
||
after_filter :refresh_external_usergroups, :only => [:create, :update]
|
||
|
||
def index
|
||
... | ... | |
Usergroup.authorized(permission).find(params[:id])
|
||
end
|
||
|
||
def get_external_usergroups_to_refresh
|
||
# we need to load current status, so we call all explicitly
|
||
@external_usergroups = @usergroup.external_usergroups.all
|
||
end
|
||
|
||
def external_usergroups
|
||
@external_usergroups || []
|
||
end
|
||
|
||
def refresh_external_usergroups
|
||
@usergroup.external_usergroups.map(&:refresh)
|
||
(external_usergroups + @usergroup.external_usergroups).uniq.map(&:refresh)
|
||
end
|
||
end
|
test/functional/usergroups_controller_test.rb | ||
---|---|---|
User.any_instance.expects(:expire_topbar_cache).twice
|
||
put :update, { :id => usergroup.id, :usergroup => {:admin => true }}, set_session_user
|
||
end
|
||
|
||
test 'external user group is refreshed even when destroyed' do
|
||
AuthSourceLdap.any_instance.stubs(:valid_group? => true)
|
||
external = FactoryGirl.create(:external_usergroup)
|
||
ExternalUsergroup.any_instance.expects(:refresh).returns(true)
|
||
|
||
put :update, { :id => external.usergroup_id, :usergroup => { :external_usergroups_attributes => {
|
||
'0' => {'_destroy' => '1', 'name' => external.name, 'auth_source_id' => external.auth_source_id, 'id' => external.id}
|
||
}}}, set_session_user
|
||
assert_response :redirect
|
||
end
|
||
end
|
Also available in: Unified diff
Fixes #9884 - refresh deleted external usergroups