1 Commits

Author SHA1 Message Date
3a18d92419 Update Rust crate validator to 0.20.0
Some checks failed
ci/woodpecker/pr/lint Pipeline failed
ci/woodpecker/pr/audit unknown status
2025-07-14 00:01:51 +00:00
2 changed files with 8 additions and 6 deletions

View File

@@ -31,7 +31,7 @@ validator = { version = "0.20.0", features = ["derive"] }
# Http client
reqwest = "0.12.0"
# Password strength estimation
zxcvbn = { version = "3.0.0", features = ["ser"] }
zxcvbn = "2.2.2"
# Image processing/conversion
image = "0.25.1"
# Get the application version

View File

@@ -4,7 +4,7 @@ use const_format::formatcp;
use dioxus::prelude::*;
use tracing::{debug, error, warn};
use validator::{Validate, ValidateArgs, ValidateEmail, ValidationError, ValidationErrors};
use zxcvbn::{zxcvbn, Score};
use zxcvbn::zxcvbn;
use crate::{
domain::model::session::Session,
@@ -348,14 +348,14 @@ fn validate_id(id: &Option<String>, process: &Process) -> Result<(), ValidationE
}
struct PasswordValidationResult {
score: Score,
score: u8,
rating: f64, // 0 <= rating <= 1
suggestions: Vec<String>,
}
impl PasswordValidationResult {
pub fn new() -> Self {
PasswordValidationResult {
score: Score::Zero,
score: 0,
rating: 0.0,
suggestions: Vec::<String>::new(),
}
@@ -366,7 +366,9 @@ fn compute_password_score(
password: &str,
with_suggestions: Option<bool>,
) -> Option<PasswordValidationResult> {
let estimate = zxcvbn(password, &[]);
let Ok(estimate) = zxcvbn(password, &[]) else {
return None;
};
let mut result = PasswordValidationResult::new();
result.score = estimate.score();
@@ -394,7 +396,7 @@ fn validate_password(password: &Option<String>, process: &Process) -> Result<(),
if let Some(password) = password {
if let Some(result) = compute_password_score(password, Some(true)) {
// TODO: To configuration?
if [Score::Zero, Score::One, Score::Two].contains(&result.score) {
if result.score <= 2 {
let mut err = ValidationError::new(TOO_WEAK_PASSWORD_ERROR_NAME);
err.add_param(Cow::from("score"), &result.score);
err.add_param(Cow::from("rating"), &result.rating);