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}
39
40impl GlobalUserInfo {
41 pub fn new(email: String, login_type: LoginType, super_admin: bool, verified: bool, first_time_user: bool, role_source: RoleSource) -> GlobalUserInfo {
42 GlobalUserInfo {
43 email,
44 login_type,
45 super_admin,
46 devops: None,
47 verified,
48 name: None,
49 company: None,
50 username: None,
51 operator_only: None,
52 first_time_user,
53 role_source,
54 }
55 }
56}
57#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
59pub enum LoginType {
60 #[serde(rename = "password")]
61 Password,
62 #[serde(rename = "github")]
63 Github,
64}
65
66impl Default for LoginType {
67 fn default() -> LoginType {
68 Self::Password
69 }
70}
71#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
73pub enum RoleSource {
74 #[serde(rename = "manual")]
75 Manual,
76 #[serde(rename = "instance_group")]
77 InstanceGroup,
78}
79
80impl Default for RoleSource {
81 fn default() -> RoleSource {
82 Self::Manual
83 }
84}
85