Commit 1d001e27117e1db616cd94013880848301cdf011

Authored by Antonio Terceiro
1 parent 824e34a2

Move multitenancy logic inside the multitenancy class

app/controllers/application_controller.rb
1 1 class ApplicationController < ActionController::Base
2 2  
3   - before_filter :change_pg_schema
  3 + before_filter :setup_multitenancy
4 4  
5 5 include ApplicationHelper
6 6 layout :get_layout
... ... @@ -67,10 +67,8 @@ class ApplicationController &lt; ActionController::Base
67 67  
68 68 protected
69 69  
70   - def change_pg_schema
71   - if Noosfero::MultiTenancy.on? and ActiveRecord::Base.postgresql?
72   - Noosfero::MultiTenancy.db_by_host = request.host
73   - end
  70 + def setup_multitenancy
  71 + Noosfero::MultiTenancy.setup!(request.host)
74 72 end
75 73  
76 74 def boxes_editor?
... ...
lib/noosfero/multi_tenancy.rb
... ... @@ -10,7 +10,16 @@ module Noosfero
10 10 end
11 11  
12 12 def self.db_by_host=(host)
13   - ActiveRecord::Base.connection.schema_search_path = self.mapping[host]
  13 + if host != @db_by_host
  14 + @db_by_host = host
  15 + ActiveRecord::Base.connection.schema_search_path = self.mapping[host]
  16 + end
  17 + end
  18 +
  19 + def self.setup!(host)
  20 + if Noosfero::MultiTenancy.on? and ActiveRecord::Base.postgresql?
  21 + Noosfero::MultiTenancy.db_by_host = host
  22 + end
14 23 end
15 24  
16 25 private
... ...