feat(otter): add working user removal route

This commit is contained in:
Jef Roosens 2025-08-29 14:18:33 +02:00
parent b946e1ce98
commit 5017bd1c5f
Signed by: Jef Roosens
GPG key ID: 02D4C0997E74717B
4 changed files with 35 additions and 0 deletions

View file

@ -17,6 +17,7 @@ use crate::{
pub fn router(ctx: Context) -> Router<Context> {
Router::new()
.route("/users", get(get_users))
.route("/users/{id}", delete(delete_user))
.route_layer(axum::middleware::from_fn_with_state(
ctx.clone(),
super::auth::auth_web_middleware,
@ -70,3 +71,20 @@ async fn get_users(
.authenticated(true)
.response(&ctx.tera))
}
async fn delete_user(
State(ctx): State<Context>,
Extension(session): Extension<gpodder::Session>,
Path(id): Path<i64>,
) -> AppResult<()> {
let deleted =
tokio::task::spawn_blocking(move || ctx.store.admin(&session.user)?.remove_user(id))
.await
.unwrap()?;
if deleted {
Ok(())
} else {
Err(AppError::NotFound)
}
}