if ($_GET) { if (!isset($_GET['Id'])) { header("Location: index.php"); die; } $Id = addslashes($_GET['Id']); /** * Verificar se o utilizador e dono do servidor. */ if (!isServerOwnedById($Id, $User->getId())) { // Redirect de pagina caso não seja dono do servidor. header("Location: index.php"); die; } $Servidor = new Servidor($Id, $conn); $Servidor->getInfo(); $Servidor->getFullStatus(); updateRunningServers($User->getId()); } else { header("Location: index.php"); die; } $OldUser = false; if (isset($_SESSION['Old_Id']) && !empty($_SESSION['Old_Id']) && $_SESSION['Id'] != $_SESSION['Old_Id']) { $OldUser = true; try { $OldUserC = new Utilizador($_SESSION['Old_Id'], $conn); $OldUserC->getInfo(); } catch (Exception $e) { $_SESSION['Old_Id'] = ""; $OldUser = false;
/** * Para servidor. * @author João Reis */ function pararServidor($Id) { global $conn; // Tenta Criar instancia do Servidor e parar try { $Server = new Servidor($Id, $conn); $Server->pararServidor(); $Server->setStatus(0); $Server->atualizaInfo(); $Server->getInfo(); return true; } catch (Exception $e) { return false; } }
/** * @author João Reis * Caso o serviço Tmux seja desligado e/ou a sessão estiver desligada passar para false e/ou true para a base de dados aos respetivos servidores * @param $IdUtilizador */ function updateRunningServers($IdUtilizador) { global $conn; $Servidores = array(); $Servidores = getServidoresByIdUtilizador($IdUtilizador); $ServersOn = array(); $ServersOn = getRunningServers(); foreach ($Servidores as $Servidor) { // Atualizar base de dados consuante sessoes do Tmux estiverem ativas ou nao $server = new Servidor($Servidor['Id'], $conn); $server->getInfo(); #$server->getFullStatus(); #$serverUpdate = new Servidor($ServersOn[$]); if ($server->getStatus() == true) { $Ligado = false; if (count($ServersOn)) { foreach ($ServersOn as $ServerOn) { if ($ServerOn == $server->getId()) { $Ligado = true; break; // Dar Break ao foreach ServersOn e continuar o Foreach Servidores. o Servidor continua online } } } // Se nao estiver ligado passar para desligado na base de dados if (!$Ligado) { $server->setStatus(0); $server->atualizaInfo(); } } else { $Ligado = false; if (count($ServersOn)) { foreach ($ServersOn as $ServerOn) { if ($ServerOn == $server->getId()) { // Se o servidor esta aqui significa que esta online mas esta offline na base de dados. Passar servidor para online na base de dados $Ligado = true; break; } } } // Se estiver Ligado entao passar para ligado na base de dados if ($Ligado) { $server->setStatus(1); $server->atualizaInfo(); } } } }