| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Services\VpnManager;
- use Illuminate\Support\Facades\Validator;
- class VpnController extends Controller
- {
- private $vpnManager;
- public function __construct(VpnManager $vpnManager)
- {
- $this->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'));
- }
- }
|