use anyhow::Result; pub struct MockAuthDb { users: Vec, } pub struct MockUser { username: String, password_hash: String, } impl MockAuthDb { pub fn new() -> Self { Self { users: vec![ MockUser { username: "warren".to_string(), password_hash: bcrypt::hash("demo123", bcrypt::DEFAULT_COST).unwrap(), }, MockUser { username: "demo".to_string(), password_hash: bcrypt::hash("demo123", bcrypt::DEFAULT_COST).unwrap(), }, ], } } pub fn verify_password(&self, username: &str, password: &str) -> Result { let user = self.users.iter().find(|u| u.username == username); if let Some(user) = user { Ok(bcrypt::verify(password, &user.password_hash)?) } else { Ok(false) } } pub fn get_user_dir(&self, username: &str) -> String { format!("/Users/accusys/momentry/var/sftpgo/data/{}/", username) } }