Commit 4488de24a5dde7bc37071837fd675a5a06454642

Authored by Antonio Terceiro
1 parent 520d07a0

Revert "Remove Rails 2.1 handling code from noosfero HTTP caching code"

This reverts commit 0fcf86d44896774ec82af0ea41ac6c61a95a3485.
Showing 1 changed file with 34 additions and 0 deletions   Show diff stats
vendor/plugins/noosfero_caching/init.rb
... ... @@ -2,6 +2,8 @@ module NoosferoHttpCaching
2 2  
3 3 def self.included(c)
4 4 c.send(:after_filter, :noosfero_set_cache)
  5 + c.send(:before_filter, :noosfero_session_check_before)
  6 + c.send(:after_filter, :noosfero_session_check_after)
5 7 end
6 8  
7 9 def noosfero_set_cache
... ... @@ -25,6 +27,38 @@ module NoosferoHttpCaching
25 27 end
26 28 end
27 29  
  30 + def noosfero_session_check_before
  31 + return if params[:controller] == 'account'
  32 + headers["X-Noosfero-Auth"] = (session[:user] != nil).to_s
  33 + end
  34 +
  35 + def noosfero_session_check_after
  36 + if headers['X-Noosfero-Auth'] == 'true'
  37 + # special case: logout
  38 + if !session[:user]
  39 + session.delete
  40 + end
  41 + else
  42 + # special case: login
  43 + if session[:user]
  44 + headers['X-Noosfero-Auth'] = 'true'
  45 + end
  46 + end
  47 + end
  48 +
  49 +end
  50 +
  51 +class ActionController::CgiResponse
  52 +
  53 + def out_with_noosfero_session_check(output = $stdout)
  54 + if headers['X-Noosfero-Auth'] == 'false'
  55 + @cgi.send(:instance_variable_set, '@output_cookies', nil)
  56 + end
  57 + headers.delete('X-Noosfero-Auth')
  58 + out_without_noosfero_session_check(output)
  59 + end
  60 + alias_method_chain :out, :noosfero_session_check
  61 +
28 62 end
29 63  
30 64 if Rails.env != 'development'
... ...