diff --git a/virtweb_backend/src/controllers/nwfilter_controller.rs b/virtweb_backend/src/controllers/nwfilter_controller.rs index 8bda625..bdbbbcb 100644 --- a/virtweb_backend/src/controllers/nwfilter_controller.rs +++ b/virtweb_backend/src/controllers/nwfilter_controller.rs @@ -100,6 +100,13 @@ pub async fn update( /// Delete a network filter pub async fn delete(client: LibVirtReq, path: web::Path) -> HttpResult { + // Prevent deletion of default rules + let network = client.get_single_network_filter(path.uid).await?; + if constants::BUILTIN_NETWORK_FILTER_RULES.contains(&network.name.as_str()) { + return Ok(HttpResponse::ExpectationFailed() + .json("Builtin network filter rules shall not be deleted!")); + } + client.delete_network_filter(path.uid).await?; Ok(HttpResponse::Ok().json("Network deleted"))