kaui 0.8.3 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e8e7685a1afe2252804642a60974815cd5e37360
4
- data.tar.gz: 3947baffe131d77bcd535819ad0bd40826b7b2d8
3
+ metadata.gz: b2789a969d9773d7b85873b78de5e7499e8a0bff
4
+ data.tar.gz: 16387777a6d098c092cfb74b6bbf35c771f852d3
5
5
  SHA512:
6
- metadata.gz: eb3e2a65564487e86e37bd810c3ac4e2309a80dd91df63ef1b6252a38fe72b24e3e9e876ad8dc4c92232d2c0bff178014802f1e4d78abde725b4176365f08fcc
7
- data.tar.gz: 7a3ea522f0f04c9a18c0fc7e4f84a977b0910c13a679f18370e323bc51b8b74a775b92532148d085ad4c69467636040815671b7197ea688390b43419b9da8b9c
6
+ metadata.gz: e5da777efcada57eefc888c217e444059cce523e8bc37d4fb2395e7b3252e010f4e82e3d5ff5d4986a2cff8caf40a41e471f5a6e52e5c21ac0d89eeebfd061fb
7
+ data.tar.gz: fb7a52912944083a5142609d150d272c78e1176b0a3c1e918e7adc513839e610d97d56cf3c36a59417a522af5b9abbda39f8694efe045bbc3ce0d9320ad058fb
data/Gemfile CHANGED
@@ -1,3 +1,6 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ #gem 'killbill-client', :path => '../killbill-client-ruby'
6
+
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kaui (0.8.3)
4
+ kaui (0.8.4)
5
5
  cancan (~> 1.6.10)
6
6
  carmen-rails (~> 1.0.0)
7
7
  d3_rails (~> 3.2.8)
8
8
  devise (~> 3.0.2)
9
9
  jquery-rails (~> 3.0.4)
10
- killbill-client (~> 0.10.6)
10
+ killbill-client (~> 0.10.7)
11
11
  money-rails (~> 0.8.1)
12
12
  rails (~> 3.2.14)
13
13
  symmetric-encryption (~> 3.6.0)
@@ -67,7 +67,7 @@ GEM
67
67
  warden (~> 1.2.3)
68
68
  docile (1.1.5)
69
69
  erubis (2.7.0)
70
- execjs (2.3.0)
70
+ execjs (2.4.0)
71
71
  fakeweb (1.3.0)
72
72
  hike (1.2.3)
73
73
  i18n (0.6.11)
@@ -76,13 +76,13 @@ GEM
76
76
  railties (>= 3.0, < 5.0)
77
77
  thor (>= 0.14, < 2.0)
78
78
  json (1.8.2)
79
- killbill-client (0.10.6)
79
+ killbill-client (0.10.7)
80
80
  json (>= 1.2.0)
81
81
  mail (2.5.4)
82
82
  mime-types (~> 1.16)
83
83
  treetop (~> 1.4.8)
84
84
  mime-types (1.25.1)
85
- money (5.1.0)
85
+ money (5.1.1)
86
86
  i18n (~> 0.6.0)
87
87
  money-rails (0.8.1)
88
88
  activesupport (>= 3.0)
data/README.md CHANGED
@@ -97,7 +97,7 @@ KAUI has been enhanced to support multi-tenancy. In order to benefit from that m
97
97
  Admin User Roles
98
98
  -------------------------
99
99
 
100
- In multi-tenancy mode, there are two kind of users:
100
+ In multi-tenancy mode, there are two kinds of users:
101
101
 
102
102
  * The **multi-tenant admin** user, which has the rights to configure the tenant information (creation of tenant, add allowed users for specific tenant, upload catalog, ...)
103
103
  * The **per-tenant admin** user, which operates just a given tenant
@@ -116,7 +116,7 @@ Multi-tenancy screens
116
116
 
117
117
  KAUI has been enriched with new models and new screens to manage the multi-tenancy, and those are available for the multi-tenant admin user:
118
118
 
119
- * The `kaui_tenants` table will list the available tenants (from KAUI point of view); note that this is redundant with the Kill Bill `tenants` table, and the reason is that the `api_secret` needs to maintained in KAUI as well, so listing the existing tenants from Kill Bill would not work since that key is encrypted and cannot be returned. A new screen mounted on `/admin_tenants` allows to configure new tenants. The view allows to create the new tenant in Kill Bill or simply updates the local KAUI config if the tenant already exists.
119
+ * The `kaui_tenants` table will list the available tenants (from KAUI point of view); note that this is redundant with the Kill Bill `tenants` table, and the reason is that the `api_secret` needs to be maintained in KAUI as well, so listing the existing tenants from Kill Bill would not work since that key is encrypted and cannot be returned. A new screen mounted on `/admin_tenants` allows to configure new tenants. The view allows to create the new tenant in Kill Bill or simply updates the local KAUI config if the tenant already exists.
120
120
  * The `kaui_allowed_users` table along with the join table `kaui_allowed_user_tenants` will list all the users in the system that can access specific tenants. The join table is required since a given user could access multiple tenants (e.g multi-tenant admin user), and at the same time many users could access the same tenant. A new screen mounted on `/admin_allowed_users` allows to configure the set of allowed users associated to specific tenants.
121
121
 
122
122
 
@@ -58,6 +58,11 @@ module Kaui
58
58
 
59
59
  def show
60
60
  @tenant = Kaui::Tenant.find(params[:id])
61
+ user = current_user
62
+ if @tenant.kaui_allowed_users.index { |e| e.kb_username == user.kb_username}.nil?
63
+ flash[:error] = "Does not have permissions to see tenant id #{params[:id]}"
64
+ redirect_to admin_tenants_path and return
65
+ end
61
66
  render
62
67
  end
63
68
 
@@ -33,9 +33,15 @@ module Kaui
33
33
  #
34
34
  to_be_model, action = permission.split(':')
35
35
  # Currently the only actions implemented for overdue and catalog (upload_config) are those implemented at the tenant level:
36
- if to_be_model == 'tenant' || 'overdue' || 'catalog'
36
+ if to_be_model == 'tenant' ||
37
+ to_be_model == 'overdue' ||
38
+ to_be_model == 'catalog'
37
39
  to_be_model = 'admin_tenant'
38
40
  end
41
+ if to_be_model == 'entitlement'
42
+ to_be_model = 'subscription'
43
+ end
44
+
39
45
  [to_be_model, action]
40
46
  end
41
47
  end
@@ -1,13 +1,13 @@
1
- <% if can? :view, Kaui::AdminTenant %>
2
- <dl class="dl-horizontal">
3
- <dt>Name:</dt>
4
- <dd><%= @tenant.name %>&nbsp;</dd>
5
- <dt>Tenant ID:</dt>
6
- <dd><%= @tenant.kb_tenant_id %>&nbsp;</dd>
7
- <dt>API Key:</dt>
8
- <dd><%= @tenant.api_key %>&nbsp;</dd>
9
- </dl>
1
+ <dl class="dl-horizontal">
2
+ <dt>Name:</dt>
3
+ <dd><%= @tenant.name %>&nbsp;</dd>
4
+ <dt>Tenant ID:</dt>
5
+ <dd><%= @tenant.kb_tenant_id %>&nbsp;</dd>
6
+ <dt>API Key:</dt>
7
+ <dd><%= @tenant.api_key %>&nbsp;</dd>
8
+ </dl>
10
9
 
10
+ <% if can? :view, Kaui::AdminTenant %>
11
11
  <% unless @tenant.kaui_allowed_users.empty? %>
12
12
  <h3>Allowed Users:</h3>
13
13
  <table id="allowed-users-for-tenant-table" class="table table-condensed">
data/kaui.gemspec CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
27
27
  s.add_dependency 'money-rails', '~> 0.8.1'
28
28
  s.add_dependency 'd3_rails', '~> 3.2.8'
29
29
  s.add_dependency 'twitter-bootstrap-rails', '~> 2.2.8'
30
- s.add_dependency 'killbill-client', '~> 0.10.6'
30
+ s.add_dependency 'killbill-client', '~> 0.10.7'
31
31
  s.add_dependency 'devise', '~> 3.0.2'
32
32
  s.add_dependency 'cancan', '~> 1.6.10'
33
33
  s.add_dependency 'carmen-rails', '~> 1.0.0'
data/lib/kaui/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kaui
2
- VERSION = '0.8.3'
2
+ VERSION = '0.8.4'
3
3
  end
@@ -2,7 +2,6 @@ require 'test_helper'
2
2
 
3
3
  module Kaui
4
4
  class AdminTenantsControllerTest < Kaui::FunctionalTestHelper
5
-
6
5
  test "should get new" do
7
6
  post :new
8
7
  assert_response :success
@@ -10,26 +9,45 @@ module Kaui
10
9
 
11
10
  test "should get create" do
12
11
  now = Time.now.to_s
13
- post :create, :tenant => { :name => 'Goldorak_' + now, :api_key => '12345_' + now, :api_secret => 'ItH@st0beComplic@ted'}
12
+ post :create, { :tenant => { :name => 'Goldorak_' + now, :api_key => '12345_' + now, :api_secret => 'ItH@st0beComplic@ted'}, :create_tenant => true}
14
13
  assert_response 302
15
14
  end
16
15
 
17
16
 
18
- test "should get show" do
17
+ test "should get index" do
18
+ get :index
19
+ assert_response :success
20
+ end
21
+
22
+ test "should get show with allowed user" do
19
23
  tenant = Kaui::Tenant.new
20
24
  tenant.name = 'foo'
21
25
  tenant.api_key = 'api_key'
22
26
  tenant.api_secret = 'api_secret'
23
27
  tenant.kb_tenant_id = 'kb_tenant_id'
24
28
  tenant.save!
29
+
30
+ # Add an allowed user that will verify that we can only
31
+ au = Kaui::AllowedUser.find_by_kb_username('admin')
32
+ au.kaui_tenants << tenant
33
+
25
34
  get :show, :id => tenant.id
26
35
  assert_response :success
27
36
  end
28
37
 
38
+ test "should get show with NO allowed user" do
39
+ tenant = Kaui::Tenant.new
40
+ tenant.name = 'foo'
41
+ tenant.api_key = 'api_key'
42
+ tenant.api_secret = 'api_secret'
43
+ tenant.kb_tenant_id = 'kb_tenant_id'
44
+ tenant.save!
29
45
 
30
- test "should get index" do
31
- get :index
32
- assert_response :success
46
+ get :show, :id => tenant.id
47
+ assert_response 302
48
+ # Clear it before we call check_no_flash_error
49
+ flash[:error] = nil
33
50
  end
51
+
34
52
  end
35
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Killbill core team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-03 00:00:00.000000000 Z
11
+ date: 2015-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.10.6
89
+ version: 0.10.7
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.10.6
96
+ version: 0.10.7
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: devise
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -497,7 +497,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
497
497
  version: '0'
498
498
  requirements: []
499
499
  rubyforge_project:
500
- rubygems_version: 2.2.2
500
+ rubygems_version: 2.4.6
501
501
  signing_key:
502
502
  specification_version: 4
503
503
  summary: Killbill Admin UI mountable engine