winlog/admin/stop.php
2016-11-25 16:09:33 +01:00

55 lines
1.7 KiB
PHP

<?php
// Ce script récupère une action (shutdown ou restart) et un tableau json de machines
// Il émet une requête POST à $url_stop pour executer le shutdown sur le domaine
include_once('libhome.php');
include_once('winlog_admin_conf.php');
include_once('client_http.php');
$username = phpCAS::getUser();
$admin = false; // booleen : utilisateur administrateur ?
$supervis = false; // booleen : utilisateur superviseur ?
if (in_array($username, $administrateurs)) {
$admin = true;
}
if (in_array($username, $superviseurs)) {
$supervis = true;
}
// on quitte immédiatement si non autorisé
if (!$supervis and !$admin) {
header("Location: $winlog_url");
exit();
}
$act = "";
$logout = "fermer la session";
$logout_salle = "fermer toutes les sessions";
$eteindre = "éteindre cette machine";
$eteindre_salle = "éteindre toute la salle";
$restart = "redémarrer cette machine";
$restart_salle = "redémarrer toute la salle";
$action_logout = array($logout, $logout_salle);
$action_stop = array($eteindre, $eteindre_salle);
$action_restart = array($restart, $restart_salle);
$action = $_POST["stop"];
$host_json = $_POST["host"]; // on récupère une chaîne de caractères représentant un tableau json
$hosts = json_decode($host_json);
// on choisit la valeur de l'option à passer à la commande shutdown sur Ghost
if (in_array($action, $action_logout)) {
$act = "l";
}
if (in_array($action, $action_stop)) {
$act = "s";
}
if (in_array($action, $action_restart)) {
$act = "r";
}
if ($act != "") {
foreach ($hosts as $host) {
PostURL($url_stop, array('act'=>$act, 'host'=>$host));
}
}
header('Location: salles_live.php');
?>