function delete_user($login) { $sql = "SELECT source FROM " . TABLE_PREFIX . "_utilisateurs\n\t WHERE login LIKE '{$login}'"; $res = grr_sql_query($sql); $row = grr_sql_row($res, 0); $source = $row[0]; if ($source == 'ext') { // Si l'utilisateur avait été créé automatiquement, on le // supprime // Cf. admin_user.php l99 et l203 $sql = "DELETE FROM " . TABLE_PREFIX . "_utilisateurs WHERE login='******'"; if (grr_sql_command($sql) < 0) { fatal_error(1, "<p>" . grr_sql_error()); } else { grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_mailuser_room WHERE login='******'"); grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_user_area WHERE login='******'"); grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_user_room WHERE login='******'"); grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_useradmin_area WHERE login='******'"); grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_useradmin_site WHERE login='******'"); } // Fin de la session grr_closeSession($_GET['auto']); } // sinon c'est source="local": on le garde et il y a toujours accès // classique login/mot de passe). }
} } if ($message != '') { fatal_error(1, $message); die; } if (grr_resumeSession()) { header("Location: " . htmlspecialchars_decode(page_accueil()) . ""); die; } } else { // L'utilisateur n'a pas été identifié' if (Settings::get("authentification_obli") == 1) { // authentification obligatoire, l'utilisateur est renvoyé vers une page de connexion require_once "include/session.inc.php"; grr_closeSession($_GET['auto']); header("Location:" . LCS_PAGE_AUTHENTIF); } else { header("Location: " . htmlspecialchars_decode(page_accueil()) . ""); } // authentification non obligatoire, l'utilisateur est simple visiteur die; } } } } // Cas d'une authentification Lasso if (Settings::get('sso_statut') == 'lasso_visiteur' || Settings::get('sso_statut') == 'lasso_utilisateur') { require_once SPKITLASSO . '/lassospkit_public_api.inc.php'; if (lassospkit_nameid() == NULL) { // S'il y a eu une erreur et que l'on revient, afficher
function handleSlo($ret) { //error_log("handleSlo"); $r = $this->relayState; if ($this->currentHttpMethod == LASSO_HTTP_METHOD_GET && $this->currentHttpMethod == LASSO_HTTP_METHOD_POST) { $this->headerHtml("SLO endpoint", $r); if ($ret) { echo "Demande de slo échoué: " . strError($ret) . "({$ret})"; } else { echo "Demande de slo réussie"; } echo "Go to <a href='{$r}'>{$r}</a>"; $this->footerHtml(); lassospkit_clean(); grr_closeSession($_GET['auto']); } else { # Specialized $id = lassospkit_userid(); if (isset($id)) { //error_log("Trying to destroy session $id"); chdir(".."); global $dbsys; require_once "./include/config.inc.php"; include "./include/connect.inc.php"; require_once "./include/{$dbsys}.inc.php"; require_once "./include/functions.inc.php"; require_once "./include/session.inc.php"; // See admin_view_connexions.php:67 $sql = "SELECT session_id FROM " . TABLE_PREFIX . "_log\n WHERE login = '******'\n AND end > NOW()"; $res = grr_sql_query($sql); if ($res) { for ($i = 0; $row = grr_sql_row($res, $i); $i++) { $php_session_id = $row[0]; //error_log("Erasing GRR session $php_session_id"); session_id($php_session_id); // delete spkitlasso session if necessary @session_start(); lassospkit_set_nameid(@$_SESSION['lasso_nameid']); lassospkit_clean(); // delete GRR session $auto = 0; grr_closeSession($auto); // Done by grr_closeSession: //session_start(); //session_destroy(); } } } } if ($ret) { error_log("Demande de slo échoué: {$ret}"); } else { //error_log("Demande de slo réussie: $ret"); } return $ret; }
require_once("./include/config.inc.php"); include "./include/connect.inc.php"; include "./include/misc.inc.php"; require_once("./include/$dbsys.inc.php"); require_once("./include/session.inc.php"); require_once("./include/settings.inc.php"); grr_resumeSession(); require_once(SPKITLASSO.'/lassospkit_public_api.inc.php'); require_once('./lasso/delete_user.php'); $defederated = false; if (lassospkit_nameid() != NULL && (getUserName()!='')) { $login = getUserName(); $auto = 0; grr_closeSession($auto); delete_user($login); lassospkit_soap_defederate(); // s'assurer de supprimer toute trace locale lassospkit_clean(); $defederated = true; } //Chargement des valeurs de la table settingS require_once("./include/language.inc.php"); require_once("./include/functions.inc.php"); echo begin_page(getSettingValue("company").get_vocab("deux_points").get_vocab("mrbs"),"no_session");