kanidmd_lib/idm/
delayed.rs
1use crate::prelude::*;
2use crate::value::AuthType;
3use time::OffsetDateTime;
4use uuid::Uuid;
5use webauthn_rs::prelude::AuthenticationResult;
6
7use std::fmt;
8
9#[derive(Debug)]
10pub enum DelayedAction {
11 PwUpgrade(PasswordUpgrade),
12 UnixPwUpgrade(UnixPasswordUpgrade),
13 WebauthnCounterIncrement(WebauthnCounterIncrement),
14 BackupCodeRemoval(BackupCodeRemoval),
15 AuthSessionRecord(AuthSessionRecord),
16}
17
18pub struct PasswordUpgrade {
19 pub target_uuid: Uuid,
20 pub existing_password: String,
21}
22
23impl fmt::Debug for PasswordUpgrade {
24 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
25 f.debug_struct("PasswordUpgrade")
26 .field("target_uuid", &self.target_uuid)
27 .finish()
28 }
29}
30
31pub struct UnixPasswordUpgrade {
32 pub target_uuid: Uuid,
33 pub existing_password: String,
34}
35
36impl fmt::Debug for UnixPasswordUpgrade {
37 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
38 f.debug_struct("UnixPasswordUpgrade")
39 .field("target_uuid", &self.target_uuid)
40 .finish()
41 }
42}
43
44#[derive(Debug)]
45pub struct WebauthnCounterIncrement {
46 pub target_uuid: Uuid,
47 pub auth_result: AuthenticationResult,
48}
49
50#[derive(Debug)]
51pub struct BackupCodeRemoval {
52 pub target_uuid: Uuid,
53 pub code_to_remove: String,
54}
55
56#[derive(Debug)]
57pub struct AuthSessionRecord {
58 pub target_uuid: Uuid,
59 pub session_id: Uuid,
60 pub cred_id: Uuid,
61 pub label: String,
62 pub expiry: Option<OffsetDateTime>,
63 pub issued_at: OffsetDateTime,
64 pub issued_by: IdentityId,
65 pub scope: SessionScope,
66 pub type_: AuthType,
67}