diff --git a/src/api/admin.rs b/src/api/admin.rs index 97cfdff8..c76f0750 100644 --- a/src/api/admin.rs +++ b/src/api/admin.rs @@ -304,10 +304,6 @@ async fn get_user_or_404(user_id: &UserId, conn: &DbConn) -> ApiResult { } } -async fn get_sso_user(user_id: &UserId, conn: &DbConn) -> Option { - SsoUser::find_by_uuid(user_id, conn).await.and_then(|user_and_sso| user_and_sso.1) -} - #[post("/invite", format = "application/json", data = "")] async fn invite_user(data: Json, _token: AdminToken, conn: DbConn) -> JsonResult { let data: InviteData = data.into_inner(); @@ -400,7 +396,7 @@ async fn get_user_by_mail_json(mail: &str, _token: AdminToken, conn: DbConn) -> #[get("/users/")] async fn get_user_json(user_id: UserId, _token: AdminToken, conn: DbConn) -> JsonResult { let user = get_user_or_404(&user_id, &conn).await?; - let sso_user = get_sso_user(&user_id, &conn).await; + let sso_user = SsoUser::find_by_uuid(&user_id, &conn).await; let user_json = get_users_property(vec![(user, sso_user)], &conn).await[0].clone(); Ok(Json(user_json)) diff --git a/src/db/models/user.rs b/src/db/models/user.rs index c76625e4..1ad806b5 100644 --- a/src/db/models/user.rs +++ b/src/db/models/user.rs @@ -527,13 +527,11 @@ impl SsoUser { }} } - pub async fn find_by_uuid(uuid: &UserId, conn: &DbConn) -> Option<(User, Option)> { + pub async fn find_by_uuid(uuid: &UserId, conn: &DbConn) -> Option { db_run! { conn: { - users::table - .left_join(sso_users::table) - .select(<(User, Option)>::as_select()) - .filter(users::uuid.eq(uuid)) - .first::<(User, Option)>(conn) + sso_users::table + .filter(sso_users::user_uuid.eq(uuid)) + .first::(conn) .ok() }} }