tuwunel_api/client/admin/users/
get_details.rs1use axum::extract::State;
2use synapse_admin_api::users::get_details::v2 as get_details;
3use tuwunel_core::{Err, Result};
4
5use super::user_details;
6use crate::{Ruma, client::admin::require_admin};
7
8pub(crate) async fn admin_get_details_route(
10 State(services): State<crate::State>,
11 body: Ruma<get_details::Request>,
12) -> Result<get_details::Response> {
13 require_admin(&services, body.sender_user()).await?;
14
15 if !services.globals.user_is_local(&body.user_id) {
16 return Err!(Request(InvalidParam("Can only look up local users")));
17 }
18
19 if !services.users.exists(&body.user_id).await {
20 return Err!(Request(NotFound("User not found")));
21 }
22
23 let details = user_details(services, &body.user_id).await;
24
25 Ok(get_details::Response::new(details))
26}