From 704c41b11628014940cfadc8c27d69fd847c52cf Mon Sep 17 00:00:00 2001 From: weisd Date: Sat, 22 Feb 2025 01:05:27 +0800 Subject: [PATCH] fix policy_db_get --- iam/src/manager.rs | 8 +++++++- madmin/src/group.rs | 7 ++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/iam/src/manager.rs b/iam/src/manager.rs index d55debb51..ee87f1ba5 100644 --- a/iam/src/manager.rs +++ b/iam/src/manager.rs @@ -606,11 +606,17 @@ where if !policy_present { let mut m = HashMap::new(); - self.api.load_mapped_policy(name, UserType::Reg, true, &mut m).await?; + if let Err(err) = self.api.load_mapped_policy(name, UserType::Reg, true, &mut m).await { + if !is_err_no_such_policy(&err) { + return Err(err); + } + } if let Some(p) = m.get(name) { Cache::add_or_update(&self.cache.group_policies, name, p, OffsetDateTime::now_utc()); return Ok((p.to_slice(), p.update_at)); } + + return Ok((Vec::new(), OffsetDateTime::now_utc())); } return Ok((Vec::new(), OffsetDateTime::now_utc())); diff --git a/madmin/src/group.rs b/madmin/src/group.rs index f24849b19..c86760d4c 100644 --- a/madmin/src/group.rs +++ b/madmin/src/group.rs @@ -2,14 +2,15 @@ use serde::Deserialize; use serde::Serialize; use time::OffsetDateTime; -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, Default)] #[serde(rename_all = "lowercase")] pub enum GroupStatus { + #[default] Enabled, Disabled, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, Default)] pub struct GroupAddRemove { pub group: String, pub members: Vec, @@ -19,7 +20,7 @@ pub struct GroupAddRemove { pub is_remove: bool, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, Default)] pub struct GroupDesc { pub name: String, pub status: String,