authentik_client/models/
user.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct User {
17 #[serde(rename = "pk")]
18 pub pk: i32,
19 #[serde(rename = "username")]
20 pub username: String,
21 #[serde(rename = "name")]
23 pub name: String,
24 #[serde(rename = "is_active", skip_serializing_if = "Option::is_none")]
26 pub is_active: Option<bool>,
27 #[serde(
28 rename = "last_login",
29 default,
30 with = "::serde_with::rust::double_option",
31 skip_serializing_if = "Option::is_none"
32 )]
33 pub last_login: Option<Option<String>>,
34 #[serde(rename = "date_joined")]
35 pub date_joined: String,
36 #[serde(rename = "is_superuser")]
37 pub is_superuser: bool,
38 #[serde(rename = "groups", skip_serializing_if = "Option::is_none")]
39 pub groups: Option<Vec<uuid::Uuid>>,
40 #[serde(rename = "groups_obj", deserialize_with = "Option::deserialize")]
41 pub groups_obj: Option<Vec<models::PartialGroup>>,
42 #[serde(rename = "roles", skip_serializing_if = "Option::is_none")]
43 pub roles: Option<Vec<uuid::Uuid>>,
44 #[serde(rename = "roles_obj", deserialize_with = "Option::deserialize")]
45 pub roles_obj: Option<Vec<models::Role>>,
46 #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
47 pub email: Option<String>,
48 #[serde(rename = "avatar")]
50 pub avatar: String,
51 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
52 pub attributes: Option<std::collections::HashMap<String, serde_json::Value>>,
53 #[serde(rename = "uid")]
54 pub uid: String,
55 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
56 pub path: Option<String>,
57 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
58 pub r#type: Option<models::UserTypeEnum>,
59 #[serde(rename = "uuid")]
60 pub uuid: uuid::Uuid,
61 #[serde(rename = "password_change_date")]
62 pub password_change_date: String,
63 #[serde(rename = "last_updated")]
64 pub last_updated: String,
65}
66
67impl User {
68 pub fn new(
70 pk: i32,
71 username: String,
72 name: String,
73 date_joined: String,
74 is_superuser: bool,
75 groups_obj: Option<Vec<models::PartialGroup>>,
76 roles_obj: Option<Vec<models::Role>>,
77 avatar: String,
78 uid: String,
79 uuid: uuid::Uuid,
80 password_change_date: String,
81 last_updated: String,
82 ) -> User {
83 User {
84 pk,
85 username,
86 name,
87 is_active: None,
88 last_login: None,
89 date_joined,
90 is_superuser,
91 groups: None,
92 groups_obj,
93 roles: None,
94 roles_obj,
95 email: None,
96 avatar,
97 attributes: None,
98 uid,
99 path: None,
100 r#type: None,
101 uuid,
102 password_change_date,
103 last_updated,
104 }
105 }
106}