mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
32 lines
850 B
Rust
32 lines
850 B
Rust
|
use log::{info, warn};
|
||
|
use std::collections::HashMap;
|
||
|
|
||
|
pub struct AuthProvider {
|
||
|
accounts: HashMap<String, String>,
|
||
|
}
|
||
|
|
||
|
impl AuthProvider {
|
||
|
pub fn new() -> Self {
|
||
|
AuthProvider {
|
||
|
accounts: HashMap::new(),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
pub fn query(&mut self, username: String, password: String) -> bool {
|
||
|
if let Some(pass) = self.accounts.get(&username) {
|
||
|
if pass != &password {
|
||
|
warn!(
|
||
|
"User '{}' attempted to log in with invalid password '{}'!",
|
||
|
username, password
|
||
|
);
|
||
|
return false;
|
||
|
}
|
||
|
info!("User '{}' successfully authenticated", username);
|
||
|
} else {
|
||
|
info!("Registered new user '{}'", username);
|
||
|
self.accounts.insert(username, password);
|
||
|
}
|
||
|
true
|
||
|
}
|
||
|
}
|