diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 459a01459..81aabf34d 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -5,6 +5,7 @@ class Users::PasswordsController < Devise::PasswordsController after_action :try_to_authenticate_instructeur, only: [:update] after_action :try_to_authenticate_administrateur, only: [:update] + after_action :update_email_verified_at, only: [:update] # GET /resource/password/new # def new @@ -62,4 +63,10 @@ class Users::PasswordsController < Devise::PasswordsController end end end + + def update_email_verified_at + if user_signed_in? + current_user.update!(email_verified_at: Time.zone.now) + end + end end diff --git a/spec/controllers/users/passwords_controller_spec.rb b/spec/controllers/users/passwords_controller_spec.rb index 8378ee7e3..b0d942f01 100644 --- a/spec/controllers/users/passwords_controller_spec.rb +++ b/spec/controllers/users/passwords_controller_spec.rb @@ -38,6 +38,19 @@ describe Users::PasswordsController, type: :controller do expect(subject.current_user).to eq(user) expect(subject.current_administrateur).to eq(administrateur) end + + it "marks user's email as verified" do + expect do + put :update, params: { + user: { + reset_password_token: @token, + password: "mot de passe super secret", + password_confirmation: "mot de passe super secret" + } + } + end.to change { user.reload.email_verified_at } + .from(nil).to(anything) + end end end