[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / prive / formulaires / login.php
index fc46336..b59ed91 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2017                                                *
+ *  Copyright (c) 2001-2019                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -110,7 +110,7 @@ function formulaires_login_charger_dist($cible = '', $login = '', $prive = null)
 
        // Si on est connecte, appeler traiter()
        // et lancer la redirection si besoin
-       if (!$valeurs['editable'] and $loge) {
+       if (!$valeurs['editable'] and $loge and _request('formulaire_action')!=='login') {
                $traiter = charger_fonction('traiter', 'formulaires/login');
                $res = $traiter($cible, $login, $prive);
                $valeurs = array_merge($valeurs, $res);
@@ -118,7 +118,7 @@ function formulaires_login_charger_dist($cible = '', $login = '', $prive = null)
                if (isset($res['redirect']) and $res['redirect']) {
                        include_spip('inc/headers');
                        # preparer un lien pour quand redirige_formulaire ne fonctionne pas
-                       $m = redirige_formulaire($res['redirect']);
+                       $m = redirige_formulaire($res['redirect'], '', 'ajaxform');
                        $valeurs['_deja_loge'] = inserer_attribut(
                                '<a>' . _T('login_par_ici') . "</a>$m",
                                'href',
@@ -316,16 +316,17 @@ function formulaires_login_traiter_dist($cible = '', $login = '', $prive = null)
 
        // Si on est connecte, envoyer vers la destination
        if ($cible and ($cible != self('&')) and ($cible != self())) {
-               if (!headers_sent() and !isset($_GET['var_mode'])) {
-                       include_spip('inc/headers');
-                       $res['redirect'] = $cible;
-               } else {
-                       $res['message_ok'] = inserer_attribut(
-                               '<a>' . _T('login_par_ici') . '</a>',
-                               'href',
-                               $cible
-                       );
-               }
+               $res['redirect'] = $cible;
+               $res['message_ok'] = inserer_attribut(
+                       '<a>' . _T('login_par_ici') . '</a>',
+                       'href',
+                       $cible
+               );
+       }
+
+       // avant de rediriger il faut mettre a jour les sessions sur le disque si on a charge une session
+       if (function_exists('terminer_actualiser_sessions')) {
+               terminer_actualiser_sessions();
        }
 
        return $res;