current_auth_mode == "sso" and $session_gepi->auth_sso == "cas") {
$session_gepi->close(0);
$session_gepi->logout_cas();
// On efface le dossier temporaire
if ($temp_perso){
foreach (glob($temp_perso."/*") as $filename) {
if (is_file($filename) && (!strstr($filename, 'index.html'))) {
@unlink ($filename);
// 'signature' est un dossier et actuellement on ne supprime pas les dossiers au logout.
// De la même façon, le dossier contenant les PDF d'archivage de bulletins n'est pas supprimé automatiquement.
// Il faut passer par la Gestion des dossiers temporaires
}
}
unset ($filename);
}
die();
}
if (getSettingValue('gepiEnableIdpSaml20') == 'yes' && (!isset($_REQUEST['idploggedout']))) {
include_once(dirname(__FILE__).'/lib/simplesaml/lib/_autoload.php');
$auth = new SimpleSAML_Auth_GepiSimple();
if ($auth->isAuthenticated()) {
//on fait le logout de session avec simplesaml en tant que fournisseur d'identité. Ça va déconnecter uniqement les services associés.
//Si gepi n'est pas connecté en local, il faut revenir à la page de logout et passer à la déconnexion de gepi
$logout_return_url = $_SERVER['REQUEST_URI'];
if (strpos($logout_return_url, '?')) {
$logout_return_url .= '&';
} else {
$logout_return_url .= '?';
}
$logout_return_url .= 'idploggedout=done';
header("Location:./lib/simplesaml/www/saml2/idp/SingleLogoutService.php?ReturnTo=".urlencode($logout_return_url));
exit();
}
}
//print_r($session_gepi);die;
//$message = "
Déconnexion
";
$titre= "Déconnexion";
$message = "";
if (!isset($_GET['auto']) || !$_GET['auto']) {
$session_gepi->close(0);
$message .= "Vous avez fermé votre session GEPI.";
//$message .= "Ouvrir une nouvelle session.";
} else if ($_GET['auto']==2) {
$session_gepi->close($_GET['auto']);
$message .= "Vous avez été déconnecté. Il peut s'agir d'une mauvaise configuration de la variable \$GepiPath dans le fichier \"connect.inc.php\"
Aide à la configuration de \$GepiPath";
//$message .= "Ouvrir une nouvelle session.";
} else if ($_GET['auto']==3) {
$date_fermeture = date("d\/m\/Y\ \à\ H\ \h\ i");
$debut_session = urldecode($_GET['debut_session']);
$sql = "select now() > END TIMEOUT from log where SESSION_ID = '" . $_GET['session_id'] . "' and START = '" . $debut_session . "'";
if (sql_query1($sql)) {
// Le temps d'inactivité est dépassé
$session_gepi->close($_GET['auto']);
$message .= "Votre session GEPI a expiré car le temps maximum (".getSettingValue("sessionMaxLength")." minutes) sans échange avec le serveur a été atteint.
Date et heure de la déconnexion : ".$date_fermeture."";
//$message .= "Ouvrir une nouvelle session.";
} else {
$message .= "Fermeture d'une fenêtre GEPI
";
$titre= "Fermeture d'une fenêtre GEPI";
/*
$message .= "A l'heure ci-dessous, une fenêtre GEPI s'est automatiquement fermée par mesure de sécurité car
le temps maximum d'inactivité (".getSettingValue("sessionMaxLength")." minutes) avait été atteint.
Heure et date de fermeture de la fenêtre : ".$date_fermeture;
*/
$message .= "A l'heure ci-dessous, une fenêtre GEPI s'est automatiquement fermée par mesure de sécurité. Le temps maximum de ".getSettingValue("sessionMaxLength")." minutes sans échange avec le serveur a sans doute été atteint.
Heure et date de fermeture de la fenêtre : ".$date_fermeture;
//$message .= "Ouvrir une nouvelle session.";
}
} else {
$session_gepi->close($_GET['auto']);
$message .= "Votre session GEPI a expiré, ou bien vous avez été déconnecté.
";
if ((getSettingValue("disable_login"))=='yes') {
$message .= "
Le site est momentanément inaccessible. Veuillez nous excuser de ce dérangement !";
}
//$message .= "Ouvrir une nouvelle session.";
}
if(getSettingValue('temporary_dir_no_cleaning')!='yes') {
// On efface le dossier temporaire
if ($temp_perso) {
foreach (glob($temp_perso."/*") as $filename) {
if (is_file($filename) && (!strstr($filename, 'index.html'))) {
// 'signature' est un dossier et actuellement on ne supprime pas les dossiers au logout.
// De la même façon, le dossier contenant les PDF d'archivage de bulletins n'est pas supprimé automatiquement.
// Il faut passer par la Gestion des dossiers temporaires
@unlink ($filename);
}
}
unset ($filename);
}
}
// Ajout pour le multisite
unset($_COOKIE['RNE']);
setcookie('RNE', 'unset', null, '/'); // permet d'effacer le contenu du cookie.
include('./templates/origine/logout_template.php');
?>