X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Faction%2Flogout.php;fp=www%2Fecrire%2Faction%2Flogout.php;h=48a6a4bbcb6e16759039ab9fa20d20ccc3ba9aa0;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=97adb057d2ab4763ad47ac877baa0f08b0394282;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/ecrire/action/logout.php b/www/ecrire/action/logout.php index 97adb057..48a6a4bb 100644 --- a/www/ecrire/action/logout.php +++ b/www/ecrire/action/logout.php @@ -3,77 +3,91 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2016 * + * Copyright (c) 2001-2017 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -if (!defined('_ECRIRE_INC_VERSION')) return; +/** + * Action pour déconnecter une personne authentifiée + * + * @package SPIP\Core\Authentification + */ -include_spip('inc/cookie'); +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} +include_spip('inc/cookie'); /** - * Se deloger - * Pour eviter les CSRF on passe par une etape de confirmation si pas de jeton fourni - * avec un autosubmit js pour ne pas compliquer l'experience utilisateur + * Se déloger + * + * Pour éviter les CSRF on passe par une étape de confirmation si pas de jeton fourni + * avec un autosubmit js pour ne pas compliquer l'expérience utilisateur * - * http://doc.spip.org/@action_logout_dist + * Déconnecte l'utilisateur en cours et le redirige sur l'URL indiquée par + * l'argument de l'action sécurisée, et sinon sur la page d'accueil + * de l'espace public. * */ -function action_logout_dist() -{ - $logout =_request('logout'); +function action_logout_dist() { + $logout = _request('logout'); $url = securiser_redirect_action(_request('url')); // cas particulier, logout dans l'espace public - if ($logout == 'public' AND !$url) + if ($logout == 'public' and !$url) { $url = url_de_base(); + } // seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee) - if (isset($GLOBALS['visiteur_session']['id_auteur']) - AND is_numeric($GLOBALS['visiteur_session']['id_auteur']) + if (isset($GLOBALS['visiteur_session']['id_auteur']) + and is_numeric($GLOBALS['visiteur_session']['id_auteur']) // des sessions anonymes avec id_auteur=0 existent, mais elle n'ont pas de statut : double check - AND isset($GLOBALS['visiteur_session']['statut'])) { + and isset($GLOBALS['visiteur_session']['statut']) + ) { // il faut un jeton pour fermer la session (eviter les CSRF) if (!$jeton = _request('jeton') - OR !verifier_jeton_logout($jeton,$GLOBALS['visiteur_session'])){ + or !verifier_jeton_logout($jeton, $GLOBALS['visiteur_session']) + ) { $jeton = generer_jeton_logout($GLOBALS['visiteur_session']); - $action = generer_url_action("logout","jeton=$jeton"); - $action = parametre_url($action,'logout',_request('logout')); - $action = parametre_url($action,'url',_request('url')); + $action = generer_url_action("logout", "jeton=$jeton"); + $action = parametre_url($action, 'logout', _request('logout')); + $action = parametre_url($action, 'url', _request('url')); include_spip("inc/minipres"); include_spip("inc/filtres"); - $texte = bouton_action(_T('spip:icone_deconnecter'),$action); + $texte = bouton_action(_T('spip:icone_deconnecter'), $action); $texte = "