vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

commit ed24d51d3e30c10e2ef0890ffb43a9838adf3190
parent 870f0d0932233df402101dc5fae14ffa96930846
Author: Stefan Melmuk <stefan.melmuk@gmail.com>
Date:   Wed, 26 Oct 2022 13:02:05 +0200

validate cron expressions on startup

Diffstat:
Msrc/config.rs | 21+++++++++++++++++++++
1 file changed, 21 insertions(+), 0 deletions(-)

diff --git a/src/config.rs b/src/config.rs @@ -1,6 +1,7 @@ use std::process::exit; use std::sync::RwLock; +use job_scheduler_ng::Schedule; use once_cell::sync::Lazy; use reqwest::Url; @@ -737,6 +738,26 @@ fn validate_config(cfg: &ConfigItems) -> Result<(), Error> { err!("`INVITATION_EXPIRATION_HOURS` has a minimum duration of 1 hour") } + if !cfg.send_purge_schedule.is_empty() && cfg.send_purge_schedule.parse::<Schedule>().is_err() { + err!("`SEND_PURGE_SCHEDULE` is not a valid cron expression") + } + if !cfg.trash_purge_schedule.is_empty() && cfg.trash_purge_schedule.parse::<Schedule>().is_err() { + err!("`TRASH_PURGE_SCHEDULE` is not a valid cron expression") + } + if !cfg.incomplete_2fa_schedule.is_empty() && cfg.incomplete_2fa_schedule.parse::<Schedule>().is_err() { + err!("`INCOMPLETE_2FA_SCHEDULE` is not a valid cron expression") + } + if !cfg.emergency_notification_reminder_schedule.is_empty() + && cfg.emergency_notification_reminder_schedule.parse::<Schedule>().is_err() + { + err!("`EMERGENCY_NOTIFICATION_REMINDER_SCHEDULE` is not a valid cron expression") + } + if !cfg.emergency_request_timeout_schedule.is_empty() + && cfg.emergency_request_timeout_schedule.parse::<Schedule>().is_err() + { + err!("`EMERGENCY_REQUEST_TIMEOUT_SCHEDULE` is not a valid cron expression") + } + Ok(()) }