Compare commits

...

2 commits

Author SHA1 Message Date
Ninjdai
af579811a9 feat: option to add a corresponding owner when creating users in CLI 2025-08-05 15:39:49 +02:00
Ninjdai
2cddc4e7a8 configure release profile to reduce binary size 2025-08-05 15:15:44 +02:00
2 changed files with 23 additions and 3 deletions

View file

@ -3,6 +3,12 @@ name = "alexandria"
version = "0.1.0"
edition = "2024"
[profile.release]
opt-level = 'z' # Optimize for size
lto = true # Enable link-time optimization
codegen-units = 1 # Reduce number of codegen units to increase optimizations
strip = true # Strip symbols from binary*
[dependencies]
axum = { version = "0.8.4", features = [ "macros", "ws", "tokio" ] }
axum-extra = { version = "0.10.1", features = ["typed-header"] }

View file

@ -1,11 +1,11 @@
use std::{fmt::Display, sync::Arc};
use argon2::{password_hash::{SaltString}, Argon2, PasswordHasher};
use inquire::{min_length, Confirm, Password, Select, Text};
use inquire::{min_length, prompt_text, Confirm, Password, Select, Text};
use password_hash::rand_core::OsRng;
use sea_orm::{ActiveModelTrait, ActiveValue::{NotSet, Set}, ColumnTrait, DatabaseConnection, EntityTrait, ModelTrait, QueryFilter};
use crate::entities::{prelude::User, user::{self, ActiveModel}};
use crate::entities::{owner, prelude::User, user::{self, ActiveModel}};
#[derive(Debug, Copy, Clone)]
enum Action {
@ -66,7 +66,21 @@ pub async fn manage_users(db: Arc<DatabaseConnection>) {
username: Set(username),
hashed_password: Set(hash_password(password))
};
let _ = new_user.insert(db.as_ref()).await;
let res = new_user.insert(db.as_ref()).await.unwrap();
if Confirm::new("Add an owner corresponding to this user ?").with_default(true).prompt().is_ok_and(|choice| choice==true) {
let first_name = prompt_text("First Name: ").unwrap();
let last_name = prompt_text("Last Name: ").unwrap();
let contact = prompt_text("Contact: ").unwrap();
let new_owner = owner::ActiveModel {
id: NotSet,
user_id: Set(res.id),
first_name: Set(first_name),
last_name: Set(last_name),
contact: Set(contact)
};
let _ = new_owner.insert(db.as_ref()).await.unwrap();
}
}
},
Action::Delete => {