Skip to main content

wekan_cli/client/admin/
settings.rs

1use super::present;
2use serde::{Deserialize, Serialize};
3#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
4#[serde(deny_unknown_fields, rename_all = "camelCase")]
5pub struct GlobalSettingsDocument {
6    #[serde(default, deserialize_with = "present")]
7    #[serde(rename = "_id")]
8    pub settings_id: Option<String>,
9    pub disable_registration: Option<bool>,
10    pub disable_forgot_password: Option<bool>,
11    pub product_name: Option<String>,
12    pub display_authentication_method: Option<bool>,
13    #[serde(default, deserialize_with = "present")]
14    pub default_authentication_method: Option<String>,
15    pub spinner_name: Option<String>,
16    pub hide_logo: Option<bool>,
17    pub hide_card_counter_list: Option<bool>,
18    pub hide_board_member_list: Option<bool>,
19    pub custom_login_logo_image_url: Option<String>,
20    pub custom_login_logo_link_url: Option<String>,
21    pub custom_help_link_url: Option<String>,
22    pub text_below_custom_login_logo: Option<String>,
23    pub automatic_linked_url_schemes: Option<String>,
24    pub custom_top_left_corner_logo_image_url: Option<String>,
25    pub custom_top_left_corner_logo_link_url: Option<String>,
26    pub custom_top_left_corner_logo_height: Option<String>,
27    pub oidc_btn_text: Option<String>,
28    pub mail_domain_name: Option<String>,
29    pub legal_notice: Option<String>,
30    pub custom_head_enabled: Option<bool>,
31    pub custom_head_meta_tags: Option<String>,
32    pub custom_head_link_tags: Option<String>,
33    pub custom_manifest_enabled: Option<bool>,
34    pub custom_manifest_content: Option<String>,
35    pub custom_asset_links_enabled: Option<bool>,
36    pub custom_asset_links_content: Option<String>,
37    pub accessibility_page_enabled: Option<bool>,
38    pub accessibility_title: Option<String>,
39    pub accessibility_content: Option<String>,
40    pub support_popup_text: Option<String>,
41    pub support_page_enabled: Option<bool>,
42    pub support_page_public: Option<bool>,
43    pub support_title: Option<String>,
44    pub support_page_text: Option<String>,
45}
46
47#[derive(Clone, Debug, Default, Deserialize, Serialize)]
48#[serde(deny_unknown_fields, rename_all = "camelCase")]
49pub struct UpdateGlobalSettings {
50    #[serde(
51        default,
52        deserialize_with = "present_nullable",
53        skip_serializing_if = "Option::is_none"
54    )]
55    pub disable_registration: Option<Option<bool>>,
56    #[serde(
57        default,
58        deserialize_with = "present_nullable",
59        skip_serializing_if = "Option::is_none"
60    )]
61    pub disable_forgot_password: Option<Option<bool>>,
62    #[serde(
63        default,
64        deserialize_with = "present_nullable",
65        skip_serializing_if = "Option::is_none"
66    )]
67    pub product_name: Option<Option<String>>,
68    #[serde(
69        default,
70        deserialize_with = "present_nullable",
71        skip_serializing_if = "Option::is_none"
72    )]
73    pub display_authentication_method: Option<Option<bool>>,
74    #[serde(
75        default,
76        deserialize_with = "present",
77        skip_serializing_if = "Option::is_none"
78    )]
79    pub default_authentication_method: Option<String>,
80    #[serde(
81        default,
82        deserialize_with = "present_nullable",
83        skip_serializing_if = "Option::is_none"
84    )]
85    pub spinner_name: Option<Option<String>>,
86    #[serde(
87        default,
88        deserialize_with = "present_nullable",
89        skip_serializing_if = "Option::is_none"
90    )]
91    pub hide_logo: Option<Option<bool>>,
92    #[serde(
93        default,
94        deserialize_with = "present_nullable",
95        skip_serializing_if = "Option::is_none"
96    )]
97    pub hide_card_counter_list: Option<Option<bool>>,
98    #[serde(
99        default,
100        deserialize_with = "present_nullable",
101        skip_serializing_if = "Option::is_none"
102    )]
103    pub hide_board_member_list: Option<Option<bool>>,
104    #[serde(
105        default,
106        deserialize_with = "present_nullable",
107        skip_serializing_if = "Option::is_none"
108    )]
109    pub custom_login_logo_image_url: Option<Option<String>>,
110    #[serde(
111        default,
112        deserialize_with = "present_nullable",
113        skip_serializing_if = "Option::is_none"
114    )]
115    pub custom_login_logo_link_url: Option<Option<String>>,
116    #[serde(
117        default,
118        deserialize_with = "present_nullable",
119        skip_serializing_if = "Option::is_none"
120    )]
121    pub custom_help_link_url: Option<Option<String>>,
122    #[serde(
123        default,
124        deserialize_with = "present_nullable",
125        skip_serializing_if = "Option::is_none"
126    )]
127    pub text_below_custom_login_logo: Option<Option<String>>,
128    #[serde(
129        default,
130        deserialize_with = "present_nullable",
131        skip_serializing_if = "Option::is_none"
132    )]
133    pub automatic_linked_url_schemes: Option<Option<String>>,
134    #[serde(
135        default,
136        deserialize_with = "present_nullable",
137        skip_serializing_if = "Option::is_none"
138    )]
139    pub custom_top_left_corner_logo_image_url: Option<Option<String>>,
140    #[serde(
141        default,
142        deserialize_with = "present_nullable",
143        skip_serializing_if = "Option::is_none"
144    )]
145    pub custom_top_left_corner_logo_link_url: Option<Option<String>>,
146    #[serde(
147        default,
148        deserialize_with = "present_nullable",
149        skip_serializing_if = "Option::is_none"
150    )]
151    pub custom_top_left_corner_logo_height: Option<Option<String>>,
152    #[serde(
153        default,
154        deserialize_with = "present_nullable",
155        skip_serializing_if = "Option::is_none"
156    )]
157    pub oidc_btn_text: Option<Option<String>>,
158    #[serde(
159        default,
160        deserialize_with = "present_nullable",
161        skip_serializing_if = "Option::is_none"
162    )]
163    pub mail_domain_name: Option<Option<String>>,
164    #[serde(
165        default,
166        deserialize_with = "present_nullable",
167        skip_serializing_if = "Option::is_none"
168    )]
169    pub legal_notice: Option<Option<String>>,
170    #[serde(
171        default,
172        deserialize_with = "present_nullable",
173        skip_serializing_if = "Option::is_none"
174    )]
175    pub custom_head_enabled: Option<Option<bool>>,
176    #[serde(
177        default,
178        deserialize_with = "present_nullable",
179        skip_serializing_if = "Option::is_none"
180    )]
181    pub custom_head_meta_tags: Option<Option<String>>,
182    #[serde(
183        default,
184        deserialize_with = "present_nullable",
185        skip_serializing_if = "Option::is_none"
186    )]
187    pub custom_head_link_tags: Option<Option<String>>,
188    #[serde(
189        default,
190        deserialize_with = "present_nullable",
191        skip_serializing_if = "Option::is_none"
192    )]
193    pub custom_manifest_enabled: Option<Option<bool>>,
194    #[serde(
195        default,
196        deserialize_with = "present_nullable",
197        skip_serializing_if = "Option::is_none"
198    )]
199    pub custom_manifest_content: Option<Option<String>>,
200    #[serde(
201        default,
202        deserialize_with = "present_nullable",
203        skip_serializing_if = "Option::is_none"
204    )]
205    pub custom_asset_links_enabled: Option<Option<bool>>,
206    #[serde(
207        default,
208        deserialize_with = "present_nullable",
209        skip_serializing_if = "Option::is_none"
210    )]
211    pub custom_asset_links_content: Option<Option<String>>,
212    #[serde(
213        default,
214        deserialize_with = "present_nullable",
215        skip_serializing_if = "Option::is_none"
216    )]
217    pub accessibility_page_enabled: Option<Option<bool>>,
218    #[serde(
219        default,
220        deserialize_with = "present_nullable",
221        skip_serializing_if = "Option::is_none"
222    )]
223    pub accessibility_title: Option<Option<String>>,
224    #[serde(
225        default,
226        deserialize_with = "present_nullable",
227        skip_serializing_if = "Option::is_none"
228    )]
229    pub accessibility_content: Option<Option<String>>,
230    #[serde(
231        default,
232        deserialize_with = "present_nullable",
233        skip_serializing_if = "Option::is_none"
234    )]
235    pub support_popup_text: Option<Option<String>>,
236    #[serde(
237        default,
238        deserialize_with = "present_nullable",
239        skip_serializing_if = "Option::is_none"
240    )]
241    pub support_page_enabled: Option<Option<bool>>,
242    #[serde(
243        default,
244        deserialize_with = "present_nullable",
245        skip_serializing_if = "Option::is_none"
246    )]
247    pub support_page_public: Option<Option<bool>>,
248    #[serde(
249        default,
250        deserialize_with = "present_nullable",
251        skip_serializing_if = "Option::is_none"
252    )]
253    pub support_title: Option<Option<String>>,
254    #[serde(
255        default,
256        deserialize_with = "present_nullable",
257        skip_serializing_if = "Option::is_none"
258    )]
259    pub support_page_text: Option<Option<String>>,
260}
261
262fn present_nullable<'de, D: serde::Deserializer<'de>, T: serde::Deserialize<'de>>(
263    d: D,
264) -> Result<Option<Option<T>>, D::Error> {
265    Option::<T>::deserialize(d).map(Some)
266}