Relancer les inscriptions en attente
Suite à #4073 (closed) et les révisions associées, les admins ont accès à la liste des auteurs dont l'inscription est en attente de validation, ce qui est très bien. Mais, on ne peut pas relancer le mail d'inscription à un auteur ou à tous ceux en attente, ce qui est moins bien.
En cherchant comment relancer une dizaine d'auteurs en attente (à cause d'un problème passager d'envoi d'email), je me suis rendu compte que c'est une situation dont il n'est pas facile de se tirer. -En effet, les auteurs en questions ne peuvent pas tenter de se réinscrire avec le même email car cela génère une erreur dans le form d'inscription (normal ça ferait doublon). Je vais revenir sur ce point plus bas.-
J'ai donc cherché une solution pour relancer tous ces auteurs en attente et je suis tombé sur r17837 qui introduit l'option force_nouveau
à la fonction action_inscrire_auteur_dist()
. À noter que cette option n'est utilisée nul part dans le core, ni sur les plugins de la zone, c'est donc l'occasion de s'en servir :) J'en suis arrivé à ce code très simple qui permet de relancer tous les auteurs en attente de validation, statut = nouveau donc :
include_spip('action/inscrire_auteur');
$nouveaux = sql_allfetsel('prefs, email, nom', 'spip_auteurs', "statut='nouveau'");
while ($row = array_pop($nouveaux)) {
action_inscrire_auteur_dist($row['prefs'], $row['email'], $row['nom'], array('force_nouveau' => true));
}
Je pense que ça serait pas mal d'en faire une action pour relancer un auteur précis, ou tous les auteurs en attente si pas d'id_auteur passé en argument, puis d'ajouter un bouton action dans la colonne de navigation des pages ?exec=auteurs
et ?exec=auteur&id_auteur=
si l'auteur en cours a pour statut nouveau
.
-Pour en revenir au formulaire d'inscription, il serait malin (à vérifier) que celui-ci utilise l'option force_nouveau
quand un auteur dont le statut est nouveau
tente de s'inscrire une nouvelle fois avec le même email, plutôt que de lui envoyer une erreur parce que son mail est déjà présent en base.-
Vos avis sur la question ?