authentik_rust/models/
group.rs1use crate::models;
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Group {
16 #[serde(rename = "pk")]
17 pub pk: uuid::Uuid,
18 #[serde(rename = "num_pk")]
19 pub num_pk: i32,
20 #[serde(rename = "name")]
21 pub name: String,
22 #[serde(rename = "is_superuser", skip_serializing_if = "Option::is_none")]
24 pub is_superuser: Option<bool>,
25 #[serde(rename = "parent", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
26 pub parent: Option<Option<uuid::Uuid>>,
27 #[serde(rename = "parent_name", deserialize_with = "Option::deserialize")]
28 pub parent_name: Option<String>,
29 #[serde(rename = "users", skip_serializing_if = "Option::is_none")]
30 pub users: Option<Vec<i32>>,
31 #[serde(rename = "users_obj")]
32 pub users_obj: Vec<models::GroupMember>,
33 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
34 pub attributes: Option<std::collections::HashMap<String, serde_json::Value>>,
35 #[serde(rename = "roles", skip_serializing_if = "Option::is_none")]
36 pub roles: Option<Vec<uuid::Uuid>>,
37 #[serde(rename = "roles_obj")]
38 pub roles_obj: Vec<models::Role>,
39}
40
41impl Group {
42 pub fn new(pk: uuid::Uuid, num_pk: i32, name: String, parent_name: Option<String>, users_obj: Vec<models::GroupMember>, roles_obj: Vec<models::Role>) -> Group {
44 Group {
45 pk,
46 num_pk,
47 name,
48 is_superuser: None,
49 parent: None,
50 parent_name,
51 users: None,
52 users_obj,
53 attributes: None,
54 roles: None,
55 roles_obj,
56 }
57 }
58}
59