autopulse_service/settings/
auth.rs1use base64::prelude::*;
2use serde::{Deserialize, Serialize};
3
4#[doc(hidden)]
5fn default_username() -> String {
6 "admin".to_string()
7}
8
9#[doc(hidden)]
10fn default_password() -> String {
11 "password".to_string()
12}
13
14#[doc(hidden)]
15const fn default_enabled() -> bool {
16 true
17}
18
19#[derive(Serialize, Deserialize, Clone, Debug)]
20pub struct Auth {
21 #[serde(default = "default_enabled")]
23 #[serde(skip_serializing)]
24 pub enabled: bool,
25 #[serde(default = "default_username")]
27 pub username: String,
28 #[serde(default = "default_password")]
30 pub password: String,
31}
32
33impl Default for Auth {
34 fn default() -> Self {
35 Self {
36 enabled: default_enabled(),
37 username: default_username(),
38 password: default_password(),
39 }
40 }
41}
42
43impl Auth {
44 pub fn to_auth_encoded(&self) -> String {
45 format!(
46 "Basic {}",
47 BASE64_STANDARD.encode(format!("{}:{}", self.username, self.password))
48 )
49 }
50}