From 28e13f0192fa41868aebada83efdb7c1fc004bd0 Mon Sep 17 00:00:00 2001 From: Samuel Lorch Date: Sun, 28 Jul 2024 21:22:08 +0200 Subject: [PATCH] fix name regex --- src/config_manager.rs | 1 + src/validation/mod.rs | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/config_manager.rs b/src/config_manager.rs index 685fae9..b4f6a8d 100644 --- a/src/config_manager.rs +++ b/src/config_manager.rs @@ -178,6 +178,7 @@ fn read_file_to_config(path: &str) -> Result { if conf.config_version != 1 { return Err(ConfigError::UnsupportedVersionError); } + conf.validate()?; Ok(conf) } diff --git a/src/validation/mod.rs b/src/validation/mod.rs index f711c4a..7560e0a 100644 --- a/src/validation/mod.rs +++ b/src/validation/mod.rs @@ -3,14 +3,16 @@ use { regex::Regex, }; +const REGEX_NAME: &str = r"^[a-zA-Z0-9._/-]*$"; + pub fn validate_name(value: &str, _: &Config) -> garde::Result { if value.len() > 32 { return Err(garde::Error::new("name is longer than 32")); } - static RE: Lazy = Lazy::new(|| Regex::new(r"/^[0-9A-Za-z_-]*$/g").unwrap()); + static RE: Lazy = Lazy::new(|| Regex::new(REGEX_NAME).unwrap()); if !RE.is_match(value) { - return Err(garde::Error::new("name must only contain 0-9A-Za-z_-")); + return Err(garde::Error::new("name must only contain a-zA-Z0-9._/-")); } Ok(()) }