Skip to main content

Mountain/Binary/Build/TlsCommands/
tls_delete_cert.rs

1//! `tls_delete_cert` Tauri command - currently aliased to
2//! `renew_certificate` (regenerates instead of removing). TODO:
3//! add a real `CertificateManager::delete_certificate` so the
4//! cache entry actually disappears.
5
6use std::sync::{Arc, Mutex};
7
8use tauri::{AppHandle, Manager};
9
10use crate::{Binary::Build::CertificateManager::CertificateManager, dev_log};
11
12#[tauri::command]
13pub async fn tls_delete_cert(app_handle:AppHandle, hostname:String) -> Result<String, String> {
14	dev_log!("security", "deleting certificate for {}", hostname);
15
16	let state = app_handle
17		.try_state::<Arc<Mutex<CertificateManager>>>()
18		.ok_or("Certificate manager not found")?;
19
20	let cert_manager = state.clone();
21
22	{
23		let mut manager = cert_manager.lock().map_err(|e| format!("Failed to acquire lock: {}", e))?;
24
25		let _result = manager.renew_certificate(&hostname);
26	}
27
28	Ok(format!("Certificate deleted for {}", hostname))
29}