authentik_rust/models/
authenticated_session.rs1use crate::models;
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct AuthenticatedSession {
16 #[serde(rename = "uuid", skip_serializing_if = "Option::is_none")]
17 pub uuid: Option<uuid::Uuid>,
18 #[serde(rename = "current")]
20 pub current: bool,
21 #[serde(rename = "user_agent")]
22 pub user_agent: Box<models::AuthenticatedSessionUserAgent>,
23 #[serde(rename = "geo_ip", deserialize_with = "Option::deserialize")]
24 pub geo_ip: Option<Box<models::AuthenticatedSessionGeoIp>>,
25 #[serde(rename = "asn", deserialize_with = "Option::deserialize")]
26 pub asn: Option<Box<models::AuthenticatedSessionAsn>>,
27 #[serde(rename = "user")]
28 pub user: i32,
29 #[serde(rename = "last_ip")]
30 pub last_ip: String,
31 #[serde(rename = "last_user_agent", skip_serializing_if = "Option::is_none")]
32 pub last_user_agent: Option<String>,
33 #[serde(rename = "last_used")]
34 pub last_used: String,
35 #[serde(rename = "expires", skip_serializing_if = "Option::is_none")]
36 pub expires: Option<String>,
37}
38
39impl AuthenticatedSession {
40 pub fn new(current: bool, user_agent: models::AuthenticatedSessionUserAgent, geo_ip: Option<models::AuthenticatedSessionGeoIp>, asn: Option<models::AuthenticatedSessionAsn>, user: i32, last_ip: String, last_used: String) -> AuthenticatedSession {
42 AuthenticatedSession {
43 uuid: None,
44 current,
45 user_agent: Box::new(user_agent),
46 geo_ip: if let Some(x) = geo_ip {Some(Box::new(x))} else {None},
47 asn: if let Some(x) = asn {Some(Box::new(x))} else {None},
48 user,
49 last_ip,
50 last_user_agent: None,
51 last_used,
52 expires: None,
53 }
54 }
55}
56