Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/defguard_core/src/appstate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ impl AppState {
/// Sends event to the main event router
///
/// This method is fallible since events are used for communication between services
pub fn send_event(&self, event: ApiEvent) -> Result<(), WebError> {
pub fn emit_event(&self, event: ApiEvent) -> Result<(), WebError> {
Ok(self.event_tx.send(event)?)
}

Expand Down
7 changes: 6 additions & 1 deletion crates/defguard_core/src/db/models/audit_log/metadata.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
use crate::db::{Device, Id, WireguardNetwork};
use crate::db::{Device, Id, MFAMethod, WireguardNetwork};

#[derive(Serialize)]
pub struct MfaLoginMetadata {
pub mfa_method: MFAMethod,
}

#[derive(Serialize)]
pub struct DeviceAddedMetadata {
Expand Down
4 changes: 4 additions & 0 deletions crates/defguard_core/src/db/models/audit_log/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ pub enum AuditModule {
pub enum EventType {
// authentication
UserLogin,
UserLoginFailed,
UserMfaLogin,
UserMfaLoginFailed,
RecoveryCodeUsed,
UserLogout,
// mfa management
MfaDisabled,
Expand Down
12 changes: 6 additions & 6 deletions crates/defguard_core/src/enterprise/handlers/audit_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ pub async fn create_audit_stream(
};
let stream = stream_model.save(&appstate.pool).await?;
info!("User {session_username} created audit stream");
appstate.send_event(ApiEvent {
appstate.emit_event(ApiEvent {
context,
kind: ApiEventType::AuditStreamCreated {
event: ApiEventType::AuditStreamCreated {
stream_id: stream.id,
stream_name: stream.name,
},
Expand Down Expand Up @@ -90,9 +90,9 @@ pub async fn modify_audit_stream(
stream.config = data.stream_config;
stream.save(&appstate.pool).await?;
info!("User {session_username} modified audit stream");
appstate.send_event(ApiEvent {
appstate.emit_event(ApiEvent {
context,
kind: ApiEventType::AuditStreamModified {
event: ApiEventType::AuditStreamModified {
stream_id: stream.id,
stream_name: stream.name,
},
Expand All @@ -119,9 +119,9 @@ pub async fn delete_audit_stream(
let stream_id = stream.id;
let stream_name = stream.name.clone();
stream.delete(&appstate.pool).await?;
appstate.send_event(ApiEvent {
appstate.emit_event(ApiEvent {
context,
kind: ApiEventType::AuditStreamRemoved {
event: ApiEventType::AuditStreamRemoved {
stream_id,
stream_name,
},
Expand Down
12 changes: 10 additions & 2 deletions crates/defguard_core/src/events.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use std::net::IpAddr;

use crate::db::{Device, Id, WireguardNetwork};
use crate::db::{Device, Id, MFAMethod, WireguardNetwork};
use chrono::{NaiveDateTime, Utc};
use ipnetwork::IpNetwork;

Expand Down Expand Up @@ -67,6 +67,14 @@ impl GrpcRequestContext {
#[derive(Debug)]
pub enum ApiEventType {
UserLogin,
UserLoginFailed,
UserMfaLogin {
mfa_method: MFAMethod,
},
UserMfaLoginFailed {
mfa_method: MFAMethod,
},
RecoveryCodeUsed,
UserLogout,
MfaDisabled,
MfaTotpDisabled,
Expand Down Expand Up @@ -141,7 +149,7 @@ pub enum ApiEventType {
#[derive(Debug)]
pub struct ApiEvent {
pub context: ApiRequestContext,
pub kind: ApiEventType,
pub event: ApiEventType,
}

/// Events from gRPC server
Expand Down
Loading