refactor(admin): extract user lifecycle route registration (#1795)

This commit is contained in:
安正超
2026-02-13 13:42:25 +08:00
committed by GitHub
parent cbb4329428
commit c4a68d3efe
3 changed files with 58 additions and 38 deletions
+1
View File
@@ -37,6 +37,7 @@ pub mod tier;
pub mod trace; pub mod trace;
pub mod user; pub mod user;
pub mod user_iam; pub mod user_iam;
pub mod user_lifecycle;
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
+3 -38
View File
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
use super::{account_info, event, group, policies, service_account, user_iam}; use super::{account_info, event, group, policies, service_account, user_iam, user_lifecycle};
use crate::{ use crate::{
admin::{ admin::{
auth::validate_admin_request, auth::validate_admin_request,
@@ -20,10 +20,9 @@ use crate::{
utils::has_space_be, utils::has_space_be,
}, },
auth::{check_key_valid, constant_time_eq, get_session_token}, auth::{check_key_valid, constant_time_eq, get_session_token},
server::{ADMIN_PREFIX, RemoteAddr}, server::RemoteAddr,
}; };
use http::{HeaderMap, StatusCode}; use http::{HeaderMap, StatusCode};
use hyper::Method;
use matchit::Params; use matchit::Params;
use rustfs_config::{MAX_ADMIN_REQUEST_BODY_SIZE, MAX_IAM_IMPORT_SIZE}; use rustfs_config::{MAX_ADMIN_REQUEST_BODY_SIZE, MAX_IAM_IMPORT_SIZE};
use rustfs_credentials::get_global_action_cred; use rustfs_credentials::get_global_action_cred;
@@ -58,7 +57,7 @@ pub struct AddUserQuery {
pub fn register_user_route(r: &mut S3Router<AdminOperation>) -> std::io::Result<()> { pub fn register_user_route(r: &mut S3Router<AdminOperation>) -> std::io::Result<()> {
account_info::register_account_info_route(r)?; account_info::register_account_info_route(r)?;
register_user_management_route(r)?; user_lifecycle::register_user_lifecycle_route(r)?;
group::register_group_management_route(r)?; group::register_group_management_route(r)?;
service_account::register_service_account_route(r)?; service_account::register_service_account_route(r)?;
user_iam::register_user_iam_route(r)?; user_iam::register_user_iam_route(r)?;
@@ -68,40 +67,6 @@ pub fn register_user_route(r: &mut S3Router<AdminOperation>) -> std::io::Result<
Ok(()) Ok(())
} }
fn register_user_management_route(r: &mut S3Router<AdminOperation>) -> std::io::Result<()> {
r.insert(
Method::GET,
format!("{}{}", ADMIN_PREFIX, "/v3/list-users").as_str(),
AdminOperation(&ListUsers {}),
)?;
r.insert(
Method::GET,
format!("{}{}", ADMIN_PREFIX, "/v3/user-info").as_str(),
AdminOperation(&GetUserInfo {}),
)?;
r.insert(
Method::DELETE,
format!("{}{}", ADMIN_PREFIX, "/v3/remove-user").as_str(),
AdminOperation(&RemoveUser {}),
)?;
r.insert(
Method::PUT,
format!("{}{}", ADMIN_PREFIX, "/v3/add-user").as_str(),
AdminOperation(&AddUser {}),
)?;
r.insert(
Method::PUT,
format!("{}{}", ADMIN_PREFIX, "/v3/set-user-status").as_str(),
AdminOperation(&SetUserStatus {}),
)?;
Ok(())
}
pub struct AddUser {} pub struct AddUser {}
#[async_trait::async_trait] #[async_trait::async_trait]
impl Operation for AddUser { impl Operation for AddUser {
@@ -0,0 +1,54 @@
// Copyright 2024 RustFS Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
use super::user::{AddUser, GetUserInfo, ListUsers, RemoveUser, SetUserStatus};
use crate::{
admin::router::{AdminOperation, S3Router},
server::ADMIN_PREFIX,
};
use hyper::Method;
pub fn register_user_lifecycle_route(r: &mut S3Router<AdminOperation>) -> std::io::Result<()> {
r.insert(
Method::GET,
format!("{}{}", ADMIN_PREFIX, "/v3/list-users").as_str(),
AdminOperation(&ListUsers {}),
)?;
r.insert(
Method::GET,
format!("{}{}", ADMIN_PREFIX, "/v3/user-info").as_str(),
AdminOperation(&GetUserInfo {}),
)?;
r.insert(
Method::DELETE,
format!("{}{}", ADMIN_PREFIX, "/v3/remove-user").as_str(),
AdminOperation(&RemoveUser {}),
)?;
r.insert(
Method::PUT,
format!("{}{}", ADMIN_PREFIX, "/v3/add-user").as_str(),
AdminOperation(&AddUser {}),
)?;
r.insert(
Method::PUT,
format!("{}{}", ADMIN_PREFIX, "/v3/set-user-status").as_str(),
AdminOperation(&SetUserStatus {}),
)?;
Ok(())
}