Commit 2d48aeac authored by Tan Le's avatar Tan Le

Fix rendering failure of Audit Event

When audit event is recorded via Project Releases API, the audit event
is not written in the correct structure (i.e. with a redundant
`action: :custom` entry in the details hash). This change to ensure:

- To extract the right action value on read
- To drop redundant action information on write
parent 8c7f358a
...@@ -9,7 +9,6 @@ module EE ...@@ -9,7 +9,6 @@ module EE
@release = release @release = release
super(author, entity, { super(author, entity, {
action: :custom,
custom_message: message, custom_message: message,
ip_address: ip_address, ip_address: ip_address,
target_id: release.id, target_id: release.id,
......
---
title: Fix rendering failure of Audit Event generated by Releases API
merge_request:
author:
type: security
...@@ -29,9 +29,9 @@ module Audit ...@@ -29,9 +29,9 @@ module Audit
end end
def action_text def action_text
action = @details.slice(*ACTIONS) action_name, action_info = @details.slice(*ACTIONS).first
case action.each_key.first case action_name
when :add when :add
"Added #{target_name}#{@details[:as] ? " as #{@details[:as]}" : ''}" "Added #{target_name}#{@details[:as] ? " as #{@details[:as]}" : ''}"
when :remove when :remove
...@@ -45,7 +45,7 @@ module Audit ...@@ -45,7 +45,7 @@ module Audit
"Updated ref #{target_ref} from #{from_sha} to #{to_sha}" "Updated ref #{target_ref} from #{from_sha} to #{to_sha}"
when :custom_message when :custom_message
detail_value action_info
else else
text_for_change(target_name) text_for_change(target_name)
end end
......
...@@ -36,6 +36,21 @@ describe 'Admin::AuditLogs', :js do ...@@ -36,6 +36,21 @@ describe 'Admin::AuditLogs', :js do
expect(page).to have_link('Audit Log', href: admin_audit_logs_path) expect(page).to have_link('Audit Log', href: admin_audit_logs_path)
end end
describe 'release created events' do
let(:project) { create(:project) }
let(:release) { create(:release, project: project, tag: 'v0.1', author: user) }
before do
EE::AuditEvents::ReleaseCreatedAuditEventService.new(user, project, '127.0.0.1', release).security_event
end
it 'shows the related audit event' do
visit admin_audit_logs_path
expect(page).to have_content('Created Release')
end
end
describe 'user events' do describe 'user events' do
before do before do
AuditEventService.new(user, user, with: :ldap) AuditEventService.new(user, user, with: :ldap)
......
...@@ -89,7 +89,6 @@ RSpec.shared_examples 'logs the release audit event' do ...@@ -89,7 +89,6 @@ RSpec.shared_examples 'logs the release audit event' do
expect(logger).to receive(:info).with(author_id: user.id, expect(logger).to receive(:info).with(author_id: user.id,
entity_id: entity.id, entity_id: entity.id,
entity_type: entity_type, entity_type: entity_type,
action: :custom,
ip_address: ip_address, ip_address: ip_address,
custom_message: custom_message, custom_message: custom_message,
target_details: target_details, target_details: target_details,
...@@ -102,7 +101,6 @@ RSpec.shared_examples 'logs the release audit event' do ...@@ -102,7 +101,6 @@ RSpec.shared_examples 'logs the release audit event' do
expect(security_event.details).to eq(custom_message: custom_message, expect(security_event.details).to eq(custom_message: custom_message,
ip_address: ip_address, ip_address: ip_address,
action: :custom,
target_details: target_details, target_details: target_details,
target_id: target_id, target_id: target_id,
target_type: target_type) target_type: target_type)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment