From 0be7bb847f64367fbc64fbdea2d11684fbcdaa8f Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Sat, 4 Jan 2025 02:31:25 +0100 Subject: Support ldap in auth Non-test auth is now using ldap for account syncing and authentication. Test auth is still using hardcoded users (user and other). But it is now also possible to login as "other". --- server/src/main.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'server/src/main.rs') diff --git a/server/src/main.rs b/server/src/main.rs index 6f66866..596eb5b 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -135,7 +135,7 @@ async fn get_project( projectid: u64, ) -> Result, NotFound<&'static str>> { let users = sqlx::query!( - "SELECT id, username, name, active, default_role, maintainer FROM users JOIN project_users ON project_users.user=users.id WHERE project_users.project=?", + "SELECT id, username, name, dn, default_role, maintainer FROM users JOIN project_users ON project_users.user=users.id WHERE project_users.project=?", projectid) .fetch(&mut ***db) .map_ok(|r| api_model::ProjectUserEntry { @@ -143,7 +143,7 @@ async fn get_project( id: r.id, username: r.username, name: r.name, - active: r.active != 0, + active: r.dn.is_some(), }, default_role: api_model::UserReviewRole::try_from(r.default_role).unwrap(), maintainer: r.maintainer != 0, @@ -440,7 +440,7 @@ async fn reviews( let uw_offset = offset.unwrap_or(0); let uw_limit = limit.unwrap_or(10); let entries = sqlx::query!( - "SELECT reviews.id AS id,title,state,progress,users.id AS user_id,users.username AS username,users.name AS name,users.active AS user_active FROM reviews JOIN users ON users.id=owner WHERE project=? ORDER BY id DESC LIMIT ? OFFSET ?", + "SELECT reviews.id AS id,title,state,progress,users.id AS user_id,users.username AS username,users.name AS name,users.dn AS user_dn FROM reviews JOIN users ON users.id=owner WHERE project=? ORDER BY id DESC LIMIT ? OFFSET ?", projectid, uw_limit, uw_offset) .fetch(&mut **db) .map_ok(|r| api_model::ReviewEntry { @@ -450,7 +450,7 @@ async fn reviews( id: r.user_id, username: r.username, name: r.name, - active: r.user_active != 0, + active: r.user_dn.is_some(), }, state: api_model::ReviewState::try_from(r.state).unwrap(), progress: r.progress, @@ -497,7 +497,7 @@ async fn review( let mut projectid = 0; let mut review = sqlx::query!( - "SELECT reviews.id AS id,project,title,description,state,progress,users.id AS user_id,users.username AS username,users.name AS name,users.active AS user_active FROM reviews JOIN users ON users.id=owner WHERE reviews.id=?", + "SELECT reviews.id AS id,project,title,description,state,progress,users.id AS user_id,users.username AS username,users.name AS name,users.dn AS user_dn FROM reviews JOIN users ON users.id=owner WHERE reviews.id=?", reviewid) .fetch_one(&mut **db) .map_ok(|r| { @@ -511,7 +511,7 @@ async fn review( id: r.user_id, username: r.username, name: r.name, - active: r.user_active != 0, + active: r.user_dn.is_some(), }, users: Vec::new(), state: api_model::ReviewState::try_from(r.state).unwrap(), @@ -522,7 +522,7 @@ async fn review( .await?; let mut users = sqlx::query!( - "SELECT id,username,name,active,project_users.default_role AS role FROM users JOIN project_users ON project_users.user=id WHERE project_users.project=? ORDER BY role,username,id", + "SELECT id,username,name,dn,project_users.default_role AS role FROM users JOIN project_users ON project_users.user=id WHERE project_users.project=? ORDER BY role,username,id", projectid) .fetch(&mut **db) .map_ok(|r| api_model::ReviewUserEntry { @@ -530,7 +530,7 @@ async fn review( id: r.id, username: r.username, name: r.name, - active: r.active != 0, + active: r.dn.is_some(), }, role: api_model::UserReviewRole::try_from(r.role).unwrap(), }) @@ -539,7 +539,7 @@ async fn review( .unwrap(); let override_users = sqlx::query!( - "SELECT id,username,name,active,review_users.role AS role FROM users JOIN review_users ON review_users.user=id WHERE review_users.review=? ORDER BY role,username,id", + "SELECT id,username,name,dn,review_users.role AS role FROM users JOIN review_users ON review_users.user=id WHERE review_users.review=? ORDER BY role,username,id", reviewid) .fetch(&mut **db) .map_ok(|r| api_model::ReviewUserEntry { @@ -547,7 +547,7 @@ async fn review( id: r.id, username: r.username, name: r.name, - active: r.active != 0, + active: r.dn.is_some(), }, role: api_model::UserReviewRole::try_from(r.role).unwrap(), }) @@ -589,7 +589,7 @@ async fn users( let uw_offset = offset.unwrap_or(0); let uw_limit = limit.unwrap_or(10); let entries = sqlx::query!( - "SELECT id,username,name,active FROM users ORDER BY username LIMIT ? OFFSET ?", + "SELECT id,username,name,dn FROM users ORDER BY username LIMIT ? OFFSET ?", uw_limit, uw_offset ) @@ -598,7 +598,7 @@ async fn users( id: r.id, username: r.username, name: r.name, - active: r.active != 0, + active: r.dn.is_some(), }) .try_collect::>() .await -- cgit v1.2.3-70-g09d2