handle rails 4 flash hashes in session for rails 3

closes #CNVS-20688

Change-Id: Icb9963f78bddb08e014ac480e9eefd030704aea8
Reviewed-on: https://gerrit.instructure.com/67729
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
This commit is contained in:
James Williams 2015-11-23 14:01:28 -07:00
parent e276d20bcc
commit 870b2abbc9
2 changed files with 19 additions and 0 deletions

View File

@ -0,0 +1,16 @@
# remove after switch to Rails 4
class Rails3FlashShim
def initialize(app)
@app = app
end
def call(env)
if (session = env['rack.session']) && (flash = session['flash'])
if flash.is_a?(Hash)
session['flash'] = nil
end
end
@app.call(env)
end
end

View File

@ -118,6 +118,9 @@ module CanvasRails
initializer("extend_middleware_stack", after: "load_config_initializers") do |app|
app.config.middleware.insert_before(config.session_store, 'LoadAccount')
app.config.middleware.insert_before(config.session_store, 'SessionsTimeout')
if CANVAS_RAILS3
app.config.middleware.insert_before('ActionDispatch::Flash', 'Rails3FlashShim')
end
app.config.middleware.swap('ActionDispatch::RequestId', 'RequestContextGenerator')
app.config.middleware.insert_after(config.session_store, 'RequestContextSession')
app.config.middleware.insert_before('ActionDispatch::ParamsParser', 'Canvas::RequestThrottle')