mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-27 23:47:28 +00:00
refactor(admin): extract user lifecycle route registration (#1795)
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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(())
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user