windmill_api/models/
global_user_info.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct GlobalUserInfo {
16 #[serde(rename = "email")]
17 pub email: String,
18 #[serde(rename = "login_type")]
19 pub login_type: LoginType,
20 #[serde(rename = "super_admin")]
21 pub super_admin: bool,
22 #[serde(rename = "devops", skip_serializing_if = "Option::is_none")]
23 pub devops: Option<bool>,
24 #[serde(rename = "verified")]
25 pub verified: bool,
26 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
27 pub name: Option<String>,
28 #[serde(rename = "company", skip_serializing_if = "Option::is_none")]
29 pub company: Option<String>,
30 #[serde(rename = "username", skip_serializing_if = "Option::is_none")]
31 pub username: Option<String>,
32 #[serde(rename = "operator_only", skip_serializing_if = "Option::is_none")]
33 pub operator_only: Option<bool>,
34 #[serde(rename = "first_time_user")]
35 pub first_time_user: bool,
36 #[serde(rename = "role_source")]
37 pub role_source: RoleSource,
38 #[serde(rename = "disabled")]
39 pub disabled: bool,
40 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
41 pub workspace_id: Option<String>,
42}
43
44impl GlobalUserInfo {
45 pub fn new(email: String, login_type: LoginType, super_admin: bool, verified: bool, first_time_user: bool, role_source: RoleSource, disabled: bool) -> GlobalUserInfo {
46 GlobalUserInfo {
47 email,
48 login_type,
49 super_admin,
50 devops: None,
51 verified,
52 name: None,
53 company: None,
54 username: None,
55 operator_only: None,
56 first_time_user,
57 role_source,
58 disabled,
59 workspace_id: None,
60 }
61 }
62}
63#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
65pub enum LoginType {
66 #[serde(rename = "password")]
67 Password,
68 #[serde(rename = "github")]
69 Github,
70 #[serde(rename = "service_account")]
71 ServiceAccount,
72}
73
74impl Default for LoginType {
75 fn default() -> LoginType {
76 Self::Password
77 }
78}
79#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
81pub enum RoleSource {
82 #[serde(rename = "manual")]
83 Manual,
84 #[serde(rename = "instance_group")]
85 InstanceGroup,
86 #[serde(rename = "service_account")]
87 ServiceAccount,
88}
89
90impl Default for RoleSource {
91 fn default() -> RoleSource {
92 Self::Manual
93 }
94}
95