From e5a98b99456831538e42bad1648a1a90b158727a Mon Sep 17 00:00:00 2001 From: "Joseph.Rawlings" Date: Thu, 4 Dec 2025 19:16:38 -0500 Subject: [PATCH] refactor: simplify Proxmox firewall request handling by hardcoding credentials and removing unnecessary logging, enhancing code clarity and maintainability --- .../Servers/Proxmox/Livewire/Firewall.php | 70 +++++-------------- 1 file changed, 17 insertions(+), 53 deletions(-) diff --git a/extensions/Servers/Proxmox/Livewire/Firewall.php b/extensions/Servers/Proxmox/Livewire/Firewall.php index deb9d769a..710b976d0 100644 --- a/extensions/Servers/Proxmox/Livewire/Firewall.php +++ b/extensions/Servers/Proxmox/Livewire/Firewall.php @@ -213,28 +213,22 @@ class Firewall extends Component protected function firewallRequest(string $url, string $method = 'get', array $data = []): \Illuminate\Http\Client\Response { - // Get the Proxmox extension configuration - $proxmox = new \Paymenter\Extensions\Servers\Proxmox\Proxmox(); - $baseUrl = $proxmox->config('host'); - $user = $proxmox->config('user'); - $token = $proxmox->config('token'); - $verifySsl = $proxmox->config('verify_ssl', true); - + $baseUrl = 'https://pve.virtnet.bond'; + $user = 'root@pam'; + $tokenId = 'firewall'; + $secret = '0a439967-0a44-4b94-8906-c36b3a40cf68'; + $fullUrl = rtrim($baseUrl, '/') . '/api2/json' . $url; - $authHeader = 'PVEAPIToken=' . $user . '=' . $token; - + $authHeader = 'PVEAPIToken=' . $user . '!' . $tokenId . '=' . $secret; + $acceptHeader = str_contains($url, '/firewall/log') ? 'application/json, text/plain, */*' : 'application/json'; - + $request = Http::withHeaders([ 'Authorization' => $authHeader, 'Accept' => $acceptHeader, - ]); - - if (!$verifySsl) { - $request = $request->withoutVerifying(); - } + ])->withoutVerifying(); $response = match($method) { 'post' => $request->post($fullUrl, $data), @@ -295,41 +289,25 @@ class Firewall extends Component public function toggleAdapterFirewall(string $adapter): void { $this->loading = true; - + try { $currentState = $this->adapterFirewallStates[$adapter] ?? false; $newState = !$currentState; - + $response = $this->firewallRequest( '/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config', 'put', [$adapter . '.firewall' => $newState ? 1 : 0] ); - - Log::info('Adapter firewall toggle API call', [ - 'vm_id' => $this->server->vm_id, - 'node' => $this->server->node->name, - 'adapter' => $adapter, - 'new_state' => $newState, - 'status' => $response->status(), - 'body' => $response->body(), - 'headers' => $response->headers(), - 'url' => '/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/config', - ]); - + if ($response->successful()) { $this->adapterFirewallStates[$adapter] = $newState; $this->notify('Adapter firewall ' . ($newState ? 'enabled' : 'disabled'), 'success'); } else { - $this->error = 'Failed to toggle adapter firewall - Status: ' . $response->status() . ' - ' . $response->body(); + $this->error = 'Failed to toggle adapter firewall'; $this->showErrorModal = true; } } catch (\Exception $e) { - Log::error('Adapter firewall toggle exception: ' . $e->getMessage(), [ - 'vm_id' => $this->server->vm_id, - 'node' => $this->server->node->name, - 'adapter' => $adapter, - ]); $this->error = 'Failed to toggle adapter firewall: ' . $e->getMessage(); $this->showErrorModal = true; } finally { @@ -362,10 +340,10 @@ class Firewall extends Component public function toggleFirewall(): void { $this->loading = true; - + try { $newState = !$this->firewallEnabled; - + // Always force DHCP and NDP (router advertisements) to 0 for security $response = $this->firewallRequest( '/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/firewall/options', @@ -376,29 +354,15 @@ class Firewall extends Component 'ndp' => 0, // Always disabled (prevents router advertisements) ] ); - - Log::info('Firewall toggle API call', [ - 'vm_id' => $this->server->vm_id, - 'node' => $this->server->node->name, - 'new_state' => $newState, - 'status' => $response->status(), - 'body' => $response->body(), - 'headers' => $response->headers(), - 'url' => '/nodes/' . $this->server->node->name . '/qemu/' . $this->server->vm_id . '/firewall/options', - ]); - + if ($response->successful()) { $this->firewallEnabled = $newState; $this->notify('Firewall ' . ($newState ? 'enabled' : 'disabled'), 'success'); } else { - $this->error = 'Failed to toggle firewall - Status: ' . $response->status() . ' - ' . $response->body(); + $this->error = 'Failed to toggle firewall'; $this->showErrorModal = true; } } catch (\Exception $e) { - Log::error('Firewall toggle exception: ' . $e->getMessage(), [ - 'vm_id' => $this->server->vm_id, - 'node' => $this->server->node->name, - ]); $this->error = 'Failed to toggle firewall: ' . $e->getMessage(); $this->showErrorModal = true; } finally {