From 0a68de6c24a51e4e221ae5afb43d2cfc6b48dac1 Mon Sep 17 00:00:00 2001 From: Jeremy Lin Date: Thu, 9 Apr 2020 20:55:08 -0700 Subject: [PATCH] Warn on empty `ADMIN_TOKEN` instead of bailing out The admin page will still be disabled. Fixes #849. --- src/api/admin.rs | 2 +- src/config.rs | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/api/admin.rs b/src/api/admin.rs index 7014c43..e987311 100644 --- a/src/api/admin.rs +++ b/src/api/admin.rs @@ -17,7 +17,7 @@ use crate::mail; use crate::CONFIG; pub fn routes() -> Vec { - if CONFIG.admin_token().is_none() && !CONFIG.disable_admin_token() { + if !CONFIG.disable_admin_token() && !CONFIG.is_admin_token_set() { return routes![admin_disabled]; } diff --git a/src/config.rs b/src/config.rs index 0d79b21..7492950 100644 --- a/src/config.rs +++ b/src/config.rs @@ -430,7 +430,8 @@ fn validate_config(cfg: &ConfigItems) -> Result<(), Error> { if let Some(ref token) = cfg.admin_token { if token.trim().is_empty() && !cfg.disable_admin_token { - err!("`ADMIN_TOKEN` is enabled but has an empty value. To enable the admin page without token, use `DISABLE_ADMIN_TOKEN`") + println!("[WARNING] `ADMIN_TOKEN` is enabled but has an empty value, so the admin page will be disabled."); + println!("[WARNING] To enable the admin page without a token, use `DISABLE_ADMIN_TOKEN`."); } } @@ -617,6 +618,13 @@ impl Config { } } + /// Tests whether the admin token is set to a non-empty value. + pub fn is_admin_token_set(&self) -> bool { + let token = self.admin_token(); + + !token.is_none() && !token.unwrap().trim().is_empty() + } + pub fn render_template( &self, name: &str,