mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 09:07:09 +08:00
feat(payment_link): add provision for secured payment links (#5357)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com> Co-authored-by: Sanchith Hegde <22217505+SanchithHegde@users.noreply.github.com>
This commit is contained in:
@ -1,6 +1,9 @@
|
||||
//! Custom validations for some shared types.
|
||||
|
||||
use std::collections::HashSet;
|
||||
|
||||
use error_stack::report;
|
||||
use globset::Glob;
|
||||
use once_cell::sync::Lazy;
|
||||
use regex::Regex;
|
||||
#[cfg(feature = "logs")]
|
||||
@ -57,6 +60,27 @@ pub fn validate_email(email: &str) -> CustomResult<(), ValidationError> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Checks whether a given domain matches against a list of valid domain glob patterns
|
||||
pub fn validate_domain_against_allowed_domains(
|
||||
domain: &str,
|
||||
allowed_domains: HashSet<String>,
|
||||
) -> bool {
|
||||
allowed_domains.iter().any(|allowed_domain| {
|
||||
Glob::new(allowed_domain)
|
||||
.map(|glob| glob.compile_matcher().is_match(domain))
|
||||
.map_err(|err| {
|
||||
let err_msg = format!(
|
||||
"Invalid glob pattern for configured allowed_domain [{:?}]! - {:?}",
|
||||
allowed_domain, err
|
||||
);
|
||||
#[cfg(feature = "logs")]
|
||||
logger::error!(err_msg);
|
||||
err_msg
|
||||
})
|
||||
.unwrap_or(false)
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use fake::{faker::internet::en::SafeEmail, Fake};
|
||||
|
||||
Reference in New Issue
Block a user