From 26b6d3a1ec0908876d65600f6a661dbd83d99d2e Mon Sep 17 00:00:00 2001 From: weisd Date: Thu, 14 Nov 2024 09:06:42 +0800 Subject: [PATCH] test accountinfo --- ecstore/src/bucket/policy/bucket_policy.rs | 7 ++++--- ecstore/src/bucket/policy/condition/function.rs | 3 +++ ecstore/src/bucket/policy/resource.rs | 4 ++++ router/src/handlers.rs | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ecstore/src/bucket/policy/bucket_policy.rs b/ecstore/src/bucket/policy/bucket_policy.rs index 9c38168d1..5dedbf0dc 100644 --- a/ecstore/src/bucket/policy/bucket_policy.rs +++ b/ecstore/src/bucket/policy/bucket_policy.rs @@ -2,6 +2,7 @@ use crate::error::{Error, Result}; // use rmp_serde::Serializer as rmpSerializer; use serde::{Deserialize, Serialize}; use std::collections::HashMap; +use std::collections::HashSet; use super::{ action::{Action, ActionSet, IAMActionConditionKeyMap}, @@ -35,11 +36,11 @@ pub struct BPStatement { pub principal: Principal, #[serde(rename = "Action")] pub actions: ActionSet, - #[serde(rename = "NotAction", default)] + #[serde(rename = "NotAction", skip_serializing_if = "ActionSet::is_empty")] pub not_actions: ActionSet, - #[serde(rename = "Resource")] + #[serde(rename = "Resource", skip_serializing_if = "ResourceSet::is_empty")] pub resources: ResourceSet, - #[serde(rename = "Condition", default)] + #[serde(rename = "Condition", skip_serializing_if = "Functions::is_empty")] pub conditions: Functions, } diff --git a/ecstore/src/bucket/policy/condition/function.rs b/ecstore/src/bucket/policy/condition/function.rs index c744331c7..929b2d4eb 100644 --- a/ecstore/src/bucket/policy/condition/function.rs +++ b/ecstore/src/bucket/policy/condition/function.rs @@ -106,6 +106,9 @@ impl Functions { } set } + pub fn is_empty(&self) -> bool { + self.0.is_empty() + } } impl Debug for Functions { diff --git a/ecstore/src/bucket/policy/resource.rs b/ecstore/src/bucket/policy/resource.rs index 7e2c6472e..409cd9cb7 100644 --- a/ecstore/src/bucket/policy/resource.rs +++ b/ecstore/src/bucket/policy/resource.rs @@ -228,6 +228,10 @@ impl ResourceSet { } false } + + pub fn is_empty(&self) -> bool { + self.0.is_empty() + } } impl AsRef> for ResourceSet { diff --git a/router/src/handlers.rs b/router/src/handlers.rs index 6206dcb8f..ef334d12c 100644 --- a/router/src/handlers.rs +++ b/router/src/handlers.rs @@ -135,7 +135,7 @@ impl Operation for AccountInfoHandler { statements: vec![BPStatement { sid: "".to_owned(), effect: Effect::Allow, - actions: ActionSet(s3_all_act), + actions: ActionSet(s3_all_act.clone()), resources: ResourceSet(all_res), ..Default::default() }],