Prepare for API v1 (PR #570)
This commit is contained in:
parent
d9ae0d11b0
commit
fd96b6ccc1
21 changed files with 536 additions and 217 deletions
36
app/controllers/concerns/foodcoop_scope.rb
Normal file
36
app/controllers/concerns/foodcoop_scope.rb
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# Controller concern to handle foodcoop scope
|
||||
#
|
||||
# Includes a +before_filter+ for selecting foodcoop from url.
|
||||
#
|
||||
module Concerns::FoodcoopScope
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
before_filter :select_foodcoop
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Set config and database connection for each request
|
||||
# It uses the subdomain to select the appropriate section in the config files
|
||||
# Use this method as a before filter (first filter!) in ApplicationController
|
||||
def select_foodcoop
|
||||
return unless FoodsoftConfig[:multi_coop_install]
|
||||
|
||||
foodcoop = params[:foodcoop]
|
||||
if foodcoop.blank?
|
||||
FoodsoftConfig.select_default_foodcoop
|
||||
redirect_to root_url
|
||||
elsif FoodsoftConfig.allowed_foodcoop? foodcoop
|
||||
FoodsoftConfig.select_foodcoop foodcoop
|
||||
else
|
||||
raise ActionController::RoutingError.new 'Foodcoop Not Found'
|
||||
end
|
||||
end
|
||||
|
||||
# Always stay in foodcoop url scope
|
||||
def default_url_options(options = {})
|
||||
super().merge({foodcoop: FoodsoftConfig.scope})
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue