From 77c1dec8823743fdd5b1a1090528bb29690fed15 Mon Sep 17 00:00:00 2001 From: Romain Mallard Date: Thu, 8 Jan 2026 17:47:20 +0100 Subject: [PATCH] register user small fix --- db/1.sqlite-shm | Bin 32768 -> 32768 bytes db/auth_copy_2.sqlite-shm | Bin 0 -> 32768 bytes db/auth_copy_2.sqlite-wal | Bin 0 -> 107152 bytes src/utils/auth.rs | 29 ++++++++++++++++++++++++++--- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 db/auth_copy_2.sqlite-shm create mode 100644 db/auth_copy_2.sqlite-wal diff --git a/db/1.sqlite-shm b/db/1.sqlite-shm index 5474019a0bc5da448b77902624c07d6005c1bc3c..dc07540e412ce34b0ec396e1a202ec01e6983e3c 100644 GIT binary patch delta 180 zcmZo@U}|V!s+V}A%K!t63=9HWft<}O3=Dk!rb~}oYPno7a?w4h(eP!W@<+#wIa7*B zRSz>8WbS_?02OCq*t)UtG}C4q<_%7p|G3t%F>hknvN@2sl8JLI!+M5|44WCY0=ZwA KHh&4^(E|W;BRe(# delta 176 zcmZo@U}|V!s+V}A%K!t63=9Grft<}O3=9V(e1ApE`K@-v$VK<0M#GmP$xr7__SIRC zsvc%G$lU)(04mPJuyJGKX{OCF%nO_*7cdKK{^MH5wmFHphKY48!+M5|n-iITGHw16 H$fE}UEuB4C diff --git a/db/auth_copy_2.sqlite-shm b/db/auth_copy_2.sqlite-shm new file mode 100644 index 0000000000000000000000000000000000000000..e184ba970a793bd41d03cb3ab33a5c703a8706f4 GIT binary patch literal 32768 zcmeI*J4!@B5CzckH#*~Q{6F1;iQrNc7vTzY6=Ep322&#w4a`hjfNsK2tA|l!z`#hb z&V{0zrg*$Q3#jg1_oJnsH5D=3%XK~Lq<8!Dc5!v{{BU$|d4G8Ka(X^EJASr{aePzU(0mvX0m3p=CXQO^W$2~b$Mdn{Oto48P{cDbS|O34xjdZN8!qs439PxuSzu z9Zfl{Dd5%w2oR_z(56TW0RjXF)Dl?8w*iK+5nHhnyS1+Fw&ev@$_oIfE6~rkV%B0a nwxf&o5{(cbK!5-N0t5&UAV7cs0RjXF5FkK+009C7{;$9Xu@Nhp literal 0 HcmV?d00001 diff --git a/db/auth_copy_2.sqlite-wal b/db/auth_copy_2.sqlite-wal new file mode 100644 index 0000000000000000000000000000000000000000..ba59f848d606c1e6753e866a734a3b8884f62a3e GIT binary patch literal 107152 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 bool { pub struct RegisterValues{ username: String, password: String, - hotel_id: i32, + #[serde(default)] + hotel_ids: Vec, //-> :Vec!<32>, maybe optionnal ? displayname: String, } @@ -167,10 +168,32 @@ pub async fn register_user ( .map_err(|_| (StatusCode::INTERNAL_SERVER_ERROR, "DB connection error"))?; conn.execute( - "INSERT INTO users (username, password, hotel_id, displayname) VALUES (?1, ?2, ?3, ?4)", - params![payload.username, hashed_password, payload.hotel_id, payload.displayname], + "INSERT INTO users (username, password, displayname) VALUES (?1, ?2, ?3)", + params![payload.username, hashed_password, payload.displayname], ) .map_err(|_| (StatusCode::INTERNAL_SERVER_ERROR, "DB insert error"))?; + + let user_id = conn.last_insert_rowid(); + for hotel_id in payload.hotel_ids { + + // more logic for security here + //FIXME: needs to be the display name in the DB, scheme is currently wrong + + let hotel_name = conn.execute( + "SELECT hotel_name + FROM hotels + WHERE id = ?1 ", + params![hotel_id], + ).map_err(|_| (StatusCode::INTERNAL_SERVER_ERROR, "DB insert error"))?; + + conn.execute( + "INSERT INTO hotel_user_link (user_id, hotel_id, username, hotel_name) VALUES (?1, ?2, ?3, ?4)", + params![user_id, hotel_id, payload.username, hotel_name], + ) + .map_err(|_| (StatusCode::INTERNAL_SERVER_ERROR, "DB insert error"))?; + + } + Ok((StatusCode::CREATED, "User registered successfully")) }