Skip to main content

tuwunel_api/client/admin/users/
is_user_admin.rs

1use axum::extract::State;
2use synapse_admin_api::users::is_user_admin::v1 as is_user_admin;
3use tuwunel_core::{Err, Result};
4
5use crate::{Ruma, client::admin::require_admin};
6
7/// # `GET /_synapse/admin/v1/users/{user_id}/admin`
8pub(crate) async fn admin_is_user_admin_route(
9	State(services): State<crate::State>,
10	body: Ruma<is_user_admin::Request>,
11) -> Result<is_user_admin::Response> {
12	require_admin(&services, body.sender_user()).await?;
13
14	if !services.globals.user_is_local(&body.user_id) {
15		return Err!(Request(InvalidParam("Can only look up local users")));
16	}
17
18	let admin = services.admin.user_is_admin(&body.user_id).await;
19
20	Ok(is_user_admin::Response::new(admin))
21}