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'));
}
}