aboutsummaryrefslogtreecommitdiff
path: root/src/garage
diff options
context:
space:
mode:
Diffstat (limited to 'src/garage')
-rw-r--r--src/garage/admin_rpc.rs47
1 files changed, 19 insertions, 28 deletions
diff --git a/src/garage/admin_rpc.rs b/src/garage/admin_rpc.rs
index 1e363677..602e0b09 100644
--- a/src/garage/admin_rpc.rs
+++ b/src/garage/admin_rpc.rs
@@ -156,37 +156,28 @@ impl AdminRpcHandler {
)))
}
BucketOperation::Website(query) => {
- let bucket = self.get_existing_bucket(&query.bucket).await?;
- if query.allow && query.deny {
- return Err(Error::Message(format!("Website can not be both allowed and denied on a bucket")));
+ let mut bucket = self.get_existing_bucket(&query.bucket).await?;
+
+ if !(query.allow ^ query.deny) {
+ return Err(Error::Message(format!(
+ "You must specify exactly one flag, either --allow or --deny"
+ )));
}
- /*
- if query.allow || query.deny {
- let exposed = query.allow;
- if let BucketState::Present(state) = bucket.state.get_mut() {
- let ak = state.authorized_keys;
- let old_ak = ak.take_and_clear();
- ak.merge(&old_ak.update_mutator(
- key_id.to_string(),
- PermissionSet {
- allow_read,
- allow_write,
- },
- ));
+
+ if let BucketState::Present(state) = bucket.state.get_mut() {
+ state.website.update(query.allow);
+ let msg = if query.allow {
+ format!("Website access allowed for {}", &query.bucket)
} else {
- return Err(Error::Message(format!(
- "Bucket is deleted in update_bucket_key"
- )));
- }
- }
+ format!("Website access denied for {}", &query.bucket)
+ };
- let msg = if bucket.exposed {
- "Bucket is exposed as a website."
+ Ok(AdminRPC::Ok(msg.to_string()))
} else {
- "Bucket is not exposed."
- };*/
-
- Ok(AdminRPC::Ok(/*msg*/"".to_string()))
+ return Err(Error::Message(format!(
+ "Bucket is deleted in update_bucket_key"
+ )));
+ }
}
}
}
@@ -270,7 +261,7 @@ impl AdminRpcHandler {
.unwrap_or(Err(Error::BadRPC(format!("Key {} does not exist", id))))
}
- /// Update **bucket table** to inform of the new linked key
+ /// Update **bucket table** to inform of the new linked key
async fn update_bucket_key(
&self,
mut bucket: Bucket,