vpnManager = $vpnManager; } public function showCredentialsForm() { $status = $this->vpnManager->getVpnStatus(); return view('vpn.credentials', compact('status')); } public function updateCredentials(Request $request) { $validator = Validator::make($request->all(), [ 'username' => 'required|string', 'password' => 'required|string', 'server' => 'required|string', ]); if ($validator->fails()) { return redirect()->back() ->withErrors($validator) ->withInput(); } $success = $this->vpnManager->updateCredentials( $request->username, $request->password, $request->server ); if ($success) { return redirect()->back()->with('success', 'Credenziali VPN aggiornate con successo!'); } else { return redirect()->back()->with('error', 'Errore nell\'aggiornamento delle credenziali VPN.'); } } public function getStatus() { $status = $this->vpnManager->getVpnStatus(); $lastUpdate = $this->vpnManager->getLastUpdate(); return response()->json([ 'status' => $status, 'last_update' => $lastUpdate ]); } public function connect() { try { $result = $this->vpnManager->connectVpn(); if ($result) { return response()->json(['success' => true, 'message' => 'Connessione VPN avviata']); } else { return response()->json(['success' => false, 'message' => 'Errore nella connessione VPN']); } } catch (\Exception $e) { return response()->json(['success' => false, 'message' => 'Errore: ' . $e->getMessage()]); } } public function disconnect() { try { $result = $this->vpnManager->disconnectVpn(); if ($result) { return response()->json(['success' => true, 'message' => 'Disconnessione VPN avviata']); } else { return response()->json(['success' => false, 'message' => 'Errore nella disconnessione VPN']); } } catch (\Exception $e) { return response()->json(['success' => false, 'message' => 'Errore: ' . $e->getMessage()]); } } public function showManagementPage() { $status = $this->vpnManager->getVpnStatus(); $lastUpdate = $this->vpnManager->getLastUpdate(); return view('vpn.management', compact('status', 'lastUpdate')); } }