execute(); $rules = (new GetUfwRulesAction())->execute(); return Inertia::render('Firewall/Index', compact('status', 'rules')); } public function toggle(ToggleFirewallRequest $request): RedirectResponse { $enable = (bool) $request->validated('enabled'); (new ToggleUfwAction())->execute($enable); session()->flash('success', 'Firewall ' . ($enable ? 'enabled' : 'disabled') . ' successfully.'); return redirect()->route('firewall.index'); } public function store(CreateFirewallRuleRequest $request): RedirectResponse { $validated = $request->validated(); $spec = (new BuildUfwRuleSpecAction())->execute( strtolower($validated['direction']), strtolower($validated['protocol']), trim($validated['ip']), trim($validated['to']), (int) $validated['port'] ); if ($validated['type'] === 'allow') { (new AddUfwRuleAction())->execute($spec); } else { (new AddUfwDenyRuleAction())->execute($spec); } session()->flash('success', 'Rule ' . $validated['type'] . 'ed successfully.'); return redirect()->route('firewall.index'); } public function destroy(string $id): RedirectResponse { (new DeleteUfwRuleAction())->execute($id); session()->flash('success', 'Rule deleted successfully.'); return redirect()->route('firewall.index'); } }