diff options
author | Alex Auvolat <lx@deuxfleurs.fr> | 2025-02-18 19:34:56 +0100 |
---|---|---|
committer | Alex Auvolat <lx@deuxfleurs.fr> | 2025-02-18 19:39:59 +0100 |
commit | 0a2e809cb9c03e837c3fa79f266385e94d2ba3a7 (patch) | |
tree | 20a3beab1d7cb5be5b08871ed949ba80ed8ea4b1 | |
parent | e0f8a72a81ce058d78f15d3affcfe7b4e88c7d76 (diff) | |
download | garage-v1.99-internal.tar.gz garage-v1.99-internal.zip |
admin api: avoid overwriting redirect rules in UpdateBucketv1.99.0-internalv1.99-internal
-rw-r--r-- | src/api/admin/bucket.rs | 8 | ||||
-rw-r--r-- | 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 |