knock 1.4.2 → 1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +8 -8
  2. data/app/controllers/knock/application_controller.rb +1 -1
  3. data/app/controllers/knock/auth_token_controller.rb +32 -7
  4. data/app/model/knock/auth_token.rb +31 -7
  5. data/lib/generators/knock/token_controller_generator.rb +25 -0
  6. data/lib/generators/templates/entity_token_controller.rb.erb +2 -0
  7. data/lib/generators/templates/knock.rb +25 -3
  8. data/lib/knock.rb +7 -0
  9. data/lib/knock/authenticable.rb +45 -6
  10. data/lib/knock/version.rb +1 -1
  11. data/test/controllers/knock/auth_token_controller_test.rb +11 -0
  12. data/test/dummy/app/controllers/admin_protected_controller.rb +7 -0
  13. data/test/dummy/app/controllers/admin_token_controller.rb +2 -0
  14. data/test/dummy/app/controllers/composite_name_entity_protected_controller.rb +7 -0
  15. data/test/dummy/app/controllers/vendor_protected_controller.rb +11 -0
  16. data/test/dummy/app/controllers/vendor_token_controller.rb +2 -0
  17. data/test/dummy/app/models/admin.rb +16 -0
  18. data/test/dummy/app/models/composite_name_entity.rb +3 -0
  19. data/test/dummy/app/models/vendor.rb +3 -0
  20. data/test/dummy/config/initializers/knock.rb +10 -0
  21. data/test/dummy/config/routes.rb +8 -0
  22. data/test/dummy/db/migrate/20160519075733_create_admins.rb +10 -0
  23. data/test/dummy/db/migrate/20160522051816_create_vendors.rb +10 -0
  24. data/test/dummy/db/migrate/20160522181712_create_composite_name_entities.rb +10 -0
  25. data/test/dummy/db/schema.rb +22 -1
  26. data/test/dummy/db/test.sqlite3 +0 -0
  27. data/test/dummy/log/test.log +333 -91
  28. data/test/dummy/test/controllers/admin_protected_controller_test.rb +49 -0
  29. data/test/dummy/test/controllers/admin_token_controller_test.rb +22 -0
  30. data/test/dummy/test/controllers/composite_name_entity_protected_controller_test.rb +49 -0
  31. data/test/dummy/test/controllers/vendor_protected_controller_test.rb +55 -0
  32. data/test/dummy/test/controllers/vendor_token_controller_test.rb +22 -0
  33. data/test/dummy/test/models/admin_test.rb +7 -0
  34. data/test/dummy/test/models/vendor_test.rb +7 -0
  35. data/test/{dummy/test/fixtures/users.yml → fixtures/admins.yml} +1 -5
  36. data/test/fixtures/composite_name_entities.yml +5 -0
  37. data/test/fixtures/vendors.yml +5 -0
  38. data/test/generators/token_controller_generator_test.rb +31 -0
  39. data/test/model/knock/auth_token_test.rb +33 -9
  40. data/test/support/generators_test_helper.rb +9 -0
  41. data/test/test_helper.rb +9 -0
  42. data/test/tmp/app/controllers/admin_token_controller.rb +2 -0
  43. data/test/tmp/app/controllers/admin_user_token_controller.rb +2 -0
  44. data/test/tmp/app/controllers/user_admin_token_controller.rb +2 -0
  45. data/test/tmp/app/controllers/user_token_controller.rb +2 -0
  46. data/test/tmp/config/routes.rb +17 -0
  47. metadata +76 -6
  48. data/test/tmp/config/initializers/knock.rb +0 -86
@@ -0,0 +1,49 @@
1
+ require 'test_helper'
2
+
3
+ class AdminProtectedControllerTest < ActionController::TestCase
4
+ def valid_auth
5
+ @admin = admins(:one)
6
+ @token = Knock::AuthToken.new(payload: { sub: @admin.id }).token
7
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
8
+ end
9
+
10
+ def invalid_token_auth
11
+ @token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9'
12
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
13
+ end
14
+
15
+ def invalid_entity_auth
16
+ @token = Knock::AuthToken.new(payload: { sub: 0 }).token
17
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
18
+ end
19
+
20
+ test "responds with unauthorized" do
21
+ get :index
22
+ assert_response :unauthorized
23
+ end
24
+
25
+ test "responds with unauthorized to invalid token" do
26
+ invalid_token_auth
27
+ get :index
28
+ assert_response :unauthorized
29
+ end
30
+
31
+ test "responds with unauthorized to invalid entity" do
32
+ invalid_entity_auth
33
+ get :index
34
+ assert_response :unauthorized
35
+ end
36
+
37
+ test "responds with success if authenticated" do
38
+ valid_auth
39
+ get :index
40
+ assert_response :success
41
+ end
42
+
43
+ test "has a current_admin after authentication" do
44
+ valid_auth
45
+ get :index
46
+ assert_response :success
47
+ assert @controller.current_admin.id == @admin.id
48
+ end
49
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ class AdminTokenControllerTest < ActionController::TestCase
4
+ def setup
5
+ @admin = admins(:one)
6
+ end
7
+
8
+ test "responds with 404 if user does not exist" do
9
+ post :create, auth: { email: 'wrong@example.net', password: '' }
10
+ assert_response :not_found
11
+ end
12
+
13
+ test "responds with 404 if password is invalid" do
14
+ post :create, auth: { email: @admin.email, password: 'wrong' }
15
+ assert_response :not_found
16
+ end
17
+
18
+ test "responds with 201" do
19
+ post :create, auth: { email: @admin.email, password: 'secret' }
20
+ assert_response :created
21
+ end
22
+ end
@@ -0,0 +1,49 @@
1
+ require 'test_helper'
2
+
3
+ class CompositeNameEntityProtectedControllerTest < ActionController::TestCase
4
+ def valid_auth
5
+ @composite_name_entity = composite_name_entities(:one)
6
+ @token = Knock::AuthToken.new(payload: { sub: @composite_name_entity.id }).token
7
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
8
+ end
9
+
10
+ def invalid_token_auth
11
+ @token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9'
12
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
13
+ end
14
+
15
+ def invalid_entity_auth
16
+ @token = Knock::AuthToken.new(payload: { sub: 0 }).token
17
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
18
+ end
19
+
20
+ test "responds with unauthorized" do
21
+ get :index
22
+ assert_response :unauthorized
23
+ end
24
+
25
+ test "responds with unauthorized to invalid token" do
26
+ invalid_token_auth
27
+ get :index
28
+ assert_response :unauthorized
29
+ end
30
+
31
+ test "responds with unauthorized to invalid entity" do
32
+ invalid_entity_auth
33
+ get :index
34
+ assert_response :unauthorized
35
+ end
36
+
37
+ test "responds with success if authenticated" do
38
+ valid_auth
39
+ get :index
40
+ assert_response :success
41
+ end
42
+
43
+ test "has a current_composite_name_entity after authentication" do
44
+ valid_auth
45
+ get :index
46
+ assert_response :success
47
+ assert @controller.current_composite_name_entity.id == @composite_name_entity.id
48
+ end
49
+ end
@@ -0,0 +1,55 @@
1
+ require 'test_helper'
2
+
3
+ class VendorProtectedControllerTest < ActionController::TestCase
4
+ def valid_auth
5
+ @vendor = vendors(:one)
6
+ @token = Knock::AuthToken.new(payload: { sub: @vendor.id }).token
7
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
8
+ end
9
+
10
+ def invalid_token_auth
11
+ @token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9'
12
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
13
+ end
14
+
15
+ def invalid_entity_auth
16
+ @token = Knock::AuthToken.new(payload: { sub: 0 }).token
17
+ @request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
18
+ end
19
+
20
+ test "responds with unauthorized" do
21
+ get :index
22
+ assert_response :unauthorized
23
+ end
24
+
25
+ test "responds with unauthorized to invalid token" do
26
+ invalid_token_auth
27
+ get :index
28
+ assert_response :unauthorized
29
+ end
30
+
31
+ test "responds with unauthorized to invalid entity" do
32
+ invalid_entity_auth
33
+ get :index
34
+ assert_response :unauthorized
35
+ end
36
+
37
+ test "responds with success if authenticated" do
38
+ valid_auth
39
+ get :index
40
+ assert_response :success
41
+ end
42
+
43
+ test "has a current_vendor after authentication" do
44
+ valid_auth
45
+ get :index
46
+ assert_response :success
47
+ assert @controller.current_vendor.id == @vendor.id
48
+ end
49
+
50
+ test "raises method missing error appropriately" do
51
+ assert_raises(NoMethodError) do
52
+ get :show, id: 1
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ class VendorTokenControllerTest < ActionController::TestCase
4
+ def setup
5
+ @vendor = vendors(:one)
6
+ end
7
+
8
+ test "responds with 404 if user does not exist" do
9
+ post :create, auth: { email: 'wrong@example.net', password: '' }
10
+ assert_response :not_found
11
+ end
12
+
13
+ test "responds with 404 if password is invalid" do
14
+ post :create, auth: { email: @vendor.email, password: 'wrong' }
15
+ assert_response :not_found
16
+ end
17
+
18
+ test "responds with 201" do
19
+ post :create, auth: { email: @vendor.email, password: 'secret' }
20
+ assert_response :created
21
+ end
22
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class AdminTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class VendorTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -1,9 +1,5 @@
1
1
  # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
2
 
3
3
  one:
4
- email: one@example.net
5
- password_digest: <%= BCrypt::Password.create('secret', cost: 4) %>
6
-
7
- two:
8
- email: two@example.net
4
+ email: admin.one@example.net
9
5
  password_digest: <%= BCrypt::Password.create('secret', cost: 4) %>
@@ -0,0 +1,5 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
+
3
+ one:
4
+ email: composite_name_entity.one@example.net
5
+ password_digest: <%= BCrypt::Password.create('secret', cost: 4) %>
@@ -0,0 +1,5 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
+
3
+ one:
4
+ email: vendor.one@example.net
5
+ password_digest: <%= BCrypt::Password.create('secret', cost: 4) %>
@@ -0,0 +1,31 @@
1
+ require "test_helper"
2
+
3
+ class TokenControllerGeneratorTest < Rails::Generators::TestCase
4
+ include GeneratorsTestHelper
5
+
6
+ tests Knock::TokenControllerGenerator
7
+ destination File.expand_path("../tmp", File.dirname(__FILE__))
8
+
9
+ setup :prepare_destination
10
+ setup :copy_routes
11
+
12
+ test "assert all files are properly created" do
13
+ run_generator ['User']
14
+ assert_file "app/controllers/user_token_controller.rb"
15
+
16
+ run_generator ['Admin']
17
+ assert_file "app/controllers/user_token_controller.rb"
18
+
19
+ run_generator ['AdminUser']
20
+ assert_file "app/controllers/admin_user_token_controller.rb"
21
+
22
+ require File.join(destination_root, "app/controllers/admin_user_token_controller.rb")
23
+ assert Object.const_defined?('AdminUserTokenController'), 'uninitialized constant AdminUserTokenController'
24
+
25
+ run_generator ['user_admin']
26
+ assert_file "app/controllers/user_admin_token_controller.rb"
27
+
28
+ require File.join(destination_root, "app/controllers/user_admin_token_controller.rb")
29
+ assert Object.const_defined?('UserAdminTokenController'), 'uninitialized constant UserAdminTokenController'
30
+ end
31
+ end
@@ -1,26 +1,28 @@
1
1
  require 'test_helper'
2
2
  require 'jwt'
3
+ require 'timecop'
3
4
 
4
5
  module Knock
5
6
  class AuthTokenTest < ActiveSupport::TestCase
6
- test "verify algorithm" do
7
- Knock.token_signature_algorithm = 'RS256'
7
+ setup do
8
8
  key = Knock.token_secret_signature_key.call
9
+ @token = JWT.encode({sub: '1'}, key, 'HS256')
10
+ end
9
11
 
10
- token = JWT.encode({sub: '1'}, key, 'HS256')
12
+ test "verify algorithm" do
13
+ Knock.token_signature_algorithm = 'RS256'
11
14
 
12
15
  assert_raises(JWT::IncorrectAlgorithm) {
13
- AuthToken.new(token: token)
16
+ AuthToken.new(token: @token)
14
17
  }
15
18
  end
16
19
 
17
20
  test "decode RSA encoded tokens" do
18
- user = users(:one)
19
21
  rsa_private = OpenSSL::PKey::RSA.generate 2048
20
22
  Knock.token_public_key = rsa_private.public_key
21
23
  Knock.token_signature_algorithm = 'RS256'
22
24
 
23
- token = JWT.encode({sub: user.id}, rsa_private, 'RS256')
25
+ token = JWT.encode({sub: "1"}, rsa_private, 'RS256')
24
26
 
25
27
  assert_nothing_raised { AuthToken.new(token: token) }
26
28
  end
@@ -41,11 +43,33 @@ module Knock
41
43
  Knock.token_audience = -> { 'bar' }
42
44
  key = Knock.token_secret_signature_key.call
43
45
 
44
- token = JWT.encode({sub: 'foo'}, key, 'HS256')
45
-
46
46
  assert_raises(JWT::InvalidAudError) {
47
- AuthToken.new token: token
47
+ AuthToken.new token: @token
48
48
  }
49
49
  end
50
+
51
+ test "validate expiration claim by default" do
52
+ token = Knock::AuthToken.new(payload: { sub: 'foo' }).token
53
+ Timecop.travel(25.hours.from_now) do
54
+ assert_raises(JWT::ExpiredSignature) {
55
+ Knock::AuthToken.new(token: token)
56
+ }
57
+ end
58
+ end
59
+
60
+ test "does not validate expiration claim with a nil token_lifetime" do
61
+ Knock.token_lifetime = nil
62
+
63
+ token = Knock::AuthToken.new(payload: { sub: 'foo' }).token
64
+ Timecop.travel(10.years.from_now) do
65
+ assert_not Knock::AuthToken.new(token: token).payload.has_key?('exp')
66
+ end
67
+ end
68
+
69
+ test "is serializable" do
70
+ auth_token = AuthToken.new token: @token
71
+
72
+ assert_equal("{\"jwt\":\"#{@token}\"}", auth_token.to_json)
73
+ end
50
74
  end
51
75
  end
@@ -0,0 +1,9 @@
1
+ module GeneratorsTestHelper
2
+ def copy_routes
3
+ routes = File.expand_path("../../dummy/config/routes.rb", __FILE__)
4
+ destination = File.join(destination_root, "config")
5
+
6
+ FileUtils.mkdir_p(destination)
7
+ FileUtils.cp routes, destination
8
+ end
9
+ end
@@ -1,4 +1,7 @@
1
+ require 'simplecov'
1
2
  require "codeclimate-test-reporter"
3
+
4
+ SimpleCov.start
2
5
  CodeClimate::TestReporter.start
3
6
 
4
7
  # Configure Rails Environment
@@ -22,6 +25,11 @@ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
22
25
  ActiveSupport::TestCase.fixtures :all
23
26
  end
24
27
 
28
+ module Knock
29
+ class MyCustomException < StandardError
30
+ end
31
+ end
32
+
25
33
  # Make sure knock global configuration is reset before every tests
26
34
  # to avoid order dependent failures.
27
35
  class ActiveSupport::TestCase
@@ -34,5 +42,6 @@ class ActiveSupport::TestCase
34
42
  Knock.token_secret_signature_key = -> { Rails.application.secrets.secret_key_base }
35
43
  Knock.token_public_key = nil
36
44
  Knock.token_audience = nil
45
+ Knock.token_lifetime = 1.day
37
46
  end
38
47
  end
@@ -0,0 +1,2 @@
1
+ class AdminTokenController < Knock::AuthTokenController
2
+ end
@@ -0,0 +1,2 @@
1
+ class AdminUserTokenController < Knock::AuthTokenController
2
+ end
@@ -0,0 +1,2 @@
1
+ class UserAdminTokenController < Knock::AuthTokenController
2
+ end
@@ -0,0 +1,2 @@
1
+ class UserTokenController < Knock::AuthTokenController
2
+ end
@@ -0,0 +1,17 @@
1
+ Rails.application.routes.draw do
2
+ post 'user_admin_token' => 'user_admin_token#create'
3
+ post 'admin_user_token' => 'admin_user_token#create'
4
+ post 'admin_token' => 'admin_token#create'
5
+ post 'user_token' => 'user_token#create'
6
+ post 'admin_token' => 'admin_token#create'
7
+ post 'vendor_token' => 'vendor_token#create'
8
+
9
+ resources :protected_resources
10
+ resource :current_user
11
+
12
+ resources :admin_protected
13
+ resources :composite_name_entity_protected
14
+ resources :vendor_protected
15
+
16
+ mount Knock::Engine => "/knock"
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: '1.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arnaud MESUREUR
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-28 00:00:00.000000000 Z
12
+ date: 2016-05-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -67,6 +67,20 @@ dependencies:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
69
  version: '1.3'
70
+ - !ruby/object:Gem::Dependency
71
+ name: timecop
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 0.8.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: 0.8.0
70
84
  description: Authentication solution for Rails based on JWT
71
85
  email:
72
86
  - arnaud.mesureur@gmail.com
@@ -81,6 +95,8 @@ files:
81
95
  - app/model/knock/auth_token.rb
82
96
  - config/routes.rb
83
97
  - lib/generators/knock/install_generator.rb
98
+ - lib/generators/knock/token_controller_generator.rb
99
+ - lib/generators/templates/entity_token_controller.rb.erb
84
100
  - lib/generators/templates/knock.rb
85
101
  - lib/knock.rb
86
102
  - lib/knock/authenticable.rb
@@ -92,11 +108,19 @@ files:
92
108
  - test/dummy/Rakefile
93
109
  - test/dummy/app/assets/javascripts/application.js
94
110
  - test/dummy/app/assets/stylesheets/application.css
111
+ - test/dummy/app/controllers/admin_protected_controller.rb
112
+ - test/dummy/app/controllers/admin_token_controller.rb
95
113
  - test/dummy/app/controllers/application_controller.rb
114
+ - test/dummy/app/controllers/composite_name_entity_protected_controller.rb
96
115
  - test/dummy/app/controllers/current_users_controller.rb
97
116
  - test/dummy/app/controllers/protected_resources_controller.rb
117
+ - test/dummy/app/controllers/vendor_protected_controller.rb
118
+ - test/dummy/app/controllers/vendor_token_controller.rb
98
119
  - test/dummy/app/helpers/application_helper.rb
120
+ - test/dummy/app/models/admin.rb
121
+ - test/dummy/app/models/composite_name_entity.rb
99
122
  - test/dummy/app/models/user.rb
123
+ - test/dummy/app/models/vendor.rb
100
124
  - test/dummy/app/views/layouts/application.html.erb
101
125
  - test/dummy/bin/bundle
102
126
  - test/dummy/bin/rails
@@ -115,6 +139,7 @@ files:
115
139
  - test/dummy/config/initializers/cookies_serializer.rb
116
140
  - test/dummy/config/initializers/filter_parameter_logging.rb
117
141
  - test/dummy/config/initializers/inflections.rb
142
+ - test/dummy/config/initializers/knock.rb
118
143
  - test/dummy/config/initializers/mime_types.rb
119
144
  - test/dummy/config/initializers/session_store.rb
120
145
  - test/dummy/config/initializers/wrap_parameters.rb
@@ -122,6 +147,9 @@ files:
122
147
  - test/dummy/config/routes.rb
123
148
  - test/dummy/config/secrets.yml
124
149
  - test/dummy/db/migrate/20150713101607_create_users.rb
150
+ - test/dummy/db/migrate/20160519075733_create_admins.rb
151
+ - test/dummy/db/migrate/20160522051816_create_vendors.rb
152
+ - test/dummy/db/migrate/20160522181712_create_composite_name_entities.rb
125
153
  - test/dummy/db/schema.rb
126
154
  - test/dummy/db/test.sqlite3
127
155
  - test/dummy/log/test.log
@@ -129,16 +157,31 @@ files:
129
157
  - test/dummy/public/422.html
130
158
  - test/dummy/public/500.html
131
159
  - test/dummy/public/favicon.ico
160
+ - test/dummy/test/controllers/admin_protected_controller_test.rb
161
+ - test/dummy/test/controllers/admin_token_controller_test.rb
162
+ - test/dummy/test/controllers/composite_name_entity_protected_controller_test.rb
132
163
  - test/dummy/test/controllers/current_users_controller_test.rb
133
164
  - test/dummy/test/controllers/protected_resources_controller_test.rb
134
- - test/dummy/test/fixtures/users.yml
165
+ - test/dummy/test/controllers/vendor_protected_controller_test.rb
166
+ - test/dummy/test/controllers/vendor_token_controller_test.rb
167
+ - test/dummy/test/models/admin_test.rb
135
168
  - test/dummy/test/models/user_test.rb
169
+ - test/dummy/test/models/vendor_test.rb
170
+ - test/fixtures/admins.yml
171
+ - test/fixtures/composite_name_entities.yml
136
172
  - test/fixtures/users.yml
173
+ - test/fixtures/vendors.yml
137
174
  - test/generators/install_generator_test.rb
175
+ - test/generators/token_controller_generator_test.rb
138
176
  - test/knock_test.rb
139
177
  - test/model/knock/auth_token_test.rb
178
+ - test/support/generators_test_helper.rb
140
179
  - test/test_helper.rb
141
- - test/tmp/config/initializers/knock.rb
180
+ - test/tmp/app/controllers/admin_token_controller.rb
181
+ - test/tmp/app/controllers/admin_user_token_controller.rb
182
+ - test/tmp/app/controllers/user_admin_token_controller.rb
183
+ - test/tmp/app/controllers/user_token_controller.rb
184
+ - test/tmp/config/routes.rb
142
185
  homepage: https://github.com/nsarno/knock
143
186
  licenses:
144
187
  - MIT
@@ -169,11 +212,19 @@ test_files:
169
212
  - test/dummy/Rakefile
170
213
  - test/dummy/app/assets/javascripts/application.js
171
214
  - test/dummy/app/assets/stylesheets/application.css
215
+ - test/dummy/app/controllers/admin_protected_controller.rb
216
+ - test/dummy/app/controllers/admin_token_controller.rb
172
217
  - test/dummy/app/controllers/application_controller.rb
218
+ - test/dummy/app/controllers/composite_name_entity_protected_controller.rb
173
219
  - test/dummy/app/controllers/current_users_controller.rb
174
220
  - test/dummy/app/controllers/protected_resources_controller.rb
221
+ - test/dummy/app/controllers/vendor_protected_controller.rb
222
+ - test/dummy/app/controllers/vendor_token_controller.rb
175
223
  - test/dummy/app/helpers/application_helper.rb
224
+ - test/dummy/app/models/admin.rb
225
+ - test/dummy/app/models/composite_name_entity.rb
176
226
  - test/dummy/app/models/user.rb
227
+ - test/dummy/app/models/vendor.rb
177
228
  - test/dummy/app/views/layouts/application.html.erb
178
229
  - test/dummy/bin/bundle
179
230
  - test/dummy/bin/rails
@@ -192,6 +243,7 @@ test_files:
192
243
  - test/dummy/config/initializers/cookies_serializer.rb
193
244
  - test/dummy/config/initializers/filter_parameter_logging.rb
194
245
  - test/dummy/config/initializers/inflections.rb
246
+ - test/dummy/config/initializers/knock.rb
195
247
  - test/dummy/config/initializers/mime_types.rb
196
248
  - test/dummy/config/initializers/session_store.rb
197
249
  - test/dummy/config/initializers/wrap_parameters.rb
@@ -199,6 +251,9 @@ test_files:
199
251
  - test/dummy/config/routes.rb
200
252
  - test/dummy/config/secrets.yml
201
253
  - test/dummy/db/migrate/20150713101607_create_users.rb
254
+ - test/dummy/db/migrate/20160519075733_create_admins.rb
255
+ - test/dummy/db/migrate/20160522051816_create_vendors.rb
256
+ - test/dummy/db/migrate/20160522181712_create_composite_name_entities.rb
202
257
  - test/dummy/db/schema.rb
203
258
  - test/dummy/db/test.sqlite3
204
259
  - test/dummy/log/test.log
@@ -206,13 +261,28 @@ test_files:
206
261
  - test/dummy/public/422.html
207
262
  - test/dummy/public/500.html
208
263
  - test/dummy/public/favicon.ico
264
+ - test/dummy/test/controllers/admin_protected_controller_test.rb
265
+ - test/dummy/test/controllers/admin_token_controller_test.rb
266
+ - test/dummy/test/controllers/composite_name_entity_protected_controller_test.rb
209
267
  - test/dummy/test/controllers/current_users_controller_test.rb
210
268
  - test/dummy/test/controllers/protected_resources_controller_test.rb
211
- - test/dummy/test/fixtures/users.yml
269
+ - test/dummy/test/controllers/vendor_protected_controller_test.rb
270
+ - test/dummy/test/controllers/vendor_token_controller_test.rb
271
+ - test/dummy/test/models/admin_test.rb
212
272
  - test/dummy/test/models/user_test.rb
273
+ - test/dummy/test/models/vendor_test.rb
274
+ - test/fixtures/admins.yml
275
+ - test/fixtures/composite_name_entities.yml
213
276
  - test/fixtures/users.yml
277
+ - test/fixtures/vendors.yml
214
278
  - test/generators/install_generator_test.rb
279
+ - test/generators/token_controller_generator_test.rb
215
280
  - test/knock_test.rb
216
281
  - test/model/knock/auth_token_test.rb
282
+ - test/support/generators_test_helper.rb
217
283
  - test/test_helper.rb
218
- - test/tmp/config/initializers/knock.rb
284
+ - test/tmp/config/routes.rb
285
+ - test/tmp/app/controllers/user_token_controller.rb
286
+ - test/tmp/app/controllers/admin_token_controller.rb
287
+ - test/tmp/app/controllers/admin_user_token_controller.rb
288
+ - test/tmp/app/controllers/user_admin_token_controller.rb