'5poubelle'","pass<>''"));
}
elseif ($p=_request('p')) {
$p = preg_replace(',[^0-9a-f.],i','',$p);
if ($p AND $id_auteur = sql_getfetsel('id_auteur','spip_auteurs',array('cookie_oubli='.sql_quote($p),"statut<>'5poubelle'","pass<>''")))
$valeurs['_hidden'] = '';
}
if ($id_auteur){
$valeurs['id_auteur'] = $id_auteur; // a toutes fins utiles pour le formulaire
}
else {
$valeurs['_hidden'] = _T('pass_erreur_code_inconnu');
$valeurs['editable'] = false; // pas de saisie
}
return $valeurs;
}
/**
* Verification de la saisie du mot de passe.
* On verifie qu'un mot de passe est saisi, et que sa longuer est suffisante
* Ce serait le lieu pour verifier sa qualite (caracteres speciaux ...)
*
* @param int $id_auteur
*/
function formulaires_mot_de_passe_verifier_dist($id_auteur=null){
$erreurs = array();
if (!_request('oubli'))
$erreurs['oubli'] = _T('info_obligatoire');
else if (strlen(_request('oubli')) < 6)
$erreurs['oubli'] = _T('info_passe_trop_court');
return $erreurs;
}
/**
* Modification du mot de passe d'un auteur.
* Utilise le cookie d'oubli fourni en url ou l'argument du formulaire pour identifier l'auteur
*
* @param int $id_auteur
*/
function formulaires_mot_de_passe_traiter_dist($id_auteur=null){
$message = '';
include_spip('base/abstract_sql');
if ($id_auteur=intval($id_auteur)) {
$row = sql_fetsel('id_auteur,login','spip_auteurs',array('id_auteur='.intval($id_auteur),"statut<>'5poubelle'","pass<>''"));
}
elseif ($p=_request('p')) {
$p = preg_replace(',[^0-9a-f.],i','',$p);
$row = sql_fetsel('id_auteur,login,source','spip_auteurs',array('cookie_oubli='.sql_quote($p),"statut<>'5poubelle'","pass<>''"));
}
if ($row
&& ($id_auteur = $row['id_auteur'])
&& ($oubli = _request('oubli'))) {
include_spip('action/editer_auteur');
auteurs_set($id_auteur, array('pass'=>$oubli,'cookie_oubli'=>''));
$login = $row['login'];
$message = "" . _T('pass_nouveau_enregistre') . "".
" " . _T('pass_rappel_login', array('login' => $login));
}
return array('message_ok'=>$message);
}
?>