Skip to main content

wekan_cli/command_result/
users.rs

1mod profile;
2mod tokens;
3use super::UserBoardSummary;
4pub use profile::{
5    UserDialogOptionsDetail, UserProfileDetail, UserProfileNotificationDetail,
6    UserProfileStarredPageDetail, UserWorkspaceNodeDetail,
7};
8use serde::Serialize;
9pub use tokens::{UserTokenCreateSuccess, UserTokenDeleteScope, UserTokenDeleteSuccess};
10
11#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
12pub struct UserDetail {
13    pub passkeys: Option<Vec<crate::client::users::channels::Passkey>>,
14    pub sqrl: Option<crate::client::users::channels::SqrlIdentity>,
15    pub web_push_subscriptions: Option<Vec<crate::client::users::channels::PushSubscription>>,
16    pub ntfy: Option<crate::client::users::channels::NtfySettings>,
17    pub notification_delivery_pending: Option<crate::client::users::channels::PendingNotification>,
18
19    pub notification_delivery_revision: Option<String>,
20    pub feature_preview: Option<bool>,
21    pub inactivity_clock_start: Option<String>,
22    pub login_disabled_reason: Option<String>,
23    pub anonymized: Option<bool>,
24    pub anonymized_at: Option<String>,
25
26    pub profile: Box<UserProfileDetail>,
27    pub created_through_api: Option<bool>,
28    pub heartbeat: Option<String>,
29    pub session_data: Option<UserSessionData>,
30    pub import_usernames: Vec<String>,
31    pub user_id: String,
32    pub username: Option<String>,
33    pub full_name: Option<String>,
34    pub emails: Vec<UserEmail>,
35    pub is_admin: Option<bool>,
36    pub login_disabled: Option<bool>,
37    pub authentication_method: Option<String>,
38    pub created_at: Option<String>,
39    pub modified_at: Option<String>,
40    pub last_connection_date: Option<String>,
41    pub organizations: Vec<UserOrganization>,
42    pub teams: Vec<UserTeam>,
43    pub boards: Vec<UserBoardMembership>,
44}
45
46#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
47pub struct UserEmail {
48    pub address: Option<String>,
49    pub verified: Option<bool>,
50}
51
52#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
53pub struct UserOrganization {
54    pub organization_id: Option<String>,
55    pub display_name: Option<String>,
56    pub is_admin: Option<bool>,
57}
58
59#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
60pub struct UserTeam {
61    pub team_id: Option<String>,
62    pub display_name: Option<String>,
63}
64
65#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
66pub struct UserBoardMembership {
67    pub granted_by: Option<Vec<String>>,
68    pub custom_role_id: Option<String>,
69    pub board_id: String,
70    pub is_active: Option<bool>,
71    pub is_admin: Option<bool>,
72    pub is_no_comments: Option<bool>,
73    pub is_comment_only: Option<bool>,
74    pub is_worker: Option<bool>,
75    pub is_normal_assigned_only: Option<bool>,
76    pub is_comment_assigned_only: Option<bool>,
77    pub is_read_only: Option<bool>,
78    pub is_read_assigned_only: Option<bool>,
79}
80
81#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
82pub struct UserSummary {
83    pub user_id: String,
84    pub username: Option<String>,
85}
86
87#[derive(Debug, Eq, PartialEq, Serialize)]
88pub struct UserListSuccess {
89    pub users: Vec<UserSummary>,
90}
91
92#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
93pub struct UserCard {
94    pub card_id: String,
95    pub title: Option<String>,
96    pub board_id: Option<String>,
97    pub swimlane_id: Option<String>,
98    pub list_id: Option<String>,
99    pub due_at: Option<String>,
100    pub start_at: Option<String>,
101    pub end_at: Option<String>,
102    pub members: Vec<String>,
103    pub assignees: Vec<String>,
104}
105
106#[derive(Debug, Eq, PartialEq, Serialize)]
107pub struct UserCardsSuccess {
108    pub cards: Vec<UserCard>,
109}
110
111#[derive(Debug, Eq, PartialEq, Serialize)]
112pub struct UserBoardsSuccess {
113    pub user_id: String,
114    pub boards: Vec<UserBoardSummary>,
115}
116
117#[derive(Debug, Eq, PartialEq, Serialize)]
118pub struct UserCreateSuccess {
119    pub username: String,
120    pub email: String,
121    pub user_id: String,
122}
123
124#[derive(Debug, Eq, PartialEq, Serialize)]
125pub struct UserOwnershipSuccess {
126    pub from_user_id: String,
127    pub to_user_id: String,
128    pub boards: Vec<UserBoardSummary>,
129}
130
131#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
132#[serde(rename_all = "snake_case")]
133pub enum UserLoginAction {
134    Disabled,
135    Enabled,
136}
137
138#[derive(Debug, Eq, PartialEq, Serialize)]
139pub struct UserLoginChangeSuccess {
140    pub action: UserLoginAction,
141    pub user: UserDetail,
142}
143
144#[derive(Debug, Eq, PartialEq, Serialize)]
145pub struct UserDeleteSuccess {
146    pub user_id: String,
147    pub deleted: bool,
148    pub deleted_current_user: bool,
149    pub credential_stored: bool,
150    pub local_credential_removed: bool,
151}
152
153#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
154pub struct UserSessionData {
155    pub total_hits: Option<serde_json::Number>,
156}