Problème:
Formulaire de désabonnement. (sur page libre par exemple)
Un utilisateur non connecté peut s'abonner a une newsletter sans problème.
Celui si cherche ensuite a se désabonner. Il renseigne son adresse mail comme demandé.
Systématiquement, l'erreur
Nous n'avons trouvé aucun utilisateur avec cette adresse e-mail.
apparaît. L'utilisateur n'est pas désabonné.
Explication :
Classe TraitementDemandeAbonnement.java
- Systématiquement l'utilisateur est récupéré pour les abonnement/désabonnements via la fonction serviceUser.getByMailAndCode
- Dont une fois avec un code null, une autre avec un code Empty, la derniere avec un code nullable.
- Or, serviceUser.getByMailAndCode demande le mail ET le code de l'utilisateur rempli
- -> Aucun utilisateur, meme celui généré automatiquement, n'a de code vide
- -> La fonction ne retourne jamais rien si le code utilisateur n'est pas renseigné
- -> pour un désabonnement déconnecté, connaître le codeUtilisateur de la personne derrière l'ordinateur est impossible, même pour un réel utilisateur Ksup.
Note : il est probable que ce problème soit responsable d'autre bugs de la newsletter, notamment celui de NEWSLETTER-147.
Résolution :
- ServiceUser possède une fonction "getUtilisateurBean(email, code)" qui semble répondre parfaitement à notre besoin
- -> rendre cette fonction public, et remplacer dans TraitementDemandeAbonnement les appels de "getByMailAndCode" par "getUtilisateurBean"
Il n'y a aucune sous-tâche pour ce ticket.