Revision 7477c779
Added by Ivan Necas over 7 years ago
app/controllers/api/base_controller.rb | ||
---|---|---|
def set_error_details(error, options)
|
||
case error
|
||
when 'access_denied'
|
||
fail_message = _('Missing one of the required permissions: %s') % missing_permissions.map(&:name).join(', ')
|
||
Foreman::Logging.logger('permissions').info fail_message
|
||
if options.fetch(:locals, {}).fetch(:details, nil).blank?
|
||
options = options.deep_merge({:locals => {:details => _('Missing one of the required permissions: %s') % missing_permissions.map(&:name).join(', ') }})
|
||
options = options.deep_merge({:locals => {:details => fail_message }})
|
||
end
|
||
end
|
||
options
|
app/controllers/application_controller.rb | ||
---|---|---|
def render_403(msg = nil)
|
||
if msg.nil?
|
||
@missing_permissions = Foreman::AccessControl.permissions_for_controller_action(path_to_authenticate)
|
||
Foreman::Logging.logger('permissions').debug "rendering 403 because of missing permission #{@missing_permissions.map(&:name).join(', ')}"
|
||
Foreman::Logging.logger('permissions').info "rendering 403 because of missing permission #{@missing_permissions.map(&:name).join(', ')}"
|
||
else
|
||
@missing_permissions = []
|
||
Foreman::Logging.logger('permissions').debug msg
|
||
Foreman::Logging.logger('permissions').info msg
|
||
end
|
||
|
||
respond_to do |format|
|
Also available in: Unified diff
Fixes #18410 - log permission denials