2026-04-09 00:10:38 +08:00
|
|
|
use crate::handlers::admin::request::{AdminRouteRequest, AdminRouteResult};
|
2026-04-03 14:59:58 +08:00
|
|
|
|
2026-04-04 01:40:24 +08:00
|
|
|
const ADMIN_USERS_DATA_UNAVAILABLE_DETAIL: &str = "Admin user management data unavailable";
|
2026-04-03 14:59:58 +08:00
|
|
|
|
2026-04-07 02:50:19 +08:00
|
|
|
mod api_keys;
|
2026-05-07 19:16:49 +08:00
|
|
|
mod batch;
|
2026-05-13 01:18:38 +08:00
|
|
|
mod billing;
|
2026-05-09 21:47:33 +08:00
|
|
|
mod groups;
|
2026-04-07 02:50:19 +08:00
|
|
|
mod lifecycle;
|
2026-04-09 00:10:38 +08:00
|
|
|
mod route_seam;
|
2026-04-07 02:50:19 +08:00
|
|
|
mod routes;
|
|
|
|
|
mod sessions;
|
|
|
|
|
mod shared;
|
2026-04-03 14:59:58 +08:00
|
|
|
|
2026-04-07 02:50:19 +08:00
|
|
|
use self::api_keys::{
|
2026-04-03 14:59:58 +08:00
|
|
|
build_admin_create_user_api_key_response, build_admin_delete_user_api_key_response,
|
|
|
|
|
build_admin_list_user_api_keys_response, build_admin_reveal_user_api_key_response,
|
|
|
|
|
build_admin_toggle_user_api_key_lock_response, build_admin_update_user_api_key_response,
|
|
|
|
|
};
|
2026-04-07 02:50:19 +08:00
|
|
|
pub(crate) use self::api_keys::{
|
2026-04-03 14:59:58 +08:00
|
|
|
default_admin_user_api_key_name, format_optional_unix_secs_iso8601,
|
|
|
|
|
generate_admin_user_api_key_plaintext, hash_admin_user_api_key, masked_user_api_key_display,
|
|
|
|
|
normalize_admin_optional_api_key_name,
|
|
|
|
|
};
|
2026-05-07 19:16:49 +08:00
|
|
|
use self::batch::{
|
|
|
|
|
build_admin_resolve_user_selection_response, build_admin_user_batch_action_response,
|
|
|
|
|
};
|
2026-05-13 01:18:38 +08:00
|
|
|
use self::billing::{
|
|
|
|
|
build_admin_grant_user_billing_plan_response,
|
|
|
|
|
build_admin_list_user_billing_entitlements_response,
|
2026-09-02 11:23:24 +08:00
|
|
|
build_admin_revoke_user_billing_entitlement_response,
|
2026-05-13 01:18:38 +08:00
|
|
|
};
|
2026-05-09 21:47:33 +08:00
|
|
|
use self::groups::{
|
|
|
|
|
build_admin_create_user_group_response, build_admin_delete_user_group_response,
|
|
|
|
|
build_admin_list_user_group_members_response, build_admin_list_user_groups_response,
|
|
|
|
|
build_admin_replace_user_group_members_response, build_admin_set_default_user_group_response,
|
|
|
|
|
build_admin_update_user_group_response,
|
|
|
|
|
};
|
2026-04-07 02:50:19 +08:00
|
|
|
use self::lifecycle::{
|
2026-04-03 14:59:58 +08:00
|
|
|
build_admin_create_user_response, build_admin_delete_user_response,
|
|
|
|
|
build_admin_get_user_response, build_admin_list_users_response,
|
|
|
|
|
build_admin_update_user_response,
|
|
|
|
|
};
|
2026-04-07 02:50:19 +08:00
|
|
|
use self::sessions::{
|
2026-04-03 14:59:58 +08:00
|
|
|
build_admin_delete_user_session_response, build_admin_delete_user_sessions_response,
|
|
|
|
|
build_admin_list_user_sessions_response,
|
|
|
|
|
};
|
2026-04-11 21:39:04 +08:00
|
|
|
use self::shared::AdminUpdateUserPatch;
|
2026-04-07 02:50:19 +08:00
|
|
|
use self::shared::{
|
2026-04-03 14:59:58 +08:00
|
|
|
admin_default_user_initial_gift, build_admin_users_bad_request_response,
|
2026-04-04 01:40:24 +08:00
|
|
|
build_admin_users_data_unavailable_response, build_admin_users_read_only_response,
|
2026-05-13 17:56:18 +08:00
|
|
|
disabled_user_policy_detail, disabled_user_policy_field, format_optional_datetime_iso8601,
|
|
|
|
|
legacy_admin_list_policy_mode, legacy_admin_rate_limit_policy_mode,
|
|
|
|
|
normalize_admin_optional_user_email, normalize_admin_user_group_ids, normalize_admin_user_role,
|
|
|
|
|
normalize_admin_username, validate_admin_user_password, AdminCreateUserApiKeyRequest,
|
|
|
|
|
AdminCreateUserRequest, AdminToggleUserApiKeyLockRequest, AdminUpdateUserApiKeyRequest,
|
2026-04-03 14:59:58 +08:00
|
|
|
};
|
2026-05-10 17:28:23 +08:00
|
|
|
pub(crate) use self::shared::{
|
|
|
|
|
normalize_admin_list_policy_mode, normalize_admin_rate_limit_policy_mode,
|
2026-05-20 16:11:49 +08:00
|
|
|
normalize_admin_user_api_formats, normalize_admin_user_ip_rules,
|
2026-05-19 10:23:15 +08:00
|
|
|
normalize_admin_user_string_list,
|
2026-05-10 17:28:23 +08:00
|
|
|
};
|
2026-05-14 11:14:20 +08:00
|
|
|
pub(crate) use crate::handlers::shared::normalize_feature_settings as normalize_admin_feature_settings;
|
2026-04-03 14:59:58 +08:00
|
|
|
|
|
|
|
|
pub(crate) async fn maybe_build_local_admin_users_response(
|
2026-04-09 00:10:38 +08:00
|
|
|
request: AdminRouteRequest<'_>,
|
|
|
|
|
) -> AdminRouteResult {
|
|
|
|
|
route_seam::maybe_build_local_admin_users_response(request).await
|
2026-04-03 14:59:58 +08:00
|
|
|
}
|