mirror of
https://github.com/yuezk/GlobalProtect-openconnect.git
synced 2025-04-02 18:31:50 -04:00
refactor: move commands out
This commit is contained in:
parent
75db9e162f
commit
da3dc10569
44
gpgui/src-tauri/src/commands.rs
Normal file
44
gpgui/src-tauri/src/commands.rs
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
use crate::auth::{self, AuthData, AuthRequest, SamlBinding};
|
||||||
|
use gpcommon::{Client, ServerApiError, VpnStatus};
|
||||||
|
use std::sync::Arc;
|
||||||
|
use tauri::{AppHandle, State};
|
||||||
|
|
||||||
|
#[tauri::command]
|
||||||
|
pub(crate) async fn vpn_status<'a>(
|
||||||
|
client: State<'a, Arc<Client>>,
|
||||||
|
) -> Result<VpnStatus, ServerApiError> {
|
||||||
|
client.status().await
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tauri::command]
|
||||||
|
pub(crate) async fn vpn_connect<'a>(
|
||||||
|
server: String,
|
||||||
|
cookie: String,
|
||||||
|
client: State<'a, Arc<Client>>,
|
||||||
|
) -> Result<(), ServerApiError> {
|
||||||
|
client.connect(server, cookie).await
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tauri::command]
|
||||||
|
pub(crate) async fn vpn_disconnect<'a>(
|
||||||
|
client: State<'a, Arc<Client>>,
|
||||||
|
) -> Result<(), ServerApiError> {
|
||||||
|
client.disconnect().await
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tauri::command]
|
||||||
|
pub(crate) async fn saml_login(
|
||||||
|
binding: SamlBinding,
|
||||||
|
request: String,
|
||||||
|
app_handle: AppHandle,
|
||||||
|
) -> tauri::Result<Option<AuthData>> {
|
||||||
|
let ua = "PAN GlobalProtect";
|
||||||
|
let clear_cookies = false;
|
||||||
|
auth::saml_login(
|
||||||
|
AuthRequest::new(binding, request),
|
||||||
|
ua,
|
||||||
|
clear_cookies,
|
||||||
|
&app_handle,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
}
|
@ -3,52 +3,16 @@
|
|||||||
windows_subsystem = "windows"
|
windows_subsystem = "windows"
|
||||||
)]
|
)]
|
||||||
|
|
||||||
use auth::{AuthData, AuthRequest, SamlBinding};
|
|
||||||
use env_logger::Env;
|
use env_logger::Env;
|
||||||
use gpcommon::{Client, ServerApiError, VpnStatus};
|
use gpcommon::{Client, VpnStatus};
|
||||||
use log::warn;
|
use log::warn;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use tauri::{AppHandle, Manager, State};
|
use tauri::Manager;
|
||||||
use tauri_plugin_log::LogTarget;
|
use tauri_plugin_log::LogTarget;
|
||||||
|
|
||||||
mod auth;
|
mod auth;
|
||||||
|
mod commands;
|
||||||
#[tauri::command]
|
|
||||||
async fn vpn_status<'a>(client: State<'a, Arc<Client>>) -> Result<VpnStatus, ServerApiError> {
|
|
||||||
client.status().await
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tauri::command]
|
|
||||||
async fn vpn_connect<'a>(
|
|
||||||
server: String,
|
|
||||||
cookie: String,
|
|
||||||
client: State<'a, Arc<Client>>,
|
|
||||||
) -> Result<(), ServerApiError> {
|
|
||||||
client.connect(server, cookie).await
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tauri::command]
|
|
||||||
async fn vpn_disconnect<'a>(client: State<'a, Arc<Client>>) -> Result<(), ServerApiError> {
|
|
||||||
client.disconnect().await
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tauri::command]
|
|
||||||
async fn saml_login(
|
|
||||||
binding: SamlBinding,
|
|
||||||
request: String,
|
|
||||||
app_handle: AppHandle,
|
|
||||||
) -> tauri::Result<Option<AuthData>> {
|
|
||||||
let ua = "PAN GlobalProtect";
|
|
||||||
let clear_cookies = false;
|
|
||||||
auth::saml_login(
|
|
||||||
AuthRequest::new(binding, request),
|
|
||||||
ua,
|
|
||||||
clear_cookies,
|
|
||||||
&app_handle,
|
|
||||||
)
|
|
||||||
.await
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
struct StatusPayload {
|
struct StatusPayload {
|
||||||
@ -90,10 +54,10 @@ fn main() {
|
|||||||
)
|
)
|
||||||
.setup(setup)
|
.setup(setup)
|
||||||
.invoke_handler(tauri::generate_handler![
|
.invoke_handler(tauri::generate_handler![
|
||||||
vpn_status,
|
commands::vpn_status,
|
||||||
vpn_connect,
|
commands::vpn_connect,
|
||||||
vpn_disconnect,
|
commands::vpn_disconnect,
|
||||||
saml_login,
|
commands::saml_login
|
||||||
])
|
])
|
||||||
.run(tauri::generate_context!())
|
.run(tauri::generate_context!())
|
||||||
.expect("error while running tauri application");
|
.expect("error while running tauri application");
|
||||||
|
Loading…
Reference in New Issue
Block a user