mirror of
https://github.com/mivodev/mivo.git
synced 2026-01-26 05:25:42 +07:00
48 lines
1.3 KiB
PHP
48 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Core\Controller;
|
|
use App\Models\Config;
|
|
use App\Libraries\RouterOSAPI;
|
|
|
|
class SystemController extends Controller
|
|
{
|
|
// Reboot Router
|
|
public function reboot($session)
|
|
{
|
|
$this->executeCommand($session, '/system/reboot');
|
|
}
|
|
|
|
// Shutdown Router
|
|
public function shutdown($session)
|
|
{
|
|
$this->executeCommand($session, '/system/shutdown');
|
|
}
|
|
|
|
private function executeCommand($session, $command)
|
|
{
|
|
$configModel = new Config();
|
|
$config = $configModel->getSession($session);
|
|
if (!$config) {
|
|
header('Content-Type: application/json');
|
|
echo json_encode(['error' => 'Session not found']);
|
|
return;
|
|
}
|
|
|
|
$API = new RouterOSAPI();
|
|
if ($API->connect($config['ip_address'], $config['username'], $config['password'])) {
|
|
$API->write($command);
|
|
// Wait for command to be processed before cutting connection
|
|
sleep(2);
|
|
$API->disconnect();
|
|
|
|
header('Content-Type: application/json');
|
|
echo json_encode(['success' => true]);
|
|
} else {
|
|
header('Content-Type: application/json');
|
|
echo json_encode(['error' => 'Connection failed']);
|
|
}
|
|
}
|
|
}
|