FIX: When activating via omniauth, create tokens after password reset

Resetting a password invalidates all email tokens, so we need to create the tokens after the password reset.
This commit is contained in:
David Taylor 2019-08-28 14:43:25 +01:00
parent 3b9e8a0849
commit 51b7f4d900

View File

@ -121,15 +121,15 @@ class Users::OmniauthCallbacksController < ApplicationController
user.unstage user.unstage
user.save user.save
# ensure there is an active email token if !user.active || !user.email_confirmed?
user.update!(password: SecureRandom.hex)
# Ensure there is an active email token
unless EmailToken.where(email: user.email, confirmed: true).exists? || unless EmailToken.where(email: user.email, confirmed: true).exists? ||
user.email_tokens.active.where(email: user.email).exists? user.email_tokens.active.where(email: user.email).exists?
user.email_tokens.create!(email: user.email) user.email_tokens.create!(email: user.email)
end end
if !user.active || !user.email_confirmed?
user.update!(password: SecureRandom.hex)
user.activate user.activate
end end
user.update!(registration_ip_address: request.remote_ip) if user.registration_ip_address.blank? user.update!(registration_ip_address: request.remote_ip) if user.registration_ip_address.blank?