From 8e369016dab8d55151920c9e5203fca1efa26f6f Mon Sep 17 00:00:00 2001 From: Valentin Tolmer Date: Wed, 26 May 2021 15:13:17 +0200 Subject: [PATCH] Create admin user by default --- src/domain/sql_backend_handler.rs | 2 +- src/main.rs | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/domain/sql_backend_handler.rs b/src/domain/sql_backend_handler.rs index 232f436..76abdf2 100644 --- a/src/domain/sql_backend_handler.rs +++ b/src/domain/sql_backend_handler.rs @@ -39,7 +39,7 @@ fn passwords_match(encrypted_password: &str, clear_password: &str, pepper: &str) encrypted_password, clear_password.as_bytes(), pepper.as_bytes(), - /*additional_data=*/b"", + /*additional_data=*/ b"", ) .unwrap_or_else(|e| { log::error!("Error checking password: {}", e); diff --git a/src/main.rs b/src/main.rs index 2ac40e7..106473b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,8 @@ #![forbid(unsafe_code)] use crate::{ - domain::{sql_backend_handler::SqlBackendHandler, sql_tables::PoolOptions}, + domain::{ + handler::BackendHandler, sql_backend_handler::SqlBackendHandler, sql_tables::PoolOptions, + }, infra::{configuration::Configuration, db_cleaner::Scheduler}, }; use actix::Actor; @@ -11,6 +13,18 @@ use log::*; mod domain; mod infra; +async fn create_admin_user(handler: &SqlBackendHandler, config: &Configuration) { + handler + .create_user(lldap_model::CreateUserRequest { + user_id: config.ldap_user_dn.clone(), + password: config.ldap_user_pass.clone(), + ..Default::default() + }) + .await + .unwrap_or_else(|e| warn!("Error creating admin user: {}", e)) + // TODO: create admin group, add it to the group +} + async fn run_server(config: Configuration) -> Result<()> { let sql_pool = PoolOptions::new() .max_connections(5) @@ -18,6 +32,7 @@ async fn run_server(config: Configuration) -> Result<()> { .await?; domain::sql_tables::init_table(&sql_pool).await?; let backend_handler = SqlBackendHandler::new(config.clone(), sql_pool.clone()); + create_admin_user(&backend_handler, &config).await; let server_builder = infra::ldap_server::build_ldap_server( &config, backend_handler.clone(),