mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-13 08:36:54 +00:00
fix typo
This commit is contained in:
@@ -44,7 +44,7 @@ pub const BUCKET_TARGETS_FILE: &str = "bucket-targets.json";
|
|||||||
pub struct BucketMetadata {
|
pub struct BucketMetadata {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub created: OffsetDateTime,
|
pub created: OffsetDateTime,
|
||||||
pub lock_enabled: bool, // 虽然标记为不使用,但可能需要保留
|
pub lock_enabled: bool, // While marked as unused, it may need to be retained
|
||||||
pub policy_config_json: Vec<u8>,
|
pub policy_config_json: Vec<u8>,
|
||||||
pub notification_config_xml: Vec<u8>,
|
pub notification_config_xml: Vec<u8>,
|
||||||
pub lifecycle_config_xml: Vec<u8>,
|
pub lifecycle_config_xml: Vec<u8>,
|
||||||
@@ -420,7 +420,6 @@ where
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
|
|||||||
+4
-4
@@ -22,7 +22,7 @@ pub struct Cache {
|
|||||||
pub sts_accounts: ArcSwap<CacheEntity<UserIdentity>>,
|
pub sts_accounts: ArcSwap<CacheEntity<UserIdentity>>,
|
||||||
pub sts_policies: ArcSwap<CacheEntity<MappedPolicy>>,
|
pub sts_policies: ArcSwap<CacheEntity<MappedPolicy>>,
|
||||||
pub groups: ArcSwap<CacheEntity<GroupInfo>>,
|
pub groups: ArcSwap<CacheEntity<GroupInfo>>,
|
||||||
pub user_group_memeberships: ArcSwap<CacheEntity<HashSet<String>>>,
|
pub user_group_memberships: ArcSwap<CacheEntity<HashSet<String>>>,
|
||||||
pub group_policies: ArcSwap<CacheEntity<MappedPolicy>>,
|
pub group_policies: ArcSwap<CacheEntity<MappedPolicy>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ impl Default for Cache {
|
|||||||
sts_accounts: ArcSwap::new(Arc::new(CacheEntity::default())),
|
sts_accounts: ArcSwap::new(Arc::new(CacheEntity::default())),
|
||||||
sts_policies: ArcSwap::new(Arc::new(CacheEntity::default())),
|
sts_policies: ArcSwap::new(Arc::new(CacheEntity::default())),
|
||||||
groups: ArcSwap::new(Arc::new(CacheEntity::default())),
|
groups: ArcSwap::new(Arc::new(CacheEntity::default())),
|
||||||
user_group_memeberships: ArcSwap::new(Arc::new(CacheEntity::default())),
|
user_group_memberships: ArcSwap::new(Arc::new(CacheEntity::default())),
|
||||||
group_policies: ArcSwap::new(Arc::new(CacheEntity::default())),
|
group_policies: ArcSwap::new(Arc::new(CacheEntity::default())),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -97,7 +97,7 @@ impl Cache {
|
|||||||
.insert(group_name.clone());
|
.insert(group_name.clone());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.user_group_memeberships
|
self.user_group_memberships
|
||||||
.store(Arc::new(CacheEntity::new(user_group_memeberships)));
|
.store(Arc::new(CacheEntity::new(user_group_memeberships)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -228,7 +228,7 @@ impl From<&Cache> for CacheInner {
|
|||||||
sts_accounts: value.sts_accounts.load(),
|
sts_accounts: value.sts_accounts.load(),
|
||||||
sts_policies: value.sts_policies.load(),
|
sts_policies: value.sts_policies.load(),
|
||||||
groups: value.groups.load(),
|
groups: value.groups.load(),
|
||||||
user_group_memeberships: value.user_group_memeberships.load(),
|
user_group_memeberships: value.user_group_memberships.load(),
|
||||||
group_policies: value.group_policies.load(),
|
group_policies: value.group_policies.load(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-14
@@ -696,7 +696,7 @@ where
|
|||||||
|
|
||||||
for group in self
|
for group in self
|
||||||
.cache
|
.cache
|
||||||
.user_group_memeberships
|
.user_group_memberships
|
||||||
.load()
|
.load()
|
||||||
.get(name)
|
.get(name)
|
||||||
.cloned()
|
.cloned()
|
||||||
@@ -821,7 +821,7 @@ where
|
|||||||
pub async fn get_user_info(&self, name: &str) -> Result<madmin::UserInfo> {
|
pub async fn get_user_info(&self, name: &str) -> Result<madmin::UserInfo> {
|
||||||
let users = self.cache.users.load();
|
let users = self.cache.users.load();
|
||||||
let policies = self.cache.user_policies.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) {
|
let u = match users.get(name) {
|
||||||
Some(u) => u,
|
Some(u) => u,
|
||||||
@@ -860,7 +860,7 @@ where
|
|||||||
|
|
||||||
let users = self.cache.users.load();
|
let users = self.cache.users.load();
|
||||||
let policies = self.cache.user_policies.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() {
|
for (k, v) in users.iter() {
|
||||||
if v.credentials.is_temp() || v.credentials.is_service_account() {
|
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>> {
|
pub async fn get_bucket_users(&self, bucket_name: &str) -> Result<HashMap<String, madmin::UserInfo>> {
|
||||||
let users = self.cache.users.load();
|
let users = self.cache.users.load();
|
||||||
let policies_cache = self.cache.user_policies.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 group_policy_cache = self.cache.group_policies.load();
|
||||||
|
|
||||||
let mut ret = HashMap::new();
|
let mut ret = HashMap::new();
|
||||||
@@ -993,7 +993,7 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
if utype == UserType::Reg {
|
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() {
|
for member in member_of.iter() {
|
||||||
let _ = self
|
let _ = self
|
||||||
.remove_members_from_group(member, vec![access_key.to_string()], false)
|
.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());
|
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| {
|
members.iter().for_each(|member| {
|
||||||
if let Some(m) = user_group_memeberships.get(member) {
|
if let Some(m) = user_group_memeberships.get(member) {
|
||||||
let mut m = m.clone();
|
let mut m = m.clone();
|
||||||
m.insert(group.to_string());
|
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());
|
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| {
|
members.iter().for_each(|member| {
|
||||||
if let Some(m) = user_group_memeberships.get(member) {
|
if let Some(m) = user_group_memeberships.get(member) {
|
||||||
let mut m = m.clone();
|
let mut m = m.clone();
|
||||||
m.remove(name);
|
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) {
|
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() {
|
for (k, v) in user_group_memeberships.iter() {
|
||||||
if v.contains(group) {
|
if v.contains(group) {
|
||||||
let mut m = v.clone();
|
let mut m = v.clone();
|
||||||
m.remove(group);
|
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) {
|
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() {
|
for member in gi.members.iter() {
|
||||||
if let Some(m) = user_group_memeberships.get(member) {
|
if let Some(m) = user_group_memeberships.get(member) {
|
||||||
let mut m = m.clone();
|
let mut m = m.clone();
|
||||||
m.insert(group.to_string());
|
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());
|
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) {
|
if let Some(m) = member_of.get(name) {
|
||||||
for group in m.iter() {
|
for group in m.iter() {
|
||||||
if let Err(err) = self.remove_members_from_group(group, vec![name.to_string()], true).await {
|
if let Err(err) = self.remove_members_from_group(group, vec![name.to_string()], true).await {
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ pub struct ObjectStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl ObjectStore {
|
impl ObjectStore {
|
||||||
const BUCKET_NAME: &str = ".rustfs.sys";
|
const BUCKET_NAME: &'static str = ".rustfs.sys";
|
||||||
|
|
||||||
pub fn new(object_api: Arc<ECStore>) -> Self {
|
pub fn new(object_api: Arc<ECStore>) -> Self {
|
||||||
Self { object_api }
|
Self { object_api }
|
||||||
@@ -135,7 +135,7 @@ impl ObjectStore {
|
|||||||
async fn list_iam_config_items(&self, prefix: &str, ctx_rx: B_Receiver<bool>, sender: Sender<StringOrErr>) {
|
async fn list_iam_config_items(&self, prefix: &str, ctx_rx: B_Receiver<bool>, sender: Sender<StringOrErr>) {
|
||||||
// debug!("list iam config items, prefix: {}", &prefix);
|
// debug!("list iam config items, prefix: {}", &prefix);
|
||||||
|
|
||||||
// todo, 实现walk,使用walk
|
// todo, 实现 walk,使用 walk
|
||||||
|
|
||||||
// let prefix = format!("{}{}", prefix, item);
|
// let prefix = format!("{}{}", prefix, item);
|
||||||
|
|
||||||
@@ -349,7 +349,7 @@ impl ObjectStore {
|
|||||||
// user.credentials.access_key = name.to_owned();
|
// user.credentials.access_key = name.to_owned();
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// // todo, 校验session token
|
// // todo, 校验 session token
|
||||||
|
|
||||||
// Ok(Some(user))
|
// Ok(Some(user))
|
||||||
// }
|
// }
|
||||||
@@ -932,7 +932,7 @@ impl Store for ObjectStore {
|
|||||||
// Arc::new(tokio::sync::Mutex::new(CacheEntity::default())),
|
// Arc::new(tokio::sync::Mutex::new(CacheEntity::default())),
|
||||||
// );
|
// );
|
||||||
|
|
||||||
// // 一次读取32个元素
|
// // 一次读取 32 个元素
|
||||||
// let iter = items
|
// let iter = items
|
||||||
// .iter()
|
// .iter()
|
||||||
// .map(|item| item.trim_start_matches("config/iam/"))
|
// .map(|item| item.trim_start_matches("config/iam/"))
|
||||||
|
|||||||
Reference in New Issue
Block a user