Merge pull request #4531 from betagouv/fix_4529

Log l'email du super admin lors des actions dans le manager
This commit is contained in:
LeSim 2019-11-19 13:34:21 +01:00 committed by GitHub
commit 0d8e7f956f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 0 deletions

View file

@ -141,6 +141,8 @@ class ApplicationController < ActionController::Base
Raven.user_context(sentry_user)
end
# private method called by rails fwk
# see https://github.com/roidrage/lograge
def append_info_to_payload(payload)
super

View file

@ -19,5 +19,29 @@ module Manager
redirect_to manager_sign_in_path
end
end
private
# private method called by rails fwk
# see https://github.com/roidrage/lograge
def append_info_to_payload(payload)
super
payload.merge!({
user_agent: request.user_agent,
user_id: current_user&.id,
user_email: current_user&.email
}.compact)
if browser.known?
payload.merge!({
browser: browser.name,
browser_version: browser.version.to_s,
platform: browser.platform.name
})
end
payload
end
end
end

View file

@ -0,0 +1,22 @@
describe Manager::ApplicationController, type: :controller do
describe 'append_info_to_payload' do
let(:current_user) { create(:administration) }
let(:payload) { {} }
before do
allow(@controller).to receive(:current_user).and_return(current_user)
@controller.send(:append_info_to_payload, payload)
end
it do
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
payload.delete(key)
end
expect(payload).to eq({
user_agent: 'Rails Testing',
user_id: current_user.id,
user_email: current_user.email
})
end
end
end