From 01490f572358a9ea81e2cb3ff29bfa57f3321ee7 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Mon, 24 Feb 2025 22:17:48 +0000 Subject: [PATCH] feat: add company information to email footers --- crates/core/config/src/lib.rs | 10 +- crates/core/database/src/drivers/mod.rs | 64 +- crates/core/database/templates/deletion.html | 527 +++------------- .../database/templates/deletion.original.html | 8 + crates/core/database/templates/deletion.txt | 7 + .../templates/deletion.whitelabel.txt | 9 + .../templates/policy-change.original.html | 53 ++ crates/core/database/templates/reset.html | 524 +++------------- .../database/templates/reset.original.html | 8 + crates/core/database/templates/reset.txt | 7 + .../database/templates/reset.whitelabel.txt | 9 + .../core/database/templates/suspension.html | 587 +++--------------- .../templates/suspension.original.html | 8 + crates/core/database/templates/suspension.txt | 7 + .../templates/suspension.whitelabel.txt | 8 + crates/core/database/templates/verify.html | 524 +++------------- .../database/templates/verify.original.html | 8 + crates/core/database/templates/verify.txt | 7 + .../database/templates/verify.whitelabel.txt | 10 + 19 files changed, 502 insertions(+), 1883 deletions(-) create mode 100644 crates/core/database/templates/deletion.whitelabel.txt create mode 100644 crates/core/database/templates/policy-change.original.html create mode 100644 crates/core/database/templates/reset.whitelabel.txt create mode 100644 crates/core/database/templates/suspension.whitelabel.txt create mode 100644 crates/core/database/templates/verify.whitelabel.txt diff --git a/crates/core/config/src/lib.rs b/crates/core/config/src/lib.rs index 9bffd5265..c2e35bd76 100644 --- a/crates/core/config/src/lib.rs +++ b/crates/core/config/src/lib.rs @@ -337,6 +337,7 @@ pub struct Settings { pub files: Files, pub features: Features, pub sentry: Sentry, + pub production: bool, } impl Settings { @@ -364,7 +365,14 @@ pub async fn read() -> Config { #[cached(time = 30)] pub async fn config() -> Settings { - read().await.try_deserialize::().unwrap() + let mut config = read().await.try_deserialize::().unwrap(); + + // auto-detect production nodes + if config.hosts.api.contains("https") && config.hosts.api.contains("revolt.chat") { + config.production = true; + } + + config } /// Configure logging and common Rust variables diff --git a/crates/core/database/src/drivers/mod.rs b/crates/core/database/src/drivers/mod.rs index 7162777e9..11fd58220 100644 --- a/crates/core/database/src/drivers/mod.rs +++ b/crates/core/database/src/drivers/mod.rs @@ -120,26 +120,50 @@ impl Database { use_tls: config.api.smtp.use_tls, }, expiry: Default::default(), - templates: Templates { - verify: Template { - title: "Verify your Revolt account.".into(), - text: include_str!("../../templates/verify.txt").into(), - url: format!("{}/login/verify/", config.hosts.app), - html: Some(include_str!("../../templates/verify.html").into()), - }, - reset: Template { - title: "Reset your Revolt password.".into(), - text: include_str!("../../templates/reset.txt").into(), - url: format!("{}/login/reset/", config.hosts.app), - html: Some(include_str!("../../templates/reset.html").into()), - }, - deletion: Template { - title: "Confirm account deletion.".into(), - text: include_str!("../../templates/deletion.txt").into(), - url: format!("{}/delete/", config.hosts.app), - html: Some(include_str!("../../templates/deletion.html").into()), - }, - welcome: None, + templates: if config.production { + Templates { + verify: Template { + title: "Verify your Revolt account.".into(), + text: include_str!("../../templates/verify.txt").into(), + url: format!("{}/login/verify/", config.hosts.app), + html: Some(include_str!("../../templates/verify.html").into()), + }, + reset: Template { + title: "Reset your Revolt password.".into(), + text: include_str!("../../templates/reset.txt").into(), + url: format!("{}/login/reset/", config.hosts.app), + html: Some(include_str!("../../templates/reset.html").into()), + }, + deletion: Template { + title: "Confirm account deletion.".into(), + text: include_str!("../../templates/deletion.txt").into(), + url: format!("{}/delete/", config.hosts.app), + html: Some(include_str!("../../templates/deletion.html").into()), + }, + welcome: None, + } + } else { + Templates { + verify: Template { + title: "Verify your account.".into(), + text: include_str!("../../templates/verify.whitelabel.txt").into(), + url: format!("{}/login/verify/", config.hosts.app), + html: None, + }, + reset: Template { + title: "Reset your password.".into(), + text: include_str!("../../templates/reset.whitelabel.txt").into(), + url: format!("{}/login/reset/", config.hosts.app), + html: None, + }, + deletion: Template { + title: "Confirm account deletion.".into(), + text: include_str!("../../templates/deletion.whitelabel.txt").into(), + url: format!("{}/delete/", config.hosts.app), + html: None, + }, + welcome: None, + } }, } } else { diff --git a/crates/core/database/templates/deletion.html b/crates/core/database/templates/deletion.html index ef19ee40f..d25138838 100644 --- a/crates/core/database/templates/deletion.html +++ b/crates/core/database/templates/deletion.html @@ -1,464 +1,93 @@ - - - - - - + + + + + - - + + -