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 = "is_workspace_admin", skip_serializing_if = "Option::is_none")]
36 pub is_workspace_admin: Option<bool>,
37 #[serde(rename = "first_time_user")]
38 pub first_time_user: bool,
39 #[serde(rename = "role_source")]
40 pub role_source: RoleSource,
41 #[serde(rename = "disabled")]
42 pub disabled: bool,
43 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
44 pub workspace_id: Option<String>,
45}
46
47impl GlobalUserInfo {
48 pub fn new(email: String, login_type: LoginType, super_admin: bool, verified: bool, first_time_user: bool, role_source: RoleSource, disabled: bool) -> GlobalUserInfo {
49 GlobalUserInfo {
50 email,
51 login_type,
52 super_admin,
53 devops: None,
54 verified,
55 name: None,
56 company: None,
57 username: None,
58 operator_only: None,
59 is_workspace_admin: None,
60 first_time_user,
61 role_source,
62 disabled,
63 workspace_id: None,
64 }
65 }
66}
67#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
69pub enum LoginType {
70 #[serde(rename = "password")]
71 Password,
72 #[serde(rename = "github")]
73 Github,
74 #[serde(rename = "service_account")]
75 ServiceAccount,
76}
77
78impl Default for LoginType {
79 fn default() -> LoginType {
80 Self::Password
81 }
82}
83#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
85pub enum RoleSource {
86 #[serde(rename = "manual")]
87 Manual,
88 #[serde(rename = "instance_group")]
89 InstanceGroup,
90 #[serde(rename = "service_account")]
91 ServiceAccount,
92}
93
94impl Default for RoleSource {
95 fn default() -> RoleSource {
96 Self::Manual
97 }
98}
99