Invitation de l'utilisateur en le dirigeant directement vers les lieux de RDV
Created by: aminedhobb
Contexte
Nous avons échangé avec l'équipe de design transverse au sujet de l'invitation sur RDV-Solidarités, et celle-ci semblait catégorique sur un point: Rediriger l'utilisateur vers le lien d'acceptation de l'invitation (où il choisit son mot de passe) sans lui montrer RDV-Solidarités au préalable est risqué et pas du tout recommandé. En ce sens, cette PR fait 2 choses:
-
Elle rollback les changements qui ont été fait dans #1569 vu qu'on ne les utilise plus. Si vous voulez quand même les garder pour les utiliser vous-même, pas de soucis pour le laisser.
-
Elle met en place un système qui permet de donner un lien à l'utilisateur directement vers les pages où il choisit son lieu de RDV (ou une étape antérieure) et qui contient le token d'invitation. Ainsi, l'utilisateur peut choisir le RDV qui lui convient comme d'habitude, sauf qu'une fois le rdv est choisi, on lui demandera alors d'accepter son invitation (en choisissant son mdp) plutôt que de lui demander de s'inscrire.
Mécanisme
- Sur les pages liées à la prise de RDV par les utilisateurs (actions du
LieuxController
et duWelcomeController
), j'ai mis une méthode en tant quebefore_action
qui, si le token d'invitation est passé en paramètres dans l'URL, le store dans la session utilisateur. - J'ai changé la méthode qui définit l'url de redirection de Devise qui est appelé lorsque l'utilisateur est appelé à s'authentifier: Si le token d'invitation est présent dans la session, on redirige alors vers la page d'acceptation de l'invitation plutôt que la page d'authentification.
- J'inclus le
RdvWizardContext
àUsers::InvitationsController
pour que le récapitulatif du RDV soit affiché sur la page d'acceptation de l'invitation lorsque l'utilisateur est redirigé vers celle-ci. - J'enlève le token de la session lorsque l'invitation est acceptée ou lorsque celui-ci s'avère invalide.
- Une fois l'invitation acceptée, je redirige l'utilisateur vers la page d'informations du RDV (grâce à devise qui store cette url dans la session avec
session[:user_return_to]
).
Preview parcours utilisateur
Lien envoyé à l'utilisateur: /lieux?search%5Bdepartement%5D=26&search%5Bmotif_name_with_location_type%5D=RSA+-+Orientation+%3A+rdv+telephonique-phone&search%5Bservice%5D=4&search%5Bwhere%5D=Dr%C3%B4me%2C+Auvergne-Rh%C3%B4ne-Alpes&invitation_token=MsYxz2mxyQjbh-9rktXR