From ebf46450bce1037d39ea890dccf59f0d097ee036 Mon Sep 17 00:00:00 2001
From: Neil Lalonde <neillalonde@gmail.com>
Date: Tue, 30 Sep 2014 12:24:22 -0400
Subject: [PATCH] Refactor omniauth_callbacks_controller for extensibility

---
 .../users/omniauth_callbacks_controller.rb     | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb
index d77c84843..2a7fb64a3 100644
--- a/app/controllers/users/omniauth_callbacks_controller.rb
+++ b/app/controllers/users/omniauth_callbacks_controller.rb
@@ -38,13 +38,7 @@ class Users::OmniauthCallbacksController < ApplicationController
     @data = authenticator.after_authenticate(auth)
     @data.authenticator_name = authenticator.name
 
-    if @data.user
-      user_found(@data.user)
-    elsif SiteSetting.invite_only?
-      @data.requires_invite = true
-    else
-      session[:authentication] = @data.session_data
-    end
+    complete_response_data(@data)
 
     respond_to do |format|
       format.html
@@ -75,6 +69,16 @@ class Users::OmniauthCallbacksController < ApplicationController
 
   protected
 
+  def complete_response_data
+    if @data.user
+      user_found(@data.user)
+    elsif SiteSetting.invite_only?
+      @data.requires_invite = true
+    else
+      session[:authentication] = @data.session_data
+    end
+  end
+
   def user_found(user)
     # automatically activate any account if a provider marked the email valid
     if !user.active && @data.email_valid