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,