Project

General

Profile

« Previous | Next » 

Revision 7477c779

Added by Ivan Necas over 7 years ago

Fixes #18410 - log permission denials

View differences:

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