[SPIP Zone] modification du processus de login

Salut,
Je souhaite modifier le processus de login, pour rediriger certains visiteurs vers une page spécifique ( lors de la première connection ).
J'ai surcharger dans mon petit plugin le fichier balise/login_public.php

et modifier la fonction login_explicite sur la fin de la fonction

je me demande est-ce bien a ce niveau qu'il faut redirigé, une fois que l'utilisateur est loggué ?

le code modifié :

// http://doc.spip.org/@login_explicite
function login_explicite($login, $cible) {
    global $auteur_session;

    $action = str_replace('&', '&', self());
    if ($cible) {
        $cible = parametre_url($cible, 'var_erreur', '', '&');
        $cible = parametre_url($cible, 'var_login', '', '&');
    } else {
        if (ereg("[?&]url=([^&]*)", $action, $m))
            $cible = rawurldecode($m[1]);
        else
            $cible = _DIR_RESTREINT ;
    }

  verifier_visiteur();

    // Si on est connecte, envoyer vers la destination
    // sauf si on y est deja
///////////////////////////// code modifié ///////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
          //$row = spip_abstract_fetsel('*', 'spip_auteurs', "login=" . _q($login));
          $row = spip_fetch_array(spip_query_db("select * from spip_auteurs where login=" . _q($login)));

          $pass=$row['pass'];
            $alea_actuel=$row['alea_actuel'];

          //var_dump($row);
           // print ("<br/>*".$alea_actuel."*".md5($login.$alea_actuel)." - ".$pass."*");

          //donc ici on va modifier si on a un mot de passe idem au login
        if($auteur_session['statut']=='6forum'){

            $row = spip_abstract_fetsel('*', 'spip_auteurs', "login=" . _q($login));
            $pass=$row['pass'];
            $alea_actuel=$row['alea_actuel'];
          //var_dump($row);
            //die("*".md5($login.$alea_actuel)." - ".$pass."*");

            if(md5($login.$alea_actuel)==$pass){
              //on a le même pass que le login
              $cible="spip.php?page=modifmdp";
              redirect_login($cible);
            } else redirect_login($cible);

         }else{

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
         if ($auteur_session AND ($auteur_session['statut']=='0minirezo' OR $auteur_session['statut']=='1comite')) {

           $auth = charger_fonction('auth','inc');
           $auth = $auth();
             if ($auth==="") {
                    if ($cible != $action) {
                        redirect_login($cible);
                    } else
                        return ''; # on est arrive on bon endroit, et logue'...
           }
        }

  //on est pas identifié
    return login_pour_tous($login ? $login : _request('var_login'), $cible, $action);
}

//yoann
function redirect_login($cible){
  if (!headers_sent() AND !$_GET['var_mode']) {
        include_spip('inc/headers');
        redirige_par_entete($cible);
    } else {
        include_spip('inc/minipres');
        return http_href($cible, _T('login_par_ici'));
    }
}

Yoann NOGUES (zerax) a écrit :

Salut,
Je souhaite modifier le processus de login, pour rediriger certains visiteurs vers une page spécifique ( lors de la première connection ).
  

bon je mettais planter completement ....
la lecture de : AuthentificationDansSpip
m'a bien aidé :slight_smile:

et bien dans mon cas je n'ai fait que rajouter en bas du fichier action/cookie

///////////////////////////////////////////////////////////////////////
//dans le cas des visiteurs si c'est leurs première connection ( login = mdp )
          //donc ici on va modifier si on a un mot de passe idem au login
        if($row_auteur['statut']=='6forum'){
            if(md5($row_auteur['alea_actuel'].$row_auteur['login'])==$row_auteur['pass']){
              //on a le même pass que le login
              $redirect="spip.php?page=modifmdp";

            }
        }
///////////////////////////////////////////////////////////////////////

//on redirige dans le cas général ( fonctionnement normal )
  redirige_par_entete($redirect, true);
}
?>

oups résolu