From a0f85774c482716505b0c8c8faf59616f06245d9 Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Sun, 2 Oct 2016 17:11:08 +0200
Subject: [PATCH] Redirect after sign in to previous page (unless it's a sign
 in/up/etc page)

---
 app/controllers/application_controller.rb   | 8 ++++++++
 app/controllers/auth/sessions_controller.rb | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 9b6367187d..91904ecf07 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -10,10 +10,18 @@ class ApplicationController < ActionController::Base
   rescue_from ActionController::RoutingError, with: :not_found
   rescue_from ActiveRecord::RecordNotFound, with: :not_found
 
+  before_filter :store_current_location, :unless => :devise_controller?
+
   def raise_not_found
     raise ActionController::RoutingError, "No route matches #{params[:unmatched_route]}"
   end
 
+  private
+
+  def store_current_location
+    store_location_for(:user, request.url)
+  end
+
   protected
 
   def not_found
diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb
index 1418ab2ca5..e50a9835c8 100644
--- a/app/controllers/auth/sessions_controller.rb
+++ b/app/controllers/auth/sessions_controller.rb
@@ -12,6 +12,6 @@ class Auth::SessionsController < Devise::SessionsController
   protected
 
   def after_sign_in_path_for(_resource)
-    root_path
+    stored_location_for(:user) || root_path
   end
 end
-- 
GitLab