password: add specific page for reset instructions
This commit is contained in:
parent
fb55c76829
commit
d530b272a1
9 changed files with 82 additions and 7 deletions
|
@ -4,3 +4,9 @@
|
|||
font-family: "Muli", system-ui, -apple-system, sans-serif;
|
||||
color: $black;
|
||||
}
|
||||
|
||||
ol {
|
||||
line-height: 28px;
|
||||
list-style-type: decimal;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
padding-top: 2 * $default-padding;
|
||||
padding-bottom: 2 * $default-padding;
|
||||
text-align: center;
|
||||
max-width: 600px;
|
||||
max-width: 700px;
|
||||
|
||||
section {
|
||||
text-align: left;
|
||||
|
|
|
@ -33,6 +33,10 @@ class Users::PasswordsController < Devise::PasswordsController
|
|||
# super
|
||||
# end
|
||||
|
||||
def reset_link_sent
|
||||
@email = params[:email]
|
||||
end
|
||||
|
||||
# protected
|
||||
|
||||
# def after_resetting_password_path_for(resource)
|
||||
|
@ -74,4 +78,9 @@ class Users::PasswordsController < Devise::PasswordsController
|
|||
def password_params
|
||||
params.require(:user).permit(:reset_password_token, :password)
|
||||
end
|
||||
|
||||
def after_sending_reset_password_instructions_path_for(resource_name)
|
||||
flash.discard(:notice)
|
||||
users_password_reset_link_sent_path(email: resource.email)
|
||||
end
|
||||
end
|
||||
|
|
32
app/views/users/passwords/reset_link_sent.html.haml
Normal file
32
app/views/users/passwords/reset_link_sent.html.haml
Normal file
|
@ -0,0 +1,32 @@
|
|||
- content_for(:title, t('views.users.passwords.reset_link_sent.title'))
|
||||
|
||||
- content_for :footer do
|
||||
= render partial: 'root/footer'
|
||||
|
||||
#link-sent.container
|
||||
= image_tag('user/confirmation-email.svg')
|
||||
%h1
|
||||
= t('views.users.passwords.reset_link_sent.got_it')
|
||||
%br
|
||||
= t('views.users.passwords.reset_link_sent.open_your_mailbox')
|
||||
|
||||
%section.link-sent-info
|
||||
%p
|
||||
= t('views.users.passwords.reset_link_sent.email_sent_html', email: @email)
|
||||
%p
|
||||
= t('views.users.passwords.reset_link_sent.click_link_to_reset_password')
|
||||
%p
|
||||
= t('views.users.shared.email_can_take_a_while_html')
|
||||
|
||||
%section.link-sent-help
|
||||
%h2.link-sent-help-title= t('views.users.passwords.reset_link_sent.no_mail')
|
||||
%ol.link-sent-help-list
|
||||
%li
|
||||
= t('views.users.passwords.reset_link_sent.check_spams')
|
||||
%li
|
||||
= t('views.users.passwords.reset_link_sent.check_account', email: @email, application_name: APPLICATION_NAME)
|
||||
- if FranceConnectService.enabled?
|
||||
%li
|
||||
= t('views.users.passwords.reset_link_sent.check_france_connect_html', href: france_connect_particulier_path)
|
||||
%p
|
||||
= t('views.users.shared.contact_us_if_any_trouble_html', href: contact_url)
|
|
@ -11,12 +11,10 @@
|
|||
%p
|
||||
Ouvrez votre boite email <strong>#{@email}</strong> puis cliquez sur le lien d’activation du message <strong>Connexion sécurisée à #{APPLICATION_NAME}</strong>.
|
||||
%p
|
||||
<strong>Attention</strong>, ce message peut mettre jusqu’à <strong>15 minutes</strong> pour arriver.
|
||||
= t('views.users.shared.email_can_take_a_while')
|
||||
|
||||
%section.link-sent-help
|
||||
%p
|
||||
Si vous voyez cette page trop souvent, consultez notre aide : #{link_to FAQ_CONFIRMER_COMPTE_CHAQUE_CONNEXION_URL, FAQ_CONFIRMER_COMPTE_CHAQUE_CONNEXION_URL, target: '_blank', rel: 'noopener' }
|
||||
%p
|
||||
En cas de difficultés, nous restons joignables
|
||||
= succeed '.' do
|
||||
= link_to("via ce formulaire", contact_admin_url)
|
||||
= t('views.users.shared.contact_us_if_any_trouble_html', href: contact_admin_url)
|
||||
|
|
|
@ -53,6 +53,21 @@ fr:
|
|||
passwords:
|
||||
new:
|
||||
send_me_reset_password_instructions: "Indiquez l’email de votre compte, et nous vous enverrons un lien pour créer un nouveau mot de passe."
|
||||
users:
|
||||
passwords:
|
||||
reset_link_sent:
|
||||
email_sent_html: "Nous vous avons envoyé un email à l’adresse <strong>%{email}</strong>."
|
||||
click_link_to_reset_password: "Cliquez sur le lien contenu dans l’email pour changer votre mot de passe."
|
||||
no_mail: "Vous n’avez pas reçu l’email ?"
|
||||
check_spams: "Vérifiez la boite Indésirables ou Spam de votre boite email."
|
||||
check_account: "Avez-vous bien créé un compte %{application_name} avec l’adresse %{email} ? Si aucun compte n’existe avec cette adresse, vous ne recevrez pas de message."
|
||||
check_france_connect_html: "Vous êtes-vous connecté avec France Connect par le passé ? Dans ce cas <a href=\"%{href}\">essayez à nouveau avec France Connect</a>."
|
||||
got_it: "Bien reçu !"
|
||||
open_your_mailbox: "Maintenant ouvrez votre boite email."
|
||||
title: "Lien de réinitialisation du mot de passe envoyé"
|
||||
shared:
|
||||
email_can_take_a_while_html: "<strong>Attention</strong>, ce message peut mettre jusqu’à <strong>15 minutes</strong> pour arriver."
|
||||
contact_us_if_any_trouble_html: "En cas de difficultés, nous restons joignables <a href=\"%{href}\">via ce formulaire</a>."
|
||||
modal:
|
||||
publish:
|
||||
title:
|
||||
|
|
|
@ -106,6 +106,7 @@ Rails.application.routes.draw do
|
|||
get '/users/no_procedure' => 'users/sessions#no_procedure'
|
||||
get 'connexion-par-jeton/:id' => 'users/sessions#sign_in_by_link', as: 'sign_in_by_link'
|
||||
get 'lien-envoye/:email' => 'users/sessions#link_sent', constraints: { email: /.*/ }, as: 'link_sent'
|
||||
get '/users/password/reset-link-sent' => 'users/passwords#reset_link_sent'
|
||||
end
|
||||
|
||||
devise_scope :administrateur do
|
||||
|
|
|
@ -38,4 +38,16 @@ describe Users::PasswordsController, type: :controller do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#reset_link_sent' do
|
||||
let(:email) { 'test@example.com' }
|
||||
|
||||
it 'displays the page' do
|
||||
get 'reset_link_sent', params: { email: email }
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(response).to render_template('reset_link_sent')
|
||||
expect(assigns(:email)).to eq email
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,7 +13,8 @@ feature 'Managing password:' do
|
|||
perform_enqueued_jobs do
|
||||
click_on 'Demander un nouveau mot de passe'
|
||||
end
|
||||
expect(page).to have_content('Si votre courriel existe dans notre base de données, vous recevrez un lien vous permettant de récupérer votre mot de passe.')
|
||||
expect(page).to have_text 'Nous vous avons envoyé un email'
|
||||
expect(page).to have_text user.email
|
||||
|
||||
click_reset_password_link_for user.email
|
||||
expect(page).to have_content 'Changement de mot de passe'
|
||||
|
@ -40,7 +41,8 @@ feature 'Managing password:' do
|
|||
perform_enqueued_jobs do
|
||||
click_on 'Demander un nouveau mot de passe'
|
||||
end
|
||||
expect(page).to have_content('Si votre courriel existe dans notre base de données, vous recevrez un lien vous permettant de récupérer votre mot de passe.')
|
||||
expect(page).to have_text 'Nous vous avons envoyé un email'
|
||||
expect(page).to have_text user.email
|
||||
|
||||
click_reset_password_link_for user.email
|
||||
|
||||
|
|
Loading…
Reference in a new issue