multi_client 3.1.0 → 3.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +8 -0
- data/app/models/multi_client/client.rb +4 -0
- data/app/services/multi_client/create_client_service.rb +1 -0
- data/lib/generators/multi_client/install/install_generator.rb +4 -0
- data/lib/generators/multi_client/install/templates/client.rb +2 -0
- data/lib/multi_client/spec_helpers/feature.rb +21 -0
- data/lib/multi_client/version.rb +1 -1
- data/lib/tasks/multi_client_tasks.rake +2 -2
- data/spec/factories/multi_client/client_factories.rb +2 -2
- metadata +4 -3
- data/lib/multi_client/spec_helper.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e18e3181ca39656c1dec3e8c0aa13b11c3de851
|
4
|
+
data.tar.gz: 092f67ee29528eb30dc0751134a5f4cf16802fca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1dfa2f9539cfb8ac70bbc56b094580a34427d505c289fcefa876819ce7fa36da0d353f966d841577f750f3d86629c9c1368ed45bf4284606eb7854a41d938c95
|
7
|
+
data.tar.gz: fd64e7e683086961627b5ba7e26cfce6c4745fe7ebce16ef401d442a7180ebc3aee0da59cc4dede0eda4f722cafbdfea8c2638e7b859f49ff035d8a38ff4ced5
|
data/README.rdoc
CHANGED
@@ -56,6 +56,14 @@ Add migrations and migrate
|
|
56
56
|
Post.all
|
57
57
|
end
|
58
58
|
|
59
|
+
= How do I setup my application so that a client is looked up automatically?
|
60
|
+
|
61
|
+
# app/controllers/application_controller.rb
|
62
|
+
class ApplicationController < ActionController::Base
|
63
|
+
include MultiClient::ControllerWithClient
|
64
|
+
helper_method :current_client
|
65
|
+
end
|
66
|
+
|
59
67
|
= Gotchas
|
60
68
|
|
61
69
|
== include MultiClient::ModelWithClient::ActiveSupport::Concern after calls to any class methods.
|
@@ -32,6 +32,10 @@ module MultiClient
|
|
32
32
|
self.current_id = where(identifier: identifier).first.try(:id)
|
33
33
|
end
|
34
34
|
|
35
|
+
def self.set_current_by_subdomain(subdomain)
|
36
|
+
self.current_id = where(subdomain: subdomain).first.try(:id)
|
37
|
+
end
|
38
|
+
|
35
39
|
def self.unset_current
|
36
40
|
self.current_id = nil
|
37
41
|
end
|
@@ -18,6 +18,7 @@ module MultiClient
|
|
18
18
|
say "Input is valid"
|
19
19
|
ActiveRecord::Base.transaction do
|
20
20
|
response.client = create_client
|
21
|
+
return response unless response.client.persisted?
|
21
22
|
Client.with_client(response.client) do
|
22
23
|
# response.client_setting = create_client_setting
|
23
24
|
response.roles, response.permissions = create_default_roles_and_permissions if create_roles_and_permissions == true
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module MultiClient
|
2
|
+
module SpecHelpers
|
3
|
+
module Feature
|
4
|
+
def with_client(client, &block)
|
5
|
+
MultiClient::Client.with_client(client) { block.call }
|
6
|
+
end
|
7
|
+
|
8
|
+
def use_subdomain(subdomain)
|
9
|
+
Capybara.current_session.driver.reset!
|
10
|
+
Capybara.default_host = Capybara.default_host.sub(/(.*?\/\/)(.*?)(\..*)/, "\\1#{subdomain}\\3")
|
11
|
+
end
|
12
|
+
|
13
|
+
def with_subdomain(subdomain, &block)
|
14
|
+
original_host = Capybara.default_host
|
15
|
+
use_subdomain(subdomain)
|
16
|
+
yield
|
17
|
+
Capybara.default_host = original_host
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/multi_client/version.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
namespace :multi_client do
|
2
2
|
namespace :create do
|
3
|
-
desc "
|
3
|
+
desc "Creates the master Tenant"
|
4
4
|
task create_master: :environment do
|
5
5
|
if MultiClient::Client.exists?(subdomain: 'master')
|
6
6
|
puts "Master tenant already exists"
|
7
7
|
next
|
8
8
|
end
|
9
9
|
if MultiClient::Client.enabled.create!(subdomain: 'master', identifier: MultiClient::Configuration.master_client_identifier)
|
10
|
-
puts "Created master tenant"
|
10
|
+
puts "Created master tenant (#{MultiClient::Configuration.master_client_identifier})"
|
11
11
|
end
|
12
12
|
puts "Done"
|
13
13
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
FactoryGirl.define do
|
2
2
|
factory :multi_client_client, class: MultiClient::Client do
|
3
|
-
sequence(:identifier)
|
4
|
-
sequence(:subdomain)
|
3
|
+
sequence(:identifier) { |i| "client.identifier.#{i}"}
|
4
|
+
sequence(:subdomain) { |i| "client#{i}"}
|
5
5
|
enabled true
|
6
6
|
|
7
7
|
trait(:master) do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multi_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Vasquez Angel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -151,6 +151,7 @@ files:
|
|
151
151
|
- config/routes.rb
|
152
152
|
- db/migrate/001_create_multi_client_clients.rb
|
153
153
|
- lib/generators/multi_client/install/install_generator.rb
|
154
|
+
- lib/generators/multi_client/install/templates/client.rb
|
154
155
|
- lib/generators/multi_client/install/templates/initializer.rb
|
155
156
|
- lib/multi_client.rb
|
156
157
|
- lib/multi_client/configuration.rb
|
@@ -158,7 +159,7 @@ files:
|
|
158
159
|
- lib/multi_client/master_subdomain.rb
|
159
160
|
- lib/multi_client/no_subdomain.rb
|
160
161
|
- lib/multi_client/non_master_subdomain.rb
|
161
|
-
- lib/multi_client/
|
162
|
+
- lib/multi_client/spec_helpers/feature.rb
|
162
163
|
- lib/multi_client/subdomain.rb
|
163
164
|
- lib/multi_client/version.rb
|
164
165
|
- lib/tasks/multi_client_tasks.rake
|
@@ -1,9 +0,0 @@
|
|
1
|
-
module MultiClient
|
2
|
-
module SpecHelper
|
3
|
-
def use_client(client)
|
4
|
-
MultiClient::Client.current_id = client.id
|
5
|
-
Capybara.current_session.driver.reset!
|
6
|
-
Capybara.default_host = Capybara.default_host.sub(/(.*?\/\/)(.*?)(\..*)/, "\\1#{client.subdomain}\\3")
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|