aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeb Bacon <seb.bacon@gmail.com>2012-07-19 13:06:28 +0100
committerSeb Bacon <seb.bacon@gmail.com>2012-07-19 13:06:28 +0100
commit8e86c94df9c68a3fb6144649e78548d411063e21 (patch)
treee81add0d1c532e019d41e19bb838901649c498c5
parent2a70db0eb8c14fa14c6ca5fe6a738cee4f3f66df (diff)
Use ActiveRecord to store sessions, rather than Cookies. Fixes #526.
-rw-r--r--config/initializers/session_store.rb2
-rw-r--r--db/migrate/117_create_sessions.rb16
2 files changed, 17 insertions, 1 deletions
diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb
index bf40e99c1..3c3cbe5ad 100644
--- a/config/initializers/session_store.rb
+++ b/config/initializers/session_store.rb
@@ -9,7 +9,7 @@ ActionController::Base.session = {
:key => '_wdtk_cookie_session',
:secret => MySociety::Config.get("COOKIE_STORE_SESSION_SECRET", 'this default is insecure as code is open source, please override for live sites in config/general; this will do for local development')
}
-ActionController::Base.session_store = :cookie_store
+ActionController::Base.session_store = :active_record_store
# Insert a bit of middleware code to prevent uneeded cookie setting.
require "#{Rails.root}/lib/whatdotheyknow/strip_empty_sessions"
diff --git a/db/migrate/117_create_sessions.rb b/db/migrate/117_create_sessions.rb
new file mode 100644
index 000000000..4ccc353b1
--- /dev/null
+++ b/db/migrate/117_create_sessions.rb
@@ -0,0 +1,16 @@
+class CreateSessions < ActiveRecord::Migration
+ def self.up
+ create_table :sessions do |t|
+ t.string :session_id, :null => false
+ t.text :data
+ t.timestamps
+ end
+
+ add_index :sessions, :session_id
+ add_index :sessions, :updated_at
+ end
+
+ def self.down
+ drop_table :sessions
+ end
+end