LOGIN_PUBLIC : contrôle de l'envoi du mot de passe si statut = A confirmer

Bonjour à tous et bonne année,

Je viens de finaliser un site pour ma copropriété avec un accès restreint (formulaire personnalisé) qui fonctionne bien, du moins je le pensais, jusqu’à ce matin.

En effet, je viens de relever dans l’interface d’administration, qu’un nouveau copropriétaire s’était inscrit et qu’il avait UN STATUT « VALIDE » AU LIEU DE « A CONFIRMER » !. Je lui ai transmis un e-mail pour savoir quelle était la manip qu’il avait faite. Il m’a répondu qu’après s’être inscrit normalement, il a tout de suite cliqué sur « mot de passe oublié » et il a obtenu un e-mail du type :
« Bonjour xxxx,
Rappel de votre mot de passe
Vous pourrez choisir un nouveau mot de passe en cliquant le lien suivant
http://nomsite.fr/?page=inscription2_confirmation&id=99&cle=999999&mode=conf
Rappel : votre identifiant est : xxxxxx. »

Je suis censé d’abord vérifier les infos que les propriétaires me fournissent (no de lot, bâtiment, nom + prénom) AVANT de leur délivrer leur code d’accès.

COMMENT EVITER QUE SPIP (VIA LA BALISE #LOGIN_PUBLIC) PUISSE ENVOYER A UN NOUVEAU INSCRIT, CE TYPE DE MESSAGE SI LE STATUT EST « VISITEUR » + « A CONFIRMER » (ce qui n’est pas du tout un comportement normal) ?.

Quelqu’un pourrait-il m’aider à résoudre cette faille ?.

Merci par avance.

Bruno010


J’utilise la version gratuite de SPAMfighter pour utilisateurs privés.
14152 e-mails spam ont été bloqués jusqu’à maintenant.
Les utilisateurs payant n’ont pas ce message dans leurs e-mails.
Essayez SPAMfighter gratuitement maintenant!

Touati MAHI (Free <tmahi <at> free.fr> writes:

COMMENT EVITER QUE SPIP (VIA LA BALISE #LOGIN_PUBLIC) PUISSE ENVOYER A UN
NOUVEAU INSCRIT, CE TYPE DE MESSAGE SI LE STATUT EST "VISITEUR" + "A
CONFIRMER" (ce qui n'est pas du tout un comportement normal) ?.

houla... pas crier si fort...

tu peux, dans ecrire/action/pass.php après le bloc (ligne 51) :

if ($row['statut'] == '5poubelle' OR $row['pass'] == '')
return _T('pass_erreur_acces_refuse');

ajouter :

if ($row['statut'] == 'nouveau')
return _T('pass_erreur_acces_attente');

il te restera à définir dans chacun de tes fichiers de langue une entrée pour
pass_erreur_acces_attente

par exemple pour la version _fr :

'pass_erreur_acces_attente' => '<b>Erreur :</b> vous n\'avez pas encore
acc&egrave;s &agrave; ce site.',