Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
mshibuya committed Aug 13, 2018
1 parent 5da7874 commit 6ede3e0
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions lib/rails_admin/engine.rb
Expand Up @@ -24,11 +24,6 @@ class Engine < Rails::Engine
end

initializer 'RailsAdmin setup middlewares' do |app|
app.config.session_store :cookie_store
app.config.middleware.use ActionDispatch::Cookies
app.config.middleware.use ActionDispatch::Flash
app.config.middleware.use ActionDispatch::Session::CookieStore, app.config.session_options
app.config.middleware.use Rack::MethodOverride
app.config.middleware.use Rack::Pjax
end

Expand All @@ -47,5 +42,24 @@ class Engine < Rails::Engine
rake_tasks do
Dir[File.join(File.dirname(__FILE__), '../tasks/*.rake')].each { |f| load f }
end

initializer 'RailsAdmin check for required middlewares', after: :build_middleware_stack do |app|
has_session_store = app.config.middleware.to_a.any? { |m| m.klass.try(:<=, ActionDispatch::Session::AbstractStore) }
loaded = app.config.middleware.to_a.map(&:name)
required = %w(ActionDispatch::Cookies ActionDispatch::Flash Rack::MethodOverride)
missing = required - loaded
unless missing.empty? && has_session_store
configs = missing.map { |m| "config.middleware.use #{m}" }
configs << "config.middleware.use #{app.config.session_store.try(:name) || 'ActionDispatch::Session::CookieStore'}, #{app.config.session_options}" unless has_session_store
raise <<-EOM
Required middlewares for RailsAdmin are not added
To fix tihs, add
#{configs.join("\n ")}
to config/application.rb.
EOM
end
end
end
end

0 comments on commit 6ede3e0

Please sign in to comment.