This commit is contained in:
houseme
2025-05-19 16:21:22 +08:00
parent dff7476143
commit be8a615cd7
4 changed files with 23 additions and 24 deletions
+14 -14
View File
@@ -696,7 +696,7 @@ where
for group in self
.cache
.user_group_memeberships
.user_group_memberships
.load()
.get(name)
.cloned()
@@ -821,7 +821,7 @@ where
pub async fn get_user_info(&self, name: &str) -> Result<madmin::UserInfo> {
let users = self.cache.users.load();
let policies = self.cache.user_policies.load();
let group_members = self.cache.user_group_memeberships.load();
let group_members = self.cache.user_group_memberships.load();
let u = match users.get(name) {
Some(u) => u,
@@ -860,7 +860,7 @@ where
let users = self.cache.users.load();
let policies = self.cache.user_policies.load();
let group_members = self.cache.user_group_memeberships.load();
let group_members = self.cache.user_group_memberships.load();
for (k, v) in users.iter() {
if v.credentials.is_temp() || v.credentials.is_service_account() {
@@ -894,7 +894,7 @@ where
pub async fn get_bucket_users(&self, bucket_name: &str) -> Result<HashMap<String, madmin::UserInfo>> {
let users = self.cache.users.load();
let policies_cache = self.cache.user_policies.load();
let group_members = self.cache.user_group_memeberships.load();
let group_members = self.cache.user_group_memberships.load();
let group_policy_cache = self.cache.group_policies.load();
let mut ret = HashMap::new();
@@ -993,7 +993,7 @@ where
}
if utype == UserType::Reg {
if let Some(member_of) = self.cache.user_group_memeberships.load().get(access_key) {
if let Some(member_of) = self.cache.user_group_memberships.load().get(access_key) {
for member in member_of.iter() {
let _ = self
.remove_members_from_group(member, vec![access_key.to_string()], false)
@@ -1167,12 +1167,12 @@ where
Cache::add_or_update(&self.cache.groups, group, &gi, OffsetDateTime::now_utc());
let user_group_memeberships = self.cache.user_group_memeberships.load();
let user_group_memeberships = self.cache.user_group_memberships.load();
members.iter().for_each(|member| {
if let Some(m) = user_group_memeberships.get(member) {
let mut m = m.clone();
m.insert(group.to_string());
Cache::add_or_update(&self.cache.user_group_memeberships, member, &m, OffsetDateTime::now_utc());
Cache::add_or_update(&self.cache.user_group_memberships, member, &m, OffsetDateTime::now_utc());
}
});
@@ -1252,12 +1252,12 @@ where
Cache::add_or_update(&self.cache.groups, name, &gi, OffsetDateTime::now_utc());
let user_group_memeberships = self.cache.user_group_memeberships.load();
let user_group_memeberships = self.cache.user_group_memberships.load();
members.iter().for_each(|member| {
if let Some(m) = user_group_memeberships.get(member) {
let mut m = m.clone();
m.remove(name);
Cache::add_or_update(&self.cache.user_group_memeberships, member, &m, OffsetDateTime::now_utc());
Cache::add_or_update(&self.cache.user_group_memberships, member, &m, OffsetDateTime::now_utc());
}
});
@@ -1308,23 +1308,23 @@ where
}
fn remove_group_from_memberships_map(&self, group: &str) {
let user_group_memeberships = self.cache.user_group_memeberships.load();
let user_group_memeberships = self.cache.user_group_memberships.load();
for (k, v) in user_group_memeberships.iter() {
if v.contains(group) {
let mut m = v.clone();
m.remove(group);
Cache::add_or_update(&self.cache.user_group_memeberships, k, &m, OffsetDateTime::now_utc());
Cache::add_or_update(&self.cache.user_group_memberships, k, &m, OffsetDateTime::now_utc());
}
}
}
fn update_group_memberships_map(&self, group: &str, gi: &GroupInfo) {
let user_group_memeberships = self.cache.user_group_memeberships.load();
let user_group_memeberships = self.cache.user_group_memberships.load();
for member in gi.members.iter() {
if let Some(m) = user_group_memeberships.get(member) {
let mut m = m.clone();
m.insert(group.to_string());
Cache::add_or_update(&self.cache.user_group_memeberships, member, &m, OffsetDateTime::now_utc());
Cache::add_or_update(&self.cache.user_group_memberships, member, &m, OffsetDateTime::now_utc());
}
}
}
@@ -1442,7 +1442,7 @@ where
Cache::delete(&self.cache.users, name, OffsetDateTime::now_utc());
}
let member_of = self.cache.user_group_memeberships.load();
let member_of = self.cache.user_group_memberships.load();
if let Some(m) = member_of.get(name) {
for group in m.iter() {
if let Err(err) = self.remove_members_from_group(group, vec![name.to_string()], true).await {