From b45b98225faca450060f1371f62c5837f07ddbe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 22 Apr 2026 07:22:58 +0200 Subject: [PATCH] add missing handlers --- crates/defguard_core/src/handlers/proxy.rs | 2 +- .../src/handlers/initial_wizard.rs | 25 +++++++++++++------ crates/defguard_setup/src/migration.rs | 2 ++ crates/defguard_setup/src/setup_server.rs | 5 ++-- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/crates/defguard_core/src/handlers/proxy.rs b/crates/defguard_core/src/handlers/proxy.rs index f6b76d1df..50eeaef9c 100644 --- a/crates/defguard_core/src/handlers/proxy.rs +++ b/crates/defguard_core/src/handlers/proxy.rs @@ -38,7 +38,7 @@ pub struct ProxyUpdateData { ("api_token" = []) ) )] -pub(crate) async fn proxy_list( +pub async fn proxy_list( _role: AdminRole, session: SessionInfo, State(appstate): State, diff --git a/crates/defguard_setup/src/handlers/initial_wizard.rs b/crates/defguard_setup/src/handlers/initial_wizard.rs index 919451496..7c875c51e 100644 --- a/crates/defguard_setup/src/handlers/initial_wizard.rs +++ b/crates/defguard_setup/src/handlers/initial_wizard.rs @@ -11,13 +11,17 @@ use axum_extra::{ headers::UserAgent, }; use defguard_certs::{CertificateInfo, der_to_pem, parse_pem_certificate}; -use defguard_common::db::models::{ - Certificates, Session, SessionState, Settings, User, - group::Group, - initial_setup_wizard::{InitialSetupState, InitialSetupStep}, - settings::update_current_settings, - setup_auto_adoption::{AutoAdoptionWizardState, AutoAdoptionWizardStep}, - wizard::{ActiveWizard, Wizard}, +use defguard_common::{ + db::models::{ + Certificates, Session, SessionState, Settings, User, + group::Group, + initial_setup_wizard::{InitialSetupState, InitialSetupStep}, + proxy::Proxy, + settings::update_current_settings, + setup_auto_adoption::{AutoAdoptionWizardState, AutoAdoptionWizardStep}, + wizard::{ActiveWizard, Wizard}, + }, + types::proxy::ProxyInfo, }; use defguard_core::{ auth::{ @@ -517,3 +521,10 @@ pub async fn get_wizard_state(Extension(pool): Extension) -> ApiResult { StatusCode::OK, )) } + +pub async fn proxy_list(_: AdminOrSetupRole, Extension(pool): Extension) -> ApiResult { + let proxies = Proxy::list(&pool).await?; + let proxies: Vec = proxies.into_iter().map(Into::into).collect(); + + Ok(ApiResponse::json(proxies, StatusCode::OK)) +} diff --git a/crates/defguard_setup/src/migration.rs b/crates/defguard_setup/src/migration.rs index 882397fe3..738321c92 100644 --- a/crates/defguard_setup/src/migration.rs +++ b/crates/defguard_setup/src/migration.rs @@ -27,6 +27,7 @@ use defguard_core::{ }, component_setup::{setup_gateway_tls_stream, setup_proxy_tls_stream, stream_proxy_acme}, gateway::gateway_list, + proxy::proxy_list, resource_display::get_locations_display, session_info::get_session_info, settings::{get_settings, get_settings_essentials, patch_settings}, @@ -108,6 +109,7 @@ pub fn build_migration_webapp( .route("/session-info", get(get_session_info)) .route("/settings_essentials", get(get_settings_essentials)) .route("/settings", get(get_settings).patch(patch_settings)) + .route("/proxy", get(proxy_list)) .route("/proxy/setup/stream", get(setup_proxy_tls_stream)) .route("/proxy/acme/stream", get(stream_proxy_acme)) .route("/auth", post(authenticate)) diff --git a/crates/defguard_setup/src/setup_server.rs b/crates/defguard_setup/src/setup_server.rs index 15c549fbd..ff2935b55 100644 --- a/crates/defguard_setup/src/setup_server.rs +++ b/crates/defguard_setup/src/setup_server.rs @@ -32,8 +32,8 @@ use crate::handlers::{ set_external_url_settings, set_internal_url_settings, set_mfa_settings, set_vpn_settings, }, initial_wizard::{ - create_admin, create_ca, finish_setup, get_ca, get_wizard_state, set_general_config, - setup_login, setup_session, upload_ca, + create_admin, create_ca, finish_setup, get_ca, get_wizard_state, proxy_list, + set_general_config, setup_login, setup_session, upload_ca, }, session_info::get_session_info, version::get_version, @@ -60,6 +60,7 @@ pub fn build_setup_webapp( .route("/session-info", get(get_session_info)) .route("/network/display", get(get_locations_display)) .route("/wizard", get(get_wizard_state)) + .route("/proxy", get(proxy_list)) .route("/proxy/setup/stream", get(setup_proxy_tls_stream)) .route("/proxy/acme/stream", get(stream_proxy_acme)) .nest(