Changement d'email par un utilisateurDiagramme d'état2 états :
+--------+ +---------+ | | Faire demande | | Faire une +--+ +----------------->| +--+ demande. Expiration | | | | | | On remplace impossible +->| Normal | Expiration | Demande |<-+ l'ancienne. | |<-----------------+ en | | | | cours | Confirmations | | Confirmation ok | | Confirmation génèrent +--+ |<-----------------+ +--+ incorrecte. erreurs | | | | | | Elle est +->| | Réclamation | |<-+ ignorée | |<-----------------+ | | | => Suppr demande | | +-+------+ +---------+ | ^ +----+ Réclamation, à traiter en fonction de l'historique Description du fonctionnement | |||||||||||||||
Changed: | |||||||||||||||
< < | L'utilisateur fait une demande de changement de mail. Son mot de passe lui est demandé à ce moment-là. Une ligne est ajoutée dans la table emailChanges . L'ancien mail n'est pas modifié et est toujours valide. Un mail est envoyé à la nouvelle adresse, avec le nom du compte et une URL qui contient la clé. Suivre cette URL permet l'activation de la nouvelle adresse à la place de l'ancienne, et passe le status dans la table emailChanges à done . Cet URL n'est valide que durant une période de 24h après la date de la demande. La page affichée en suivant l'URL indique si le changement de mail est bon, ou bien si une erreur s'est produite. Un mail est aussi envoyé à l'ancienne adresse pour information. Ce mail contient le nom du compte, la nouvelle adresse email, et un lien vers question@unistra.fr permettant une réclamation. | ||||||||||||||
> > | L'utilisateur fait une demande de changement de mail. Son mot de passe lui est demandé à ce moment-là. Une ligne est ajoutée dans la table emailChanges . L'ancien mail n'est pas modifié et est toujours valide. Un mail est envoyé à la nouvelle adresse, avec le nom du compte et une URL qui contient la clé. Suivre cette URL permet l'activation de la nouvelle adresse à la place de l'ancienne, et passe le status dans la table emailChanges à done . Cet URL n'est valide que durant une période de 24h après la date de la demande. La page affichée en suivant l'URL indique si le changement de mail est bon, ou bien si une erreur s'est produite. Un mail est aussi envoyé à l'ancienne adresse pour information. Ce mail contient le nom du compte, la nouvelle adresse email, et un lien vers cds-question@unistra.fr permettant une réclamation. | ||||||||||||||
Certaines contraintes prises en compte :
emailChanges , et remettre la bonne adresse email dans la table users . Si la réclamation viens d'une adresse mail qui n'a jamais été associée au compte, il faut faire très attention avant de faire un changement.
Table dans la base de donnéeUne table nomméeemailChanges est ajoutée à la base de donnée. Elle contient les demandes en cours, avec le status asked . Et l'historique des demandes qui ont été confirmées, avec le status done . Les demandes qui ont expirées (status asked et 24h révolus après la date ) sont supprimées de la table par une tâche qui tourne chaque nuit.
create table emailChanges ( idRef integer not null, oldEmail text not null, newEmail text not null, key text not null, date integer not null, status text not null );-- PascalWassong - 2017-01-26 | |||||||||||||||
Deleted: | |||||||||||||||
< < |