Refactor users management
All checks were successful
continuous-integration/drone/push Build is passing

* Shard `src/data/user.rs` into two different files
  * One for user data structure (same file)
  * One for user manipulation (new file: `user_file_entity.rs`)
* Isolate password hashing and verification
This commit is contained in:
2022-11-19 17:52:35 +01:00
parent 75d894d648
commit 65d334b947
7 changed files with 145 additions and 113 deletions

View File

@ -20,7 +20,7 @@ use basic_oidc::data::app_config::AppConfig;
use basic_oidc::data::client::ClientManager;
use basic_oidc::data::entity_manager::EntityManager;
use basic_oidc::data::jwt_signer::JWTSigner;
use basic_oidc::data::user::{hash_password, User};
use basic_oidc::data::user::User;
use basic_oidc::data::webauthn_manager::WebAuthManager;
use basic_oidc::middlewares::auth_middleware::AuthMiddleware;
@ -51,16 +51,17 @@ async fn main() -> std::io::Result<()> {
log::info!("Create default {} user", DEFAULT_ADMIN_USERNAME);
let default_admin = User {
username: DEFAULT_ADMIN_USERNAME.to_string(),
password: hash_password(DEFAULT_ADMIN_PASSWORD).unwrap(),
need_reset_password: true,
authorized_clients: None,
admin: true,
..Default::default()
};
users
.insert(default_admin)
.insert(default_admin.clone())
.expect("Failed to create initial user!");
// Set default admin password
users.change_user_password(&default_admin.uid, DEFAULT_ADMIN_PASSWORD, true);
}
let users_actor = UsersActor::new(users).start();