From c560bac33de728b87b85da5840a0d58ea5d074bc Mon Sep 17 00:00:00 2001 From: Hong ChulJu Date: Tue, 17 Mar 2015 11:16:50 +0900 Subject: [PATCH 1/2] user should login to explore macaron application --- app/controllers/application_controller.rb | 8 ++++++++ app/controllers/home_controller.rb | 2 ++ app/controllers/sessions_controller.rb | 4 +++- app/helpers/application_helper.rb | 4 ++++ app/views/home/index.html.erb | 2 +- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8ae1b7b..6178115 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -4,6 +4,14 @@ class ApplicationController < ActionController::Base protect_from_forgery with: :exception helper_method :current_user + before_action :require_login + +protected + def require_login + origin = request.original_fullpath + redirect_to root_path(origin: origin) unless current_user + end + private def current_user @current_user ||= User.find(session[:user_id]) if session[:user_id] diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 95f2992..da597f7 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,4 +1,6 @@ class HomeController < ApplicationController + skip_before_action :require_login + def index end end diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 3a0123e..bd0407e 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -1,10 +1,12 @@ class SessionsController < ApplicationController + skip_before_action :require_login + def create auth = request.env["omniauth.auth"] user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) || User.create_with_omniauth(auth) session[:user_id] = user.id - redirect_to friends_path, :notice => "Signed in!" + redirect_to request.env['omniauth.origin'] || friends_path, :notice => "Signed in!" end def destroy diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index de6be79..c18d007 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,2 +1,6 @@ module ApplicationHelper + def login_path + query = request.query_parameters.to_query + "/auth/facebook?#{query}" + end end diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index 08defa2..d5227ce 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -10,7 +10,7 @@
- <%= link_to "/auth/facebook", id:"fb-link" do %> + <%= link_to login_path, id:"fb-link" do %>
페이스북으로 시작하기
From 6ce32ef64ca919b7fbfd243c283612a9d83fbdc6 Mon Sep 17 00:00:00 2001 From: Hong ChulJu Date: Tue, 17 Mar 2015 11:50:46 +0900 Subject: [PATCH 2/2] redirect to friends_path when user signed in --- app/controllers/home_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index da597f7..d1296dd 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -2,5 +2,6 @@ class HomeController < ApplicationController skip_before_action :require_login def index + redirect_to friends_path if current_user end end