feat: add auditlogs for account model (#7511)
This commit is contained in:
@@ -30,6 +30,7 @@ const translationKeys = {
|
|||||||
'accountuser:create': `AUDIT_LOGS.ACCOUNT_USER.ADD`,
|
'accountuser:create': `AUDIT_LOGS.ACCOUNT_USER.ADD`,
|
||||||
'accountuser:update:self': `AUDIT_LOGS.ACCOUNT_USER.EDIT.SELF`,
|
'accountuser:update:self': `AUDIT_LOGS.ACCOUNT_USER.EDIT.SELF`,
|
||||||
'accountuser:update:other': `AUDIT_LOGS.ACCOUNT_USER.EDIT.OTHER`,
|
'accountuser:update:other': `AUDIT_LOGS.ACCOUNT_USER.EDIT.OTHER`,
|
||||||
|
'account:update': `AUDIT_LOGS.ACCOUNT.EDIT`,
|
||||||
};
|
};
|
||||||
|
|
||||||
function extractAttrChange(attrChange) {
|
function extractAttrChange(attrChange) {
|
||||||
|
|||||||
@@ -55,6 +55,9 @@
|
|||||||
"ADD": "%{agentName} created a new macro (#%{id})",
|
"ADD": "%{agentName} created a new macro (#%{id})",
|
||||||
"EDIT": "%{agentName} updated a macro (#%{id})",
|
"EDIT": "%{agentName} updated a macro (#%{id})",
|
||||||
"DELETE": "%{agentName} deleted a macro (#%{id})"
|
"DELETE": "%{agentName} deleted a macro (#%{id})"
|
||||||
|
},
|
||||||
|
"ACCOUNT": {
|
||||||
|
"EDIT": "%{agentName} updated the account configuration (#%{id})"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ module Enterprise::Audit::Account
|
|||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
included do
|
included do
|
||||||
|
audited except: :updated_at, on: [:update]
|
||||||
has_associated_audits
|
has_associated_audits
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,7 +5,11 @@ class Enterprise::AuditLog < Audited::Audit
|
|||||||
|
|
||||||
def log_additional_information
|
def log_additional_information
|
||||||
# rubocop:disable Rails/SkipsModelValidations
|
# rubocop:disable Rails/SkipsModelValidations
|
||||||
update_columns(username: user&.email)
|
if auditable_type == 'Account' && auditable_id.present?
|
||||||
|
update_columns(associated_type: auditable_type, associated_id: auditable_id, username: user&.email)
|
||||||
|
else
|
||||||
|
update_columns(username: user&.email)
|
||||||
|
end
|
||||||
# rubocop:enable Rails/SkipsModelValidations
|
# rubocop:enable Rails/SkipsModelValidations
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -47,13 +47,14 @@ RSpec.describe 'Enterprise Audit API', type: :request do
|
|||||||
|
|
||||||
expect(response).to have_http_status(:success)
|
expect(response).to have_http_status(:success)
|
||||||
json_response = JSON.parse(response.body)
|
json_response = JSON.parse(response.body)
|
||||||
expect(json_response['audit_logs'][0]['auditable_type']).to eql('Inbox')
|
expect(json_response['audit_logs'][1]['auditable_type']).to eql('Inbox')
|
||||||
expect(json_response['audit_logs'][0]['action']).to eql('create')
|
expect(json_response['audit_logs'][1]['action']).to eql('create')
|
||||||
expect(json_response['audit_logs'][0]['audited_changes']['name']).to eql(inbox.name)
|
expect(json_response['audit_logs'][1]['audited_changes']['name']).to eql(inbox.name)
|
||||||
expect(json_response['audit_logs'][0]['associated_id']).to eql(account.id)
|
expect(json_response['audit_logs'][1]['associated_id']).to eql(account.id)
|
||||||
expect(json_response['current_page']).to be(1)
|
expect(json_response['current_page']).to be(1)
|
||||||
# contains audit log for account user as well
|
# contains audit log for account user as well
|
||||||
expect(json_response['total_entries']).to be(2)
|
# contains audit logs for account update(enable audit logs)
|
||||||
|
expect(json_response['total_entries']).to be(3)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -33,6 +33,11 @@ RSpec.describe Account do
|
|||||||
# checking whether associated_audits method is present
|
# checking whether associated_audits method is present
|
||||||
expect(account.associated_audits.present?).to be false
|
expect(account.associated_audits.present?).to be false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'creates audit logs when account is updated' do
|
||||||
|
account.update(name: 'New Name')
|
||||||
|
expect(Audited::Audit.where(auditable_type: 'Account', action: 'update').count).to eq 1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns max limits from global config when enterprise version' do
|
it 'returns max limits from global config when enterprise version' do
|
||||||
|
|||||||
Reference in New Issue
Block a user