From 0a2e809cb9c03e837c3fa79f266385e94d2ba3a7 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Tue, 18 Feb 2025 19:34:56 +0100 Subject: [PATCH] admin api: avoid overwriting redirect rules in UpdateBucket --- src/api/admin/bucket.rs | 8 ++++++-- src/garage/admin/bucket.rs | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/api/admin/bucket.rs b/src/api/admin/bucket.rs index 9a98488e..6edc4aeb 100644 --- a/src/api/admin/bucket.rs +++ b/src/api/admin/bucket.rs @@ -419,13 +419,17 @@ pub async fn handle_update_bucket( if let Some(wa) = req.website_access { if wa.enabled { + let (redirect_all, routing_rules) = match state.website_config.get() { + Some(wc) => (wc.redirect_all.clone(), wc.routing_rules.clone()), + None => (None, Vec::new()), + }; state.website_config.update(Some(WebsiteConfig { index_document: wa.index_document.ok_or_bad_request( "Please specify indexDocument when enabling website access.", )?, error_document: wa.error_document, - redirect_all: None, - routing_rules: Vec::new(), + redirect_all, + routing_rules, })); } else { if wa.index_document.is_some() || wa.error_document.is_some() { diff --git a/src/garage/admin/bucket.rs b/src/garage/admin/bucket.rs index 9afb90d0..0ff436c9 100644 --- a/src/garage/admin/bucket.rs +++ b/src/garage/admin/bucket.rs @@ -390,11 +390,15 @@ impl AdminRpcHandler { } let website = if query.allow { + let (redirect_all, routing_rules) = match bucket_state.website_config.get() { + Some(wc) => (wc.redirect_all.clone(), wc.routing_rules.clone()), + None => (None, Vec::new()), + }; Some(WebsiteConfig { index_document: query.index_document.clone(), error_document: query.error_document.clone(), - redirect_all: None, - routing_rules: Vec::new(), + redirect_all, + routing_rules, }) } else { None