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}
37
38impl GlobalUserInfo {
39 pub fn new(email: String, login_type: LoginType, super_admin: bool, verified: bool, first_time_user: bool) -> GlobalUserInfo {
40 GlobalUserInfo {
41 email,
42 login_type,
43 super_admin,
44 devops: None,
45 verified,
46 name: None,
47 company: None,
48 username: None,
49 operator_only: None,
50 first_time_user,
51 }
52 }
53}
54#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
56pub enum LoginType {
57 #[serde(rename = "password")]
58 Password,
59 #[serde(rename = "github")]
60 Github,
61}
62
63impl Default for LoginType {
64 fn default() -> LoginType {
65 Self::Password
66 }
67}
68