kanidmd_lib/idm/
audit.rs

1use crate::prelude::*;
2use serde::{Deserialize, Serialize};
3use std::net::IpAddr;
4use time::OffsetDateTime;
5
6#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
7pub enum AuditSource {
8    Internal,
9    Https(IpAddr),
10    Ldaps(IpAddr),
11}
12
13impl From<Source> for AuditSource {
14    fn from(value: Source) -> Self {
15        match value {
16            Source::Internal => AuditSource::Internal,
17            Source::Https(ip) => AuditSource::Https(ip),
18            Source::Ldaps(ip) => AuditSource::Ldaps(ip),
19        }
20    }
21}
22
23#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
24pub enum AuditEvent {
25    AuthenticationDenied {
26        source: AuditSource,
27        uuid: Uuid,
28        spn: String,
29        #[serde(with = "time::serde::timestamp")]
30        time: OffsetDateTime,
31    },
32}