Commit a1e9a84903d733877a1a1016423709d9e92c20c8

Authored by Victor Costa
1 parent 6a0c7fc6

Workaround for empty sessions with active record session store

app/models/session.rb
1 class Session < ActiveRecord::SessionStore::Session 1 class Session < ActiveRecord::SessionStore::Session
2 2
3 - # removed and redefined on super class  
4 - def self.find_by_session_id session_id  
5 - super 3 + def self.find_by_session_id(session_id)
  4 + where(session_id: session_id).first
6 end 5 end
7 6
8 belongs_to :user 7 belongs_to :user
lib/authenticated_system.rb
@@ -23,6 +23,17 @@ module AuthenticatedSystem @@ -23,6 +23,17 @@ module AuthenticatedSystem
23 def current_user 23 def current_user
24 @current_user ||= begin 24 @current_user ||= begin
25 id = session[:user] 25 id = session[:user]
  26 +
  27 + session_id = cookies[:_noosfero_session]
  28 + if id.blank? && session_id.present?
  29 + Session.connection.clear_query_cache
  30 + session_obj = Session.where(session_id: session_id).first
  31 + if session_obj.present?
  32 + session = session_obj.data
  33 + id = session_obj.user_id
  34 + end
  35 + end
  36 +
26 user = User.where(id: id).first if id 37 user = User.where(id: id).first if id
27 user.session = session if user 38 user.session = session if user
28 User.current = user 39 User.current = user