doorkeeper 0.5.0 → 0.6.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of doorkeeper might be problematic. Click here for more details.

Files changed (105) hide show
  1. data/.travis.yml +15 -6
  2. data/CHANGELOG.md +19 -1
  3. data/Gemfile +23 -7
  4. data/README.md +62 -27
  5. data/app/controllers/doorkeeper/application_controller.rb +1 -1
  6. data/app/controllers/doorkeeper/authorizations_controller.rb +45 -35
  7. data/app/controllers/doorkeeper/token_info_controller.rb +10 -9
  8. data/app/controllers/doorkeeper/tokens_controller.rb +13 -32
  9. data/app/validators/redirect_uri_validator.rb +11 -0
  10. data/app/views/doorkeeper/applications/_form.html.erb +6 -1
  11. data/app/views/doorkeeper/applications/edit.html.erb +2 -2
  12. data/app/views/doorkeeper/applications/new.html.erb +2 -2
  13. data/app/views/doorkeeper/applications/show.html.erb +4 -1
  14. data/app/views/doorkeeper/authorizations/error.html.erb +1 -1
  15. data/app/views/doorkeeper/authorizations/new.html.erb +17 -17
  16. data/app/views/doorkeeper/authorizations/show.html.erb +4 -0
  17. data/config/locales/en.yml +10 -0
  18. data/doorkeeper.gemspec +3 -3
  19. data/lib/doorkeeper.rb +11 -2
  20. data/lib/doorkeeper/config.rb +6 -1
  21. data/lib/doorkeeper/errors.rb +15 -0
  22. data/lib/doorkeeper/helpers/controller.rb +24 -0
  23. data/lib/doorkeeper/models/access_grant.rb +1 -1
  24. data/lib/doorkeeper/models/access_token.rb +2 -3
  25. data/lib/doorkeeper/models/active_record/access_token.rb +6 -0
  26. data/lib/doorkeeper/models/mongo_mapper/access_grant.rb +28 -0
  27. data/lib/doorkeeper/models/mongo_mapper/access_token.rb +51 -0
  28. data/lib/doorkeeper/models/mongo_mapper/application.rb +30 -0
  29. data/lib/doorkeeper/models/mongo_mapper/revocable.rb +15 -0
  30. data/lib/doorkeeper/models/{mongoid → mongoid2}/access_grant.rb +1 -1
  31. data/lib/doorkeeper/models/{mongoid → mongoid2}/access_token.rb +6 -0
  32. data/lib/doorkeeper/models/{mongoid → mongoid2}/application.rb +2 -2
  33. data/lib/doorkeeper/models/mongoid3/access_grant.rb +22 -0
  34. data/lib/doorkeeper/models/mongoid3/access_token.rb +41 -0
  35. data/lib/doorkeeper/models/mongoid3/application.rb +22 -0
  36. data/lib/doorkeeper/oauth/authorization/code.rb +9 -17
  37. data/lib/doorkeeper/oauth/authorization/token.rb +8 -18
  38. data/lib/doorkeeper/oauth/authorization/uri_builder.rb +2 -0
  39. data/lib/doorkeeper/oauth/authorization_code_request.rb +82 -0
  40. data/lib/doorkeeper/oauth/client_credentials_request.rb +2 -4
  41. data/lib/doorkeeper/oauth/code_request.rb +28 -0
  42. data/lib/doorkeeper/oauth/code_response.rb +37 -0
  43. data/lib/doorkeeper/oauth/error_response.rb +23 -9
  44. data/lib/doorkeeper/oauth/helpers/uri_checker.rb +4 -0
  45. data/lib/doorkeeper/oauth/password_access_token_request.rb +21 -65
  46. data/lib/doorkeeper/oauth/pre_authorization.rb +62 -0
  47. data/lib/doorkeeper/oauth/refresh_token_request.rb +58 -0
  48. data/lib/doorkeeper/oauth/token_request.rb +28 -0
  49. data/lib/doorkeeper/oauth/token_response.rb +29 -0
  50. data/lib/doorkeeper/rails/routes.rb +4 -3
  51. data/lib/doorkeeper/request.rb +33 -0
  52. data/lib/doorkeeper/request/authorization_code.rb +23 -0
  53. data/lib/doorkeeper/request/client_credentials.rb +23 -0
  54. data/lib/doorkeeper/request/code.rb +24 -0
  55. data/lib/doorkeeper/request/password.rb +23 -0
  56. data/lib/doorkeeper/request/refresh_token.rb +23 -0
  57. data/lib/doorkeeper/request/token.rb +24 -0
  58. data/lib/doorkeeper/server.rb +54 -0
  59. data/lib/doorkeeper/validations.rb +1 -0
  60. data/lib/doorkeeper/version.rb +1 -1
  61. data/lib/generators/doorkeeper/mongo_mapper/indexes_generator.rb +12 -0
  62. data/lib/generators/doorkeeper/templates/README +15 -1
  63. data/lib/generators/doorkeeper/templates/indexes.rb +3 -0
  64. data/lib/generators/doorkeeper/templates/initializer.rb +8 -1
  65. data/script/run_all +9 -9
  66. data/spec/controllers/authorizations_controller_spec.rb +8 -19
  67. data/spec/controllers/token_info_controller_spec.rb +9 -9
  68. data/spec/controllers/tokens_controller_spec.rb +2 -1
  69. data/spec/dummy/app/models/user.rb +11 -4
  70. data/spec/dummy/config/application.rb +8 -1
  71. data/spec/dummy/config/boot.rb +1 -1
  72. data/spec/dummy/config/initializers/doorkeeper.rb +9 -1
  73. data/spec/dummy/config/mongo.yml +11 -0
  74. data/spec/dummy/config/{mongoid.yml → mongoid2.yml} +3 -1
  75. data/spec/dummy/config/mongoid3.yml +18 -0
  76. data/spec/generators/install_generator_spec.rb +1 -0
  77. data/spec/lib/oauth/authorization_code_request_spec.rb +80 -0
  78. data/spec/lib/oauth/client_credentials_request_spec.rb +1 -3
  79. data/spec/lib/oauth/code_request_spec.rb +44 -0
  80. data/spec/lib/oauth/error_response_spec.rb +7 -7
  81. data/spec/lib/oauth/password_access_token_request_spec.rb +30 -143
  82. data/spec/lib/oauth/pre_authorization_spec.rb +80 -0
  83. data/spec/lib/oauth/refresh_token_request_spec.rb +56 -0
  84. data/spec/lib/oauth/token_request_spec.rb +46 -0
  85. data/spec/lib/oauth/{client_credentials/response_spec.rb → token_response_spec.rb} +13 -19
  86. data/spec/lib/server_spec.rb +24 -0
  87. data/spec/requests/endpoints/authorization_spec.rb +11 -27
  88. data/spec/requests/endpoints/token_spec.rb +17 -0
  89. data/spec/requests/flows/authorization_code_errors_spec.rb +0 -45
  90. data/spec/requests/flows/authorization_code_spec.rb +12 -2
  91. data/spec/requests/flows/client_credentials_spec.rb +1 -1
  92. data/spec/requests/flows/password_spec.rb +1 -0
  93. data/spec/requests/flows/refresh_token_spec.rb +6 -4
  94. data/spec/spec_helper_integration.rb +4 -2
  95. data/spec/support/orm/mongo_mapper.rb +26 -0
  96. data/spec/support/orm/mongoid.rb +7 -2
  97. data/spec/validators/redirect_uri_validator_spec.rb +11 -4
  98. metadata +67 -42
  99. data/gemfiles/gemfile.rails-3.1.x +0 -17
  100. data/gemfiles/gemfile.rails-3.2.x +0 -17
  101. data/lib/doorkeeper/oauth/access_token_request.rb +0 -139
  102. data/lib/doorkeeper/oauth/authorization_request.rb +0 -114
  103. data/lib/doorkeeper/oauth/client_credentials/response.rb +0 -42
  104. data/spec/lib/oauth/access_token_request_spec.rb +0 -246
  105. data/spec/lib/oauth/authorization_request_spec.rb +0 -287
@@ -2,7 +2,7 @@ DatabaseCleaner[:mongoid].strategy = :truncation
2
2
  DatabaseCleaner[:mongoid].clean_with :truncation
3
3
 
4
4
  RSpec.configure do |config|
5
- config.before :suite do
5
+ config.before do
6
6
  Doorkeeper::Application.create_indexes
7
7
  Doorkeeper::AccessGrant.create_indexes
8
8
  Doorkeeper::AccessToken.create_indexes
@@ -13,7 +13,12 @@ module Doorkeeper
13
13
  class PlaceholderApplicationOwner
14
14
  include Mongoid::Document
15
15
 
16
- self.store_in :placeholder_application_owners
16
+ if ::Mongoid::VERSION >= "3"
17
+ self.store_in :collection => :placeholder_application_owners
18
+ else
19
+ self.store_in :placeholder_application_owners
20
+ end
21
+
17
22
  has_many :applications
18
23
 
19
24
  end
@@ -1,7 +1,3 @@
1
- require 'spec_helper'
2
- require 'active_model'
3
- require 'validators/redirect_uri_validator'
4
-
5
1
  require 'spec_helper_integration'
6
2
 
7
3
  describe RedirectUriValidator do
@@ -14,6 +10,17 @@ describe RedirectUriValidator do
14
10
  subject.should be_valid
15
11
  end
16
12
 
13
+ it 'accepts test redirect uri' do
14
+ subject.redirect_uri = 'urn:ietf:wg:oauth:2.0:oob'
15
+ subject.should be_valid
16
+ end
17
+
18
+ it 'rejects if test uri is disabled' do
19
+ RedirectUriValidator.stub :test_redirect_uri => nil
20
+ subject.redirect_uri = "urn:some:test"
21
+ subject.should_not be_valid
22
+ end
23
+
17
24
  it 'is invalid when the uri is not a uri' do
18
25
  subject.redirect_uri = ']'
19
26
  subject.should_not be_valid
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doorkeeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.6.0.rc1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Felipe Elias Philipp
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-20 00:00:00.000000000 Z
13
+ date: 2012-11-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties
17
- requirement: &70141743363880 !ruby/object:Gem::Requirement
17
+ requirement: &70365762857000 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '3.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70141743363880
25
+ version_requirements: *70365762857000
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: sqlite3
28
- requirement: &70141743362900 !ruby/object:Gem::Requirement
28
+ requirement: &70365762854800 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,21 +33,21 @@ dependencies:
33
33
  version: 1.3.5
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70141743362900
36
+ version_requirements: *70365762854800
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rspec-rails
39
- requirement: &70141743361840 !ruby/object:Gem::Requirement
39
+ requirement: &70365762875900 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
43
43
  - !ruby/object:Gem::Version
44
- version: 2.11.0
44
+ version: 2.11.4
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70141743361840
47
+ version_requirements: *70365762875900
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: capybara
50
- requirement: &70141743395920 !ruby/object:Gem::Requirement
50
+ requirement: &70365762873160 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 1.1.2
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *70141743395920
58
+ version_requirements: *70365762873160
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: generator_spec
61
- requirement: &70141743395180 !ruby/object:Gem::Requirement
61
+ requirement: &70365762869900 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.8.5
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *70141743395180
69
+ version_requirements: *70365762869900
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: factory_girl
72
- requirement: &70141743394460 !ruby/object:Gem::Requirement
72
+ requirement: &70365762883120 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,32 +77,32 @@ dependencies:
77
77
  version: 2.6.4
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *70141743394460
80
+ version_requirements: *70365762883120
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: timecop
83
- requirement: &70141743393440 !ruby/object:Gem::Requirement
83
+ requirement: &70365762880300 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
87
87
  - !ruby/object:Gem::Version
88
- version: 0.4.3
88
+ version: 0.5.2
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *70141743393440
91
+ version_requirements: *70365762880300
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: database_cleaner
94
- requirement: &70141743392060 !ruby/object:Gem::Requirement
94
+ requirement: &70365762903440 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ~>
98
98
  - !ruby/object:Gem::Version
99
- version: '0.8'
99
+ version: 0.9.1
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *70141743392060
102
+ version_requirements: *70365762903440
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: bcrypt-ruby
105
- requirement: &70141743390940 !ruby/object:Gem::Requirement
105
+ requirement: &70365762898500 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ~>
@@ -110,7 +110,7 @@ dependencies:
110
110
  version: 3.0.1
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *70141743390940
113
+ version_requirements: *70365762898500
114
114
  description: Doorkeeper is an OAuth 2 provider for Rails.
115
115
  email:
116
116
  - felipe@applicake.com
@@ -144,17 +144,17 @@ files:
144
144
  - app/views/doorkeeper/applications/show.html.erb
145
145
  - app/views/doorkeeper/authorizations/error.html.erb
146
146
  - app/views/doorkeeper/authorizations/new.html.erb
147
+ - app/views/doorkeeper/authorizations/show.html.erb
147
148
  - app/views/doorkeeper/authorized_applications/index.html.erb
148
149
  - app/views/layouts/doorkeeper/application.html.erb
149
150
  - config/initializers/form_errors.rb
150
151
  - config/locales/en.yml
151
152
  - doorkeeper.gemspec
152
- - gemfiles/gemfile.rails-3.1.x
153
- - gemfiles/gemfile.rails-3.2.x
154
153
  - lib/doorkeeper.rb
155
154
  - lib/doorkeeper/config.rb
156
155
  - lib/doorkeeper/doorkeeper_for.rb
157
156
  - lib/doorkeeper/engine.rb
157
+ - lib/doorkeeper/errors.rb
158
158
  - lib/doorkeeper/helpers/controller.rb
159
159
  - lib/doorkeeper/helpers/filter.rb
160
160
  - lib/doorkeeper/models/access_grant.rb
@@ -165,46 +165,67 @@ files:
165
165
  - lib/doorkeeper/models/active_record/application.rb
166
166
  - lib/doorkeeper/models/application.rb
167
167
  - lib/doorkeeper/models/expirable.rb
168
- - lib/doorkeeper/models/mongoid/access_grant.rb
169
- - lib/doorkeeper/models/mongoid/access_token.rb
170
- - lib/doorkeeper/models/mongoid/application.rb
168
+ - lib/doorkeeper/models/mongo_mapper/access_grant.rb
169
+ - lib/doorkeeper/models/mongo_mapper/access_token.rb
170
+ - lib/doorkeeper/models/mongo_mapper/application.rb
171
+ - lib/doorkeeper/models/mongo_mapper/revocable.rb
171
172
  - lib/doorkeeper/models/mongoid/revocable.rb
172
173
  - lib/doorkeeper/models/mongoid/scopes.rb
174
+ - lib/doorkeeper/models/mongoid2/access_grant.rb
175
+ - lib/doorkeeper/models/mongoid2/access_token.rb
176
+ - lib/doorkeeper/models/mongoid2/application.rb
177
+ - lib/doorkeeper/models/mongoid3/access_grant.rb
178
+ - lib/doorkeeper/models/mongoid3/access_token.rb
179
+ - lib/doorkeeper/models/mongoid3/application.rb
173
180
  - lib/doorkeeper/models/ownership.rb
174
181
  - lib/doorkeeper/models/revocable.rb
175
182
  - lib/doorkeeper/models/scopes.rb
176
- - lib/doorkeeper/oauth/access_token_request.rb
177
183
  - lib/doorkeeper/oauth/authorization.rb
178
184
  - lib/doorkeeper/oauth/authorization/code.rb
179
185
  - lib/doorkeeper/oauth/authorization/token.rb
180
186
  - lib/doorkeeper/oauth/authorization/uri_builder.rb
181
- - lib/doorkeeper/oauth/authorization_request.rb
187
+ - lib/doorkeeper/oauth/authorization_code_request.rb
182
188
  - lib/doorkeeper/oauth/client.rb
183
189
  - lib/doorkeeper/oauth/client/credentials.rb
184
190
  - lib/doorkeeper/oauth/client/methods.rb
185
191
  - lib/doorkeeper/oauth/client_credentials/creator.rb
186
192
  - lib/doorkeeper/oauth/client_credentials/issuer.rb
187
- - lib/doorkeeper/oauth/client_credentials/response.rb
188
193
  - lib/doorkeeper/oauth/client_credentials/validation.rb
189
194
  - lib/doorkeeper/oauth/client_credentials_request.rb
195
+ - lib/doorkeeper/oauth/code_request.rb
196
+ - lib/doorkeeper/oauth/code_response.rb
190
197
  - lib/doorkeeper/oauth/error.rb
191
198
  - lib/doorkeeper/oauth/error_response.rb
192
199
  - lib/doorkeeper/oauth/helpers/scope_checker.rb
193
200
  - lib/doorkeeper/oauth/helpers/unique_token.rb
194
201
  - lib/doorkeeper/oauth/helpers/uri_checker.rb
195
202
  - lib/doorkeeper/oauth/password_access_token_request.rb
203
+ - lib/doorkeeper/oauth/pre_authorization.rb
204
+ - lib/doorkeeper/oauth/refresh_token_request.rb
196
205
  - lib/doorkeeper/oauth/scopes.rb
197
206
  - lib/doorkeeper/oauth/token.rb
207
+ - lib/doorkeeper/oauth/token_request.rb
208
+ - lib/doorkeeper/oauth/token_response.rb
198
209
  - lib/doorkeeper/rails/routes.rb
199
210
  - lib/doorkeeper/rails/routes/mapper.rb
200
211
  - lib/doorkeeper/rails/routes/mapping.rb
212
+ - lib/doorkeeper/request.rb
213
+ - lib/doorkeeper/request/authorization_code.rb
214
+ - lib/doorkeeper/request/client_credentials.rb
215
+ - lib/doorkeeper/request/code.rb
216
+ - lib/doorkeeper/request/password.rb
217
+ - lib/doorkeeper/request/refresh_token.rb
218
+ - lib/doorkeeper/request/token.rb
219
+ - lib/doorkeeper/server.rb
201
220
  - lib/doorkeeper/validations.rb
202
221
  - lib/doorkeeper/version.rb
203
222
  - lib/generators/doorkeeper/application_owner_generator.rb
204
223
  - lib/generators/doorkeeper/install_generator.rb
205
224
  - lib/generators/doorkeeper/migration_generator.rb
225
+ - lib/generators/doorkeeper/mongo_mapper/indexes_generator.rb
206
226
  - lib/generators/doorkeeper/templates/README
207
227
  - lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb
228
+ - lib/generators/doorkeeper/templates/indexes.rb
208
229
  - lib/generators/doorkeeper/templates/initializer.rb
209
230
  - lib/generators/doorkeeper/templates/migration.rb
210
231
  - lib/generators/doorkeeper/views_generator.rb
@@ -242,7 +263,9 @@ files:
242
263
  - spec/dummy/config/initializers/session_store.rb
243
264
  - spec/dummy/config/initializers/wrap_parameters.rb
244
265
  - spec/dummy/config/locales/doorkeeper.en.yml
245
- - spec/dummy/config/mongoid.yml
266
+ - spec/dummy/config/mongo.yml
267
+ - spec/dummy/config/mongoid2.yml
268
+ - spec/dummy/config/mongoid3.yml
246
269
  - spec/dummy/config/routes.rb
247
270
  - spec/dummy/db/migrate/20111122132257_create_users.rb
248
271
  - spec/dummy/db/migrate/20120312140401_add_password_to_users.rb
@@ -265,26 +288,30 @@ files:
265
288
  - spec/lib/models/expirable_spec.rb
266
289
  - spec/lib/models/revocable_spec.rb
267
290
  - spec/lib/models/scopes_spec.rb
268
- - spec/lib/oauth/access_token_request_spec.rb
269
291
  - spec/lib/oauth/authorization/uri_builder_spec.rb
270
- - spec/lib/oauth/authorization_request_spec.rb
292
+ - spec/lib/oauth/authorization_code_request_spec.rb
271
293
  - spec/lib/oauth/client/credentials_spec.rb
272
294
  - spec/lib/oauth/client/methods_spec.rb
273
295
  - spec/lib/oauth/client_credentials/creator_spec.rb
274
296
  - spec/lib/oauth/client_credentials/issuer_spec.rb
275
- - spec/lib/oauth/client_credentials/response_spec.rb
276
297
  - spec/lib/oauth/client_credentials/validation_spec.rb
277
298
  - spec/lib/oauth/client_credentials_integration_spec.rb
278
299
  - spec/lib/oauth/client_credentials_request_spec.rb
279
300
  - spec/lib/oauth/client_spec.rb
301
+ - spec/lib/oauth/code_request_spec.rb
280
302
  - spec/lib/oauth/error_response_spec.rb
281
303
  - spec/lib/oauth/error_spec.rb
282
304
  - spec/lib/oauth/helpers/scope_checker_spec.rb
283
305
  - spec/lib/oauth/helpers/unique_token_spec.rb
284
306
  - spec/lib/oauth/helpers/uri_checker_spec.rb
285
307
  - spec/lib/oauth/password_access_token_request_spec.rb
308
+ - spec/lib/oauth/pre_authorization_spec.rb
309
+ - spec/lib/oauth/refresh_token_request_spec.rb
286
310
  - spec/lib/oauth/scopes_spec.rb
311
+ - spec/lib/oauth/token_request_spec.rb
312
+ - spec/lib/oauth/token_response_spec.rb
287
313
  - spec/lib/oauth/token_spec.rb
314
+ - spec/lib/server_spec.rb
288
315
  - spec/models/doorkeeper/access_grant_spec.rb
289
316
  - spec/models/doorkeeper/access_token_spec.rb
290
317
  - spec/models/doorkeeper/application_spec.rb
@@ -314,6 +341,7 @@ files:
314
341
  - spec/support/helpers/request_spec_helper.rb
315
342
  - spec/support/helpers/url_helper.rb
316
343
  - spec/support/orm/active_record.rb
344
+ - spec/support/orm/mongo_mapper.rb
317
345
  - spec/support/orm/mongoid.rb
318
346
  - spec/support/shared/controllers_shared_context.rb
319
347
  - spec/support/shared/models_shared_examples.rb
@@ -332,16 +360,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
332
360
  version: '0'
333
361
  segments:
334
362
  - 0
335
- hash: -1887190500184471372
363
+ hash: -115319410489160264
336
364
  required_rubygems_version: !ruby/object:Gem::Requirement
337
365
  none: false
338
366
  requirements:
339
- - - ! '>='
367
+ - - ! '>'
340
368
  - !ruby/object:Gem::Version
341
- version: '0'
342
- segments:
343
- - 0
344
- hash: -1887190500184471372
369
+ version: 1.3.1
345
370
  requirements: []
346
371
  rubyforge_project:
347
372
  rubygems_version: 1.8.12
@@ -1,17 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'rails', '~> 3.1.0'
4
- gem 'jquery-rails'
5
-
6
- group :mongoid do
7
- gem 'mongoid', '~> 2.4'
8
- gem 'bson_ext', '~> 1.6.0'
9
- end
10
-
11
- group :active_record do
12
- gem 'activerecord', '~> 3.1'
13
- end
14
-
15
- gem 'doorkeeper', :path => '../'
16
-
17
- gemspec :path => '../'
@@ -1,17 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'rails', '~> 3.2.0'
4
- gem 'jquery-rails'
5
-
6
- group :mongoid do
7
- gem 'mongoid', '~> 2.4'
8
- gem 'bson_ext', '~> 1.6.0'
9
- end
10
-
11
- group :active_record do
12
- gem 'activerecord', '~> 3.1'
13
- end
14
-
15
- gem 'doorkeeper', :path => '../'
16
-
17
- gemspec :path => '../'
@@ -1,139 +0,0 @@
1
- module Doorkeeper::OAuth
2
- class AccessTokenRequest
3
- include Doorkeeper::Validations
4
-
5
- ATTRIBUTES = [
6
- :grant_type,
7
- :code,
8
- :redirect_uri,
9
- :refresh_token
10
- ]
11
-
12
- validate :attributes, :error => :invalid_request
13
- validate :grant_type, :error => :unsupported_grant_type
14
- validate :client, :error => :invalid_client
15
- validate :grant, :error => :invalid_grant
16
- validate :redirect_uri, :error => :invalid_grant
17
-
18
- attr_accessor *ATTRIBUTES
19
- attr_accessor :client
20
-
21
- def initialize(client, attributes = {})
22
- ATTRIBUTES.each { |attr| instance_variable_set("@#{attr}", attributes[attr]) }
23
- @client = client
24
- validate
25
- end
26
-
27
- def authorize
28
- if valid?
29
- revoke_base_token
30
- find_or_create_access_token
31
- end
32
- end
33
-
34
- def authorization
35
- auth = {
36
- 'access_token' => access_token.token,
37
- 'token_type' => access_token.token_type,
38
- 'expires_in' => access_token.expires_in,
39
- }
40
- auth.merge!({'refresh_token' => access_token.refresh_token}) if refresh_token_enabled?
41
- auth
42
- end
43
-
44
- def valid?
45
- self.error.nil?
46
- end
47
-
48
- def access_token
49
- @access_token ||= Doorkeeper::AccessToken.matching_token_for client, base_token.resource_owner_id, base_token.scopes
50
- end
51
-
52
- def token_type
53
- "bearer"
54
- end
55
-
56
- def error_response
57
- Doorkeeper::OAuth::ErrorResponse.from_request(self)
58
- end
59
-
60
- private
61
-
62
- def find_or_create_access_token
63
- if access_token
64
- access_token.expired? ? revoke_and_create_access_token : access_token
65
- else
66
- create_access_token
67
- end
68
- end
69
-
70
- def revoke_and_create_access_token
71
- access_token.revoke
72
- create_access_token
73
- end
74
-
75
- def revoke_base_token
76
- base_token.revoke
77
- end
78
-
79
- def base_token
80
- @base_token ||= refresh_token? ? token_via_refresh_token : token_via_authorization_code
81
- end
82
-
83
- def token_via_authorization_code
84
- Doorkeeper::AccessGrant.authenticate(code)
85
- end
86
-
87
- def token_via_refresh_token
88
- Doorkeeper::AccessToken.by_refresh_token(refresh_token)
89
- end
90
-
91
- def create_access_token
92
- @access_token = Doorkeeper::AccessToken.create!({
93
- :application_id => client.id,
94
- :resource_owner_id => base_token.resource_owner_id,
95
- :scopes => base_token.scopes_string,
96
- :expires_in => configuration.access_token_expires_in,
97
- :use_refresh_token => refresh_token_enabled?
98
- })
99
- end
100
-
101
- def validate_attributes
102
- return false unless grant_type.present?
103
- if refresh_token_enabled? && refresh_token?
104
- refresh_token.present?
105
- else
106
- code.present? && redirect_uri.present?
107
- end
108
- end
109
-
110
- def refresh_token_enabled?
111
- configuration.refresh_token_enabled?
112
- end
113
-
114
- def refresh_token?
115
- grant_type == "refresh_token"
116
- end
117
-
118
- def validate_client
119
- !!client
120
- end
121
-
122
- def validate_grant
123
- return false unless base_token && base_token.application_id == client.id
124
- refresh_token? ? !base_token.revoked? : base_token.accessible?
125
- end
126
-
127
- def validate_redirect_uri
128
- refresh_token? ? true : base_token.redirect_uri == redirect_uri
129
- end
130
-
131
- def validate_grant_type
132
- %w(authorization_code refresh_token).include? grant_type
133
- end
134
-
135
- def configuration
136
- Doorkeeper.configuration
137
- end
138
- end
139
- end