capcoauth 0.4.0 → 0.5.0

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +15 -35
  3. data/.rspec +1 -0
  4. data/.travis.yml +11 -0
  5. data/Gemfile +10 -0
  6. data/Gemfile.lock +171 -0
  7. data/README.md +3 -1
  8. data/Rakefile +7 -7
  9. data/app/controllers/capcoauth/application_controller.rb +8 -1
  10. data/app/controllers/capcoauth/login_controller.rb +5 -1
  11. data/app/controllers/capcoauth/logout_controller.rb +2 -6
  12. data/capcoauth.gemspec +13 -6
  13. data/lib/capcoauth/config.rb +52 -58
  14. data/lib/capcoauth/errors.rb +3 -0
  15. data/lib/capcoauth/notifications.rb +11 -9
  16. data/lib/capcoauth/oauth/access_token.rb +0 -1
  17. data/lib/capcoauth/oauth/token_verifier.rb +15 -10
  18. data/lib/capcoauth/rails/helpers.rb +45 -44
  19. data/lib/capcoauth/version.rb +11 -1
  20. data/lib/capcoauth.rb +1 -9
  21. data/lib/generators/capcoauth/templates/initializer.rb +23 -12
  22. data/spec/dummy/Rakefile +7 -0
  23. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  24. data/spec/dummy/app/controllers/full_protected_resources_controller.rb +12 -0
  25. data/spec/dummy/app/controllers/home_controller.rb +17 -0
  26. data/spec/dummy/app/controllers/metal_controller.rb +11 -0
  27. data/spec/dummy/app/controllers/semi_protected_resources_controller.rb +11 -0
  28. data/spec/dummy/app/models/user.rb +3 -0
  29. data/spec/dummy/app/views/home/index.html.erb +0 -0
  30. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  31. data/spec/dummy/config/application.rb +16 -0
  32. data/spec/dummy/config/boot.rb +6 -0
  33. data/spec/dummy/config/database.yml +15 -0
  34. data/spec/dummy/config/environment.rb +5 -0
  35. data/spec/dummy/config/environments/development.rb +29 -0
  36. data/spec/dummy/config/environments/production.rb +62 -0
  37. data/spec/dummy/config/environments/test.rb +42 -0
  38. data/spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb +6 -0
  39. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  40. data/spec/dummy/config/initializers/capcoauth.rb +41 -0
  41. data/spec/dummy/config/initializers/secret_token.rb +9 -0
  42. data/spec/dummy/config/initializers/session_store.rb +8 -0
  43. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  44. data/spec/dummy/config/routes.rb +50 -0
  45. data/spec/dummy/config.ru +4 -0
  46. data/spec/dummy/db/migrate/20111122132257_create_users.rb +9 -0
  47. data/spec/dummy/db/schema.rb +22 -0
  48. data/spec/dummy/public/404.html +26 -0
  49. data/spec/dummy/public/422.html +26 -0
  50. data/spec/dummy/public/500.html +26 -0
  51. data/spec/dummy/public/favicon.ico +0 -0
  52. data/spec/dummy/script/rails +6 -0
  53. data/spec/generators/install_generator_spec.rb +27 -0
  54. data/spec/generators/templates/routes.rb +3 -0
  55. data/spec/lib/capcoauth/oauth/access_token_spec.rb +31 -0
  56. data/spec/lib/capcoauth/oauth/token_verifier_spec.rb +121 -0
  57. data/spec/lib/capcoauth/oauth/ttl_cache_spec.rb +88 -0
  58. data/spec/lib/capcoauth_spec.rb +3 -0
  59. data/spec/lib/config_spec.rb +215 -0
  60. data/spec/lib/version_spec.rb +25 -0
  61. data/spec/spec_helper.rb +8 -0
  62. data/spec/spec_helper_integration.rb +50 -0
  63. data/spec/support/http_method_shim.rb +38 -0
  64. data/spec/support/orm/active_record.rb +3 -0
  65. metadata +172 -12
  66. data/lib/capcoauth/helpers/controller.rb +0 -15
@@ -0,0 +1,50 @@
1
+ require 'simplecov'
2
+ SimpleCov.start 'rails'
3
+
4
+ ENV['RAILS_ENV'] ||= 'test'
5
+ TABLE_NAME_PREFIX = ENV['table_name_prefix'] || nil
6
+ TABLE_NAME_SUFFIX = ENV['table_name_suffix'] || nil
7
+
8
+ $LOAD_PATH.unshift File.dirname(__FILE__)
9
+
10
+ require 'capybara/rspec'
11
+ require 'dummy/config/environment'
12
+ require 'rspec/rails'
13
+ require 'generator_spec/test_case'
14
+ require 'timecop'
15
+ require 'database_cleaner'
16
+
17
+ # Load JRuby SQLite3 if in that platform
18
+ begin
19
+ require 'jdbc/sqlite3'
20
+ Jdbc::SQLite3.load_driver
21
+ rescue LoadError
22
+ end
23
+
24
+ require 'support/orm/active_record'
25
+
26
+ ENGINE_RAILS_ROOT = File.join(File.dirname(__FILE__), '../')
27
+
28
+ Dir["#{File.dirname(__FILE__)}/support/{dependencies,helpers,shared}/*.rb"].each { |f| require f }
29
+
30
+ # Remove after dropping support of Rails 4.2
31
+ require "#{File.dirname(__FILE__)}/support/http_method_shim.rb"
32
+
33
+ RSpec.configure do |config|
34
+ config.infer_spec_type_from_file_location!
35
+ config.mock_with :rspec
36
+
37
+ config.infer_base_class_for_anonymous_controllers = false
38
+
39
+ config.include RSpec::Rails::RequestExampleGroup, type: :request
40
+
41
+ config.before do
42
+ DatabaseCleaner.start
43
+ end
44
+
45
+ config.after do
46
+ DatabaseCleaner.clean
47
+ end
48
+
49
+ config.order = 'random'
50
+ end
@@ -0,0 +1,38 @@
1
+ # Rails 5 deprecates calling HTTP action methods with positional arguments
2
+ # in favor of keyword arguments. However, the keyword argument form is only
3
+ # supported in Rails 5+. Since we support back to 4, we need some sort of shim
4
+ # to avoid super noisy deprecations when running tests.
5
+ module RoutingHTTPMethodShim
6
+ def get(path, params = {}, headers = nil)
7
+ super(path, params: params, headers: headers)
8
+ end
9
+
10
+ def post(path, params = {}, headers = nil)
11
+ super(path, params: params, headers: headers)
12
+ end
13
+
14
+ def put(path, params = {}, headers = nil)
15
+ super(path, params: params, headers: headers)
16
+ end
17
+ end
18
+
19
+ module ControllerHTTPMethodShim
20
+ def get(path, params = {})
21
+ super(path, params: params)
22
+ end
23
+
24
+ def post(path, params = {})
25
+ super(path, params: params)
26
+ end
27
+
28
+ def put(path, params = {})
29
+ super(path, params: params)
30
+ end
31
+ end
32
+
33
+ if ::Rails::VERSION::MAJOR >= 5
34
+ RSpec.configure do |config|
35
+ config.include ControllerHTTPMethodShim, type: :controller
36
+ config.include RoutingHTTPMethodShim, type: :request
37
+ end
38
+ end
@@ -0,0 +1,3 @@
1
+ # load schema to in memory sqlite
2
+ ActiveRecord::Migration.verbose = false
3
+ load Rails.root + 'db/schema.rb'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capcoauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Robertson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-01 00:00:00.000000000 Z
11
+ date: 2017-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -50,42 +50,112 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.13'
53
+ version: '0.14'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0.13'
60
+ version: '0.14'
61
61
  - !ruby/object:Gem::Dependency
62
- name: rake
62
+ name: capybara
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: database_cleaner
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 1.5.3
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 1.5.3
89
+ - !ruby/object:Gem::Dependency
90
+ name: factory_girl
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 4.7.0
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 4.7.0
103
+ - !ruby/object:Gem::Dependency
104
+ name: generator_spec
63
105
  requirement: !ruby/object:Gem::Requirement
64
106
  requirements:
65
107
  - - "~>"
66
108
  - !ruby/object:Gem::Version
67
- version: '10.5'
109
+ version: 0.9.3
68
110
  type: :development
69
111
  prerelease: false
70
112
  version_requirements: !ruby/object:Gem::Requirement
71
113
  requirements:
72
114
  - - "~>"
73
115
  - !ruby/object:Gem::Version
74
- version: '10.5'
116
+ version: 0.9.3
117
+ - !ruby/object:Gem::Dependency
118
+ name: rake
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 11.3.0
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 11.3.0
75
131
  - !ruby/object:Gem::Dependency
76
132
  name: rspec-rails
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: timecop
77
147
  requirement: !ruby/object:Gem::Requirement
78
148
  requirements:
79
149
  - - "~>"
80
150
  - !ruby/object:Gem::Version
81
- version: '3.4'
151
+ version: 0.8.1
82
152
  type: :development
83
153
  prerelease: false
84
154
  version_requirements: !ruby/object:Gem::Requirement
85
155
  requirements:
86
156
  - - "~>"
87
157
  - !ruby/object:Gem::Version
88
- version: '3.4'
158
+ version: 0.8.1
89
159
  description: capcoauth-gem is a library to integrate Rails applications with Capcoauth
90
160
  authentication service
91
161
  email:
@@ -95,6 +165,10 @@ extensions: []
95
165
  extra_rdoc_files: []
96
166
  files:
97
167
  - ".gitignore"
168
+ - ".rspec"
169
+ - ".travis.yml"
170
+ - Gemfile
171
+ - Gemfile.lock
98
172
  - LICENSE
99
173
  - README.md
100
174
  - Rakefile
@@ -106,7 +180,7 @@ files:
106
180
  - lib/capcoauth.rb
107
181
  - lib/capcoauth/config.rb
108
182
  - lib/capcoauth/engine.rb
109
- - lib/capcoauth/helpers/controller.rb
183
+ - lib/capcoauth/errors.rb
110
184
  - lib/capcoauth/notifications.rb
111
185
  - lib/capcoauth/oauth/access_token.rb
112
186
  - lib/capcoauth/oauth/token_verifier.rb
@@ -119,6 +193,49 @@ files:
119
193
  - lib/generators/capcoauth/install_generator.rb
120
194
  - lib/generators/capcoauth/templates/README
121
195
  - lib/generators/capcoauth/templates/initializer.rb
196
+ - spec/dummy/Rakefile
197
+ - spec/dummy/app/controllers/application_controller.rb
198
+ - spec/dummy/app/controllers/full_protected_resources_controller.rb
199
+ - spec/dummy/app/controllers/home_controller.rb
200
+ - spec/dummy/app/controllers/metal_controller.rb
201
+ - spec/dummy/app/controllers/semi_protected_resources_controller.rb
202
+ - spec/dummy/app/models/user.rb
203
+ - spec/dummy/app/views/home/index.html.erb
204
+ - spec/dummy/app/views/layouts/application.html.erb
205
+ - spec/dummy/config.ru
206
+ - spec/dummy/config/application.rb
207
+ - spec/dummy/config/boot.rb
208
+ - spec/dummy/config/database.yml
209
+ - spec/dummy/config/environment.rb
210
+ - spec/dummy/config/environments/development.rb
211
+ - spec/dummy/config/environments/production.rb
212
+ - spec/dummy/config/environments/test.rb
213
+ - spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb
214
+ - spec/dummy/config/initializers/backtrace_silencers.rb
215
+ - spec/dummy/config/initializers/capcoauth.rb
216
+ - spec/dummy/config/initializers/secret_token.rb
217
+ - spec/dummy/config/initializers/session_store.rb
218
+ - spec/dummy/config/initializers/wrap_parameters.rb
219
+ - spec/dummy/config/routes.rb
220
+ - spec/dummy/db/migrate/20111122132257_create_users.rb
221
+ - spec/dummy/db/schema.rb
222
+ - spec/dummy/public/404.html
223
+ - spec/dummy/public/422.html
224
+ - spec/dummy/public/500.html
225
+ - spec/dummy/public/favicon.ico
226
+ - spec/dummy/script/rails
227
+ - spec/generators/install_generator_spec.rb
228
+ - spec/generators/templates/routes.rb
229
+ - spec/lib/capcoauth/oauth/access_token_spec.rb
230
+ - spec/lib/capcoauth/oauth/token_verifier_spec.rb
231
+ - spec/lib/capcoauth/oauth/ttl_cache_spec.rb
232
+ - spec/lib/capcoauth_spec.rb
233
+ - spec/lib/config_spec.rb
234
+ - spec/lib/version_spec.rb
235
+ - spec/spec_helper.rb
236
+ - spec/spec_helper_integration.rb
237
+ - spec/support/http_method_shim.rb
238
+ - spec/support/orm/active_record.rb
122
239
  homepage: https://github.com/arcreative/capcoauth-gem
123
240
  licenses:
124
241
  - MIT
@@ -131,7 +248,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
248
  requirements:
132
249
  - - ">="
133
250
  - !ruby/object:Gem::Version
134
- version: '0'
251
+ version: '2.1'
135
252
  required_rubygems_version: !ruby/object:Gem::Requirement
136
253
  requirements:
137
254
  - - ">="
@@ -143,4 +260,47 @@ rubygems_version: 2.6.7
143
260
  signing_key:
144
261
  specification_version: 4
145
262
  summary: Integration with Capcoauth authentication service
146
- test_files: []
263
+ test_files:
264
+ - spec/dummy/Rakefile
265
+ - spec/dummy/app/controllers/application_controller.rb
266
+ - spec/dummy/app/controllers/full_protected_resources_controller.rb
267
+ - spec/dummy/app/controllers/home_controller.rb
268
+ - spec/dummy/app/controllers/metal_controller.rb
269
+ - spec/dummy/app/controllers/semi_protected_resources_controller.rb
270
+ - spec/dummy/app/models/user.rb
271
+ - spec/dummy/app/views/home/index.html.erb
272
+ - spec/dummy/app/views/layouts/application.html.erb
273
+ - spec/dummy/config.ru
274
+ - spec/dummy/config/application.rb
275
+ - spec/dummy/config/boot.rb
276
+ - spec/dummy/config/database.yml
277
+ - spec/dummy/config/environment.rb
278
+ - spec/dummy/config/environments/development.rb
279
+ - spec/dummy/config/environments/production.rb
280
+ - spec/dummy/config/environments/test.rb
281
+ - spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb
282
+ - spec/dummy/config/initializers/backtrace_silencers.rb
283
+ - spec/dummy/config/initializers/capcoauth.rb
284
+ - spec/dummy/config/initializers/secret_token.rb
285
+ - spec/dummy/config/initializers/session_store.rb
286
+ - spec/dummy/config/initializers/wrap_parameters.rb
287
+ - spec/dummy/config/routes.rb
288
+ - spec/dummy/db/migrate/20111122132257_create_users.rb
289
+ - spec/dummy/db/schema.rb
290
+ - spec/dummy/public/404.html
291
+ - spec/dummy/public/422.html
292
+ - spec/dummy/public/500.html
293
+ - spec/dummy/public/favicon.ico
294
+ - spec/dummy/script/rails
295
+ - spec/generators/install_generator_spec.rb
296
+ - spec/generators/templates/routes.rb
297
+ - spec/lib/capcoauth/oauth/access_token_spec.rb
298
+ - spec/lib/capcoauth/oauth/token_verifier_spec.rb
299
+ - spec/lib/capcoauth/oauth/ttl_cache_spec.rb
300
+ - spec/lib/capcoauth_spec.rb
301
+ - spec/lib/config_spec.rb
302
+ - spec/lib/version_spec.rb
303
+ - spec/spec_helper.rb
304
+ - spec/spec_helper_integration.rb
305
+ - spec/support/http_method_shim.rb
306
+ - spec/support/orm/active_record.rb
@@ -1,15 +0,0 @@
1
- module Capcoauth
2
- module Helpers
3
- module Controller
4
- extend ActiveSupport::Concern
5
-
6
- def capcoauth_token
7
- @capcoauth_token ||= OAuth::AccessToken.new(session[:capcoauth_access_token])
8
- end
9
-
10
- def oauth_callback_url
11
- "#{root_url}auth/callback"
12
- end
13
- end
14
- end
15
- end