45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
use std::time::Duration;
|
|
|
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
|
pub struct SizeConstraint {
|
|
min: usize,
|
|
max: usize,
|
|
}
|
|
|
|
impl SizeConstraint {
|
|
pub fn new(min: usize, max: usize) -> Self {
|
|
Self { min, max }
|
|
}
|
|
|
|
pub fn validate(&self, val: &str) -> bool {
|
|
let len = val.trim().len();
|
|
len >= self.min && len <= self.max
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Clone, serde::Serialize)]
|
|
pub struct StaticConstraints {
|
|
pub mail_len: SizeConstraint,
|
|
pub user_name_len: SizeConstraint,
|
|
pub password_len: SizeConstraint,
|
|
}
|
|
|
|
impl Default for StaticConstraints {
|
|
fn default() -> Self {
|
|
Self {
|
|
mail_len: SizeConstraint::new(5, 255),
|
|
user_name_len: SizeConstraint::new(3, 30),
|
|
password_len: SizeConstraint::new(8, 255),
|
|
}
|
|
}
|
|
}
|
|
|
|
/// Password reset token duration
|
|
pub const PASSWORD_RESET_TOKEN_DURATION: Duration = Duration::from_secs(3600 * 24);
|
|
|
|
/// Account deletion token duration
|
|
pub const ACCOUNT_DELETE_TOKEN_DURATION: Duration = Duration::from_secs(3600 * 12);
|
|
|
|
/// OpenID state duration
|
|
pub const OPEN_ID_STATE_DURATION: Duration = Duration::from_secs(3600);
|