From a1e9a84903d733877a1a1016423709d9e92c20c8 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Tue, 2 Feb 2016 19:22:05 -0300 Subject: [PATCH] Workaround for empty sessions with active record session store --- app/models/session.rb | 5 ++--- lib/authenticated_system.rb | 11 +++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/models/session.rb b/app/models/session.rb index 0cf82a5..57f59ab 100644 --- a/app/models/session.rb +++ b/app/models/session.rb @@ -1,8 +1,7 @@ class Session < ActiveRecord::SessionStore::Session - # removed and redefined on super class - def self.find_by_session_id session_id - super + def self.find_by_session_id(session_id) + where(session_id: session_id).first end belongs_to :user diff --git a/lib/authenticated_system.rb b/lib/authenticated_system.rb index 8726add..d207c7c 100644 --- a/lib/authenticated_system.rb +++ b/lib/authenticated_system.rb @@ -23,6 +23,17 @@ module AuthenticatedSystem def current_user @current_user ||= begin id = session[:user] + + session_id = cookies[:_noosfero_session] + if id.blank? && session_id.present? + Session.connection.clear_query_cache + session_obj = Session.where(session_id: session_id).first + if session_obj.present? + session = session_obj.data + id = session_obj.user_id + end + end + user = User.where(id: id).first if id user.session = session if user User.current = user -- libgit2 0.21.2