From 5a462b930daf8219c289714f76b85e5040dffdbf Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Thu, 1 Mar 2018 10:22:41 +0800 Subject: [PATCH] REFACTOR: Prefer `exists?` over `present`. --- app/controllers/users/omniauth_callbacks_controller.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index afebf58eb8f..45410715a30 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -117,8 +117,14 @@ class Users::OmniauthCallbacksController < ApplicationController # automatically activate/unstage any account if a provider marked the email valid if @auth_result.email_valid && @auth_result.email == user.email user.update!(staged: false) + # ensure there is an active email token - user.email_tokens.create(email: user.email) unless EmailToken.where(email: user.email, confirmed: true).present? || user.email_tokens.active.where(email: user.email).exists? + unless EmailToken.where(email: user.email, confirmed: true).exists? || + user.email_tokens.active.where(email: user.email).exists? + + user.email_tokens.create!(email: user.email) + end + user.activate user.update!(registration_ip_address: request.remote_ip) if user.registration_ip_address.blank? end