From dc2df16677e9d7e3582eca9fc3b8d0fc5e6f5980 Mon Sep 17 00:00:00 2001 From: Eli Foster Date: Mon, 3 Aug 2026 15:25:59 -0700 Subject: [PATCH] fix(relay): satisfy clippy on admin auth changes `authorize_request` returned `Result<(), Response>`, tripping `clippy::result_large_err` (the axum `Response` Err variant is >=128 bytes). Return `ApiError` instead and convert at the two call sites. Also drops a redundant closure in the config test. Co-Authored-By: Claude Opus 5 Signed-off-by: Eli Foster --- crates/buzz-relay/src/api/admin/mod.rs | 6 +++--- crates/buzz-relay/src/config.rs | 2 +- crates/buzz-relay/src/router.rs | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/buzz-relay/src/api/admin/mod.rs b/crates/buzz-relay/src/api/admin/mod.rs index ff32e13f91..c987812428 100644 --- a/crates/buzz-relay/src/api/admin/mod.rs +++ b/crates/buzz-relay/src/api/admin/mod.rs @@ -1,7 +1,7 @@ //! Private, read-only deployment moderation API. mod auth; -mod error; +pub(crate) mod error; use std::sync::Arc; @@ -27,8 +27,8 @@ pub(crate) fn is_admin_host(state: &crate::state::AppState, headers: &HeaderMap) pub(crate) fn authorize_request( state: &crate::state::AppState, headers: &HeaderMap, -) -> Result<(), Response> { - authorize(state, headers).map_err(|error| error.into_response()) +) -> Result<(), ApiError> { + authorize(state, headers) } /// Build the read-only deployment-admin routes. diff --git a/crates/buzz-relay/src/config.rs b/crates/buzz-relay/src/config.rs index b19b7d60f1..d6a31c18a9 100644 --- a/crates/buzz-relay/src/config.rs +++ b/crates/buzz-relay/src/config.rs @@ -1119,7 +1119,7 @@ mod tests { "BUZZ_ADMIN_PASSWORD", "BUZZ_ADMIN_WEB_DIR", ]; - let previous = NAMES.map(|name| std::env::var_os(name)); + let previous = NAMES.map(std::env::var_os); for name in NAMES { std::env::remove_var(name); } diff --git a/crates/buzz-relay/src/router.rs b/crates/buzz-relay/src/router.rs index 0926da51fe..868e2f79e0 100644 --- a/crates/buzz-relay/src/router.rs +++ b/crates/buzz-relay/src/router.rs @@ -161,8 +161,8 @@ pub fn build_router(state: Arc) -> Router { let path = req.uri().path(); let admin_host = api::admin::is_admin_host(&state, req.headers()); if admin_host { - if let Err(response) = api::admin::authorize_request(&state, req.headers()) { - return Ok(response); + if let Err(error) = api::admin::authorize_request(&state, req.headers()) { + return Ok(error.into_response()); } if let (Some(index), Some(files)) = (admin_index, admin_files) { if path.starts_with("/assets/") { @@ -274,8 +274,8 @@ async fn nip11_or_ws_handler( // Short-circuit the exact admin authority here and never let it serve the // public web bundle, NIP-11 document, or WebSocket endpoint. if api::admin::is_admin_host(&state, &headers) { - if let Err(response) = api::admin::authorize_request(&state, &headers) { - return response; + if let Err(error) = api::admin::authorize_request(&state, &headers) { + return error.into_response(); } if !accept.contains("text/html") { return StatusCode::NOT_FOUND.into_response();