feat: add audit trail for sign_in and sign_out (#7158)

* feat: add audit_trail for sign_in event

* chore: ignore unrelated User model columns for auditing

* chore: fix prepend call for webhook/automation rule

* chore: add spec for sign_in event

* chore: refactor sign_in auditlog method to enterprise namespace

* feat: add sign_out audit trail

* feat: review comments
This commit is contained in:
Vishnu Narayanan
2023-05-25 14:27:30 +05:30
committed by GitHub
parent 88cef88d80
commit 123fc73394
8 changed files with 98 additions and 3 deletions

View File

@@ -0,0 +1,25 @@
module Enterprise::DeviseOverrides::SessionsController
def render_create_success
create_audit_event('sign_in')
super
end
def destroy
create_audit_event('sign_out')
super
end
def create_audit_event(action)
return unless @resource
associated_type = 'Account'
@resource.accounts.each do |account|
@resource.audits.create(
action: action,
user_id: @resource.id,
associated_id: account.id,
associated_type: associated_type
)
end
end
end

View File

@@ -0,0 +1,13 @@
module Enterprise::Audit::User
extend ActiveSupport::Concern
included do
audited only: [
:availability,
:display_name,
:email,
:name
]
audited associated_with: :account
end
end