Skip to content

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

  1. Sur les pages liées à la prise de RDV par les utilisateurs (actions du LieuxController et du WelcomeController), j'ai mis une méthode en tant que before_action qui, si le token d'invitation est passé en paramètres dans l'URL, le store dans la session utilisateur.
  2. 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.
  3. 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.
  4. J'enlève le token de la session lorsque l'invitation est acceptée ou lorsque celui-ci s'avère invalide.
  5. 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

image

image

image

image

image

Merge request reports