authentik_rust/models/
user_self.rs

1/*
2 * authentik
3 *
4 * Making authentication simple.
5 *
6 * The version of the OpenAPI document: 2024.2.1
7 * Contact: hello@goauthentik.io
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12
13/// UserSelf : User Serializer for information a user can retrieve about themselves
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct UserSelf {
16    #[serde(rename = "pk")]
17    pub pk: i32,
18    /// Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
19    #[serde(rename = "username")]
20    pub username: String,
21    /// User's display name.
22    #[serde(rename = "name")]
23    pub name: String,
24    /// Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
25    #[serde(rename = "is_active")]
26    pub is_active: bool,
27    #[serde(rename = "is_superuser")]
28    pub is_superuser: bool,
29    #[serde(rename = "groups")]
30    pub groups: Vec<models::UserSelfGroups>,
31    #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
32    pub email: Option<String>,
33    /// User's avatar, either a http/https URL or a data URI
34    #[serde(rename = "avatar")]
35    pub avatar: String,
36    #[serde(rename = "uid")]
37    pub uid: String,
38    /// Get user settings with brand and group settings applied
39    #[serde(rename = "settings")]
40    pub settings: std::collections::HashMap<String, serde_json::Value>,
41    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
42    pub r#type: Option<models::UserTypeEnum>,
43    /// Get all system permissions assigned to the user
44    #[serde(rename = "system_permissions")]
45    pub system_permissions: Vec<String>,
46}
47
48impl UserSelf {
49    /// User Serializer for information a user can retrieve about themselves
50    pub fn new(pk: i32, username: String, name: String, is_active: bool, is_superuser: bool, groups: Vec<models::UserSelfGroups>, avatar: String, uid: String, settings: std::collections::HashMap<String, serde_json::Value>, system_permissions: Vec<String>) -> UserSelf {
51        UserSelf {
52            pk,
53            username,
54            name,
55            is_active,
56            is_superuser,
57            groups,
58            email: None,
59            avatar,
60            uid,
61            settings,
62            r#type: None,
63            system_permissions,
64        }
65    }
66}
67