+
+function auteur_reset_password($id_auteur, $erreurs = array()) {
+ $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
+ $config = auteurs_edit_config($auteur);
+
+ if ($config['edit_pass']) {
+ if ($email = auteur_regenerer_identifiants($id_auteur)) {
+ $erreurs['message_ok'] = _T('message_nouveaux_identifiants_ok', array('email' => $email));
+ $erreurs['message_erreur'] = '';
+ } elseif ($email === false) {
+ $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_envoi');
+ } else {
+ $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
+ }
+ } else {
+ $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
+ }
+
+ return $erreurs;
+}
+
+/**
+ * Renvoyer des identifiants
+ * @param int $id_auteur
+ * @param bool $notifier
+ * @param array $contexte
+ * @return string
+ */
+function auteur_regenerer_identifiants($id_auteur, $notifier=true, $contexte = array()) {
+ if ($id_auteur){
+ $set = array();
+ include_spip('inc/access');
+ $set['pass'] = creer_pass_aleatoire();
+
+ include_spip('action/editer_auteur');
+ auteur_modifier($id_auteur,$set);
+
+ $row = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
+ include_spip('inc/filtres');
+ if ($notifier
+ and $row['email']
+ and email_valide($row['email'])
+ and trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')){
+ // envoyer l'email avec login/pass
+ $c = array(
+ 'id_auteur' => $id_auteur,
+ 'nom' => $row['nom'],
+ 'mode' => $row['statut'],
+ 'email' => $row['email'],
+ 'pass' => $set['pass'],
+ );
+ // on merge avec les champs fournit en appel, qui sont passes au modele de notification donc
+ $contexte = array_merge($contexte, $c);
+ $message = recuperer_fond($fond, $contexte);
+ include_spip("inc/notifications");
+ notifications_envoyer_mails($row['email'],$message);
+
+ return $row['email'];
+ }
+
+ return false;
+
+ }
+
+ return '';
+}
\ No newline at end of file