doorkeeper 0.4.2 → 0.5.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 (118) hide show
  1. data/.gitignore +2 -0
  2. data/.travis.yml +5 -1
  3. data/CHANGELOG.md +29 -0
  4. data/Gemfile +12 -4
  5. data/README.md +76 -7
  6. data/Rakefile +1 -25
  7. data/app/assets/javascripts/doorkeeper/application.js +0 -7
  8. data/app/controllers/doorkeeper/application_controller.rb +1 -27
  9. data/app/controllers/doorkeeper/applications_controller.rb +14 -6
  10. data/app/controllers/doorkeeper/authorized_applications_controller.rb +1 -1
  11. data/app/controllers/doorkeeper/token_info_controller.rb +11 -0
  12. data/app/controllers/doorkeeper/tokens_controller.rb +11 -8
  13. data/app/validators/redirect_uri_validator.rb +12 -0
  14. data/app/views/doorkeeper/applications/_form.html.erb +3 -3
  15. data/app/views/doorkeeper/applications/edit.html.erb +1 -1
  16. data/app/views/doorkeeper/applications/index.html.erb +4 -4
  17. data/app/views/doorkeeper/applications/new.html.erb +1 -1
  18. data/app/views/doorkeeper/applications/show.html.erb +3 -3
  19. data/app/views/doorkeeper/authorizations/new.html.erb +2 -2
  20. data/app/views/doorkeeper/authorized_applications/index.html.erb +1 -1
  21. data/config/locales/en.yml +35 -0
  22. data/doorkeeper.gemspec +3 -3
  23. data/gemfiles/gemfile.rails-3.1.x +10 -0
  24. data/gemfiles/gemfile.rails-3.2.x +10 -0
  25. data/lib/doorkeeper.rb +10 -3
  26. data/lib/doorkeeper/config.rb +56 -38
  27. data/lib/doorkeeper/doorkeeper_for.rb +2 -0
  28. data/lib/doorkeeper/engine.rb +3 -32
  29. data/lib/doorkeeper/helpers/controller.rb +29 -0
  30. data/lib/doorkeeper/helpers/filter.rb +4 -18
  31. data/{app/models/doorkeeper → lib/doorkeeper/models}/access_grant.rb +7 -7
  32. data/{app/models/doorkeeper → lib/doorkeeper/models}/access_token.rb +27 -24
  33. data/lib/doorkeeper/models/accessible.rb +9 -0
  34. data/lib/doorkeeper/models/active_record/access_grant.rb +5 -0
  35. data/lib/doorkeeper/models/active_record/access_token.rb +15 -0
  36. data/lib/doorkeeper/models/active_record/application.rb +18 -0
  37. data/lib/doorkeeper/models/application.rb +38 -0
  38. data/lib/doorkeeper/models/expirable.rb +6 -4
  39. data/lib/doorkeeper/models/mongoid/access_grant.rb +22 -0
  40. data/lib/doorkeeper/models/mongoid/access_token.rb +35 -0
  41. data/lib/doorkeeper/models/mongoid/application.rb +22 -0
  42. data/lib/doorkeeper/models/mongoid/revocable.rb +15 -0
  43. data/lib/doorkeeper/models/mongoid/scopes.rb +15 -0
  44. data/lib/doorkeeper/models/ownership.rb +16 -0
  45. data/lib/doorkeeper/models/revocable.rb +1 -1
  46. data/lib/doorkeeper/models/scopes.rb +9 -5
  47. data/lib/doorkeeper/oauth/access_token_request.rb +2 -2
  48. data/lib/doorkeeper/oauth/authorization.rb +1 -0
  49. data/lib/doorkeeper/oauth/authorization/code.rb +5 -3
  50. data/lib/doorkeeper/oauth/client.rb +2 -2
  51. data/lib/doorkeeper/oauth/client_credentials_request.rb +4 -1
  52. data/lib/doorkeeper/oauth/helpers/unique_token.rb +2 -5
  53. data/lib/doorkeeper/oauth/password_access_token_request.rb +2 -5
  54. data/lib/doorkeeper/oauth/token.rb +36 -0
  55. data/lib/doorkeeper/rails/routes.rb +77 -0
  56. data/lib/doorkeeper/rails/routes/mapper.rb +28 -0
  57. data/lib/doorkeeper/rails/routes/mapping.rb +39 -0
  58. data/lib/doorkeeper/version.rb +1 -1
  59. data/lib/generators/doorkeeper/application_owner_generator.rb +15 -0
  60. data/lib/generators/doorkeeper/install_generator.rb +2 -9
  61. data/lib/generators/doorkeeper/migration_generator.rb +15 -0
  62. data/lib/generators/doorkeeper/templates/README +15 -1
  63. data/lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb +7 -0
  64. data/lib/generators/doorkeeper/templates/initializer.rb +31 -15
  65. data/lib/generators/doorkeeper/templates/migration.rb +7 -4
  66. data/lib/generators/doorkeeper/views_generator.rb +1 -1
  67. data/script/run_all +3 -0
  68. data/spec/controllers/applications_controller_spec.rb +1 -1
  69. data/spec/controllers/authorizations_controller_spec.rb +4 -4
  70. data/spec/controllers/protected_resources_controller_spec.rb +7 -7
  71. data/spec/controllers/token_info_controller_spec.rb +54 -0
  72. data/spec/controllers/tokens_controller_spec.rb +3 -2
  73. data/spec/dummy/app/controllers/custom_authorizations_controller.rb +7 -0
  74. data/spec/dummy/app/models/user.rb +16 -5
  75. data/spec/dummy/config/application.rb +4 -7
  76. data/spec/dummy/config/boot.rb +3 -7
  77. data/spec/dummy/config/initializers/doorkeeper.rb +13 -0
  78. data/spec/dummy/config/mongoid.yml +7 -0
  79. data/spec/dummy/config/routes.rb +29 -1
  80. data/spec/dummy/db/migrate/20120312140401_add_password_to_users.rb +1 -1
  81. data/spec/dummy/db/migrate/20120524202412_create_doorkeeper_tables.rb +6 -4
  82. data/spec/dummy/db/schema.rb +5 -3
  83. data/spec/generators/application_owner_generator_spec.rb +23 -0
  84. data/spec/generators/install_generator_spec.rb +1 -6
  85. data/spec/generators/migration_generator_spec.rb +20 -0
  86. data/spec/lib/config_spec.rb +72 -4
  87. data/spec/lib/models/expirable_spec.rb +8 -11
  88. data/spec/lib/models/revocable_spec.rb +1 -1
  89. data/spec/lib/oauth/access_token_request_spec.rb +15 -9
  90. data/spec/lib/oauth/authorization_request_spec.rb +1 -0
  91. data/spec/lib/oauth/client_credentials_request_spec.rb +15 -9
  92. data/spec/lib/oauth/client_spec.rb +5 -8
  93. data/spec/lib/oauth/helpers/unique_token_spec.rb +2 -20
  94. data/spec/lib/oauth/password_access_token_request_spec.rb +16 -9
  95. data/spec/lib/oauth/token_spec.rb +83 -0
  96. data/spec/models/doorkeeper/access_token_spec.rb +41 -1
  97. data/spec/models/doorkeeper/application_spec.rb +53 -20
  98. data/spec/requests/flows/authorization_code_spec.rb +1 -1
  99. data/spec/requests/flows/client_credentials_spec.rb +2 -0
  100. data/spec/requests/flows/password_spec.rb +25 -0
  101. data/spec/requests/flows/refresh_token_spec.rb +5 -2
  102. data/spec/requests/protected_resources/private_api_spec.rb +10 -3
  103. data/spec/routing/custom_controller_routes_spec.rb +44 -0
  104. data/spec/routing/default_routes_spec.rb +32 -0
  105. data/spec/spec_helper.rb +1 -0
  106. data/spec/spec_helper_integration.rb +18 -8
  107. data/spec/support/dependencies/factory_girl.rb +0 -3
  108. data/spec/support/orm/active_record.rb +11 -0
  109. data/spec/support/orm/mongoid.rb +26 -0
  110. data/spec/support/shared/controllers_shared_context.rb +2 -2
  111. data/spec/support/shared/models_shared_examples.rb +16 -0
  112. data/spec/validators/redirect_uri_validator_spec.rb +40 -0
  113. metadata +61 -37
  114. data/app/helpers/doorkeeper/application_helper.rb +0 -4
  115. data/app/models/doorkeeper/application.rb +0 -54
  116. data/config/routes.rb +0 -9
  117. data/lib/tasks/doorkeeper_tasks.rake +0 -4
  118. data/spec/support/dependencies/database_cleaner.rb +0 -16
@@ -8,7 +8,7 @@ shared_context "valid token", :token => :valid do
8
8
  end
9
9
 
10
10
  before :each do
11
- Doorkeeper::AccessToken.stub(:find_by_token).with(token_string).and_return(token)
11
+ Doorkeeper::AccessToken.stub(:authenticate).with(token_string).and_return(token)
12
12
  end
13
13
  end
14
14
 
@@ -22,7 +22,7 @@ shared_context "invalid token", :token => :invalid do
22
22
  end
23
23
 
24
24
  before :each do
25
- Doorkeeper::AccessToken.stub(:find_by_token).with(token_string).and_return(token)
25
+ Doorkeeper::AccessToken.stub(:authenticate).with(token_string).and_return(token)
26
26
  end
27
27
  end
28
28
 
@@ -40,5 +40,21 @@ shared_examples "an unique token" do
40
40
  it "is generated before validation" do
41
41
  expect { subject.valid? }.to change { subject.token }.from(nil)
42
42
  end
43
+
44
+ it "is not valid if token exists" do
45
+ token1 = FactoryGirl.create factory_name
46
+ token2 = FactoryGirl.create factory_name
47
+ token2.token = token1.token
48
+ token2.should_not be_valid
49
+ end
50
+
51
+ it 'expects database to throw an error when tokens are the same' do
52
+ token1 = FactoryGirl.create factory_name
53
+ token2 = FactoryGirl.create factory_name
54
+ token2.token = token1.token
55
+ expect {
56
+ token2.save!(:validate => false)
57
+ }.to raise_error
58
+ end
43
59
  end
44
60
  end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ require 'active_model'
3
+ require 'validators/redirect_uri_validator'
4
+
5
+ require 'spec_helper_integration'
6
+
7
+ describe RedirectUriValidator do
8
+ subject do
9
+ FactoryGirl.create(:application)
10
+ end
11
+
12
+ it 'is valid when the uri is a uri' do
13
+ subject.redirect_uri = "http://example.com/callback"
14
+ subject.should be_valid
15
+ end
16
+
17
+ it 'is invalid when the uri is not a uri' do
18
+ subject.redirect_uri = ']'
19
+ subject.should_not be_valid
20
+ subject.errors[:redirect_uri].first.should == "must be a valid URI."
21
+ end
22
+
23
+ it 'is invalid when the uri is relative' do
24
+ subject.redirect_uri = "/abcd"
25
+ subject.should_not be_valid
26
+ subject.errors[:redirect_uri].first.should == "must be an absolute URI."
27
+ end
28
+
29
+ it 'is invalid when the uri has a fragment' do
30
+ subject.redirect_uri = "http://example.com/abcd#xyz"
31
+ subject.should_not be_valid
32
+ subject.errors[:redirect_uri].first.should == "cannot contain a fragment."
33
+ end
34
+
35
+ it 'is invalid when the uri has a query parameter' do
36
+ subject.redirect_uri = "http://example.com/abcd?xyz=123"
37
+ subject.should_not be_valid
38
+ subject.errors[:redirect_uri].first.should == "cannot contain a query parameter."
39
+ end
40
+ end
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.4.2
5
- prerelease:
4
+ version: 0.5.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-06-05 00:00:00.000000000 Z
13
+ date: 2012-10-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties
17
- requirement: &70204960943600 !ruby/object:Gem::Requirement
17
+ requirement: &70350798368240 !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: *70204960943600
25
+ version_requirements: *70350798368240
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: sqlite3
28
- requirement: &70204960952600 !ruby/object:Gem::Requirement
28
+ requirement: &70350798434620 !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: *70204960952600
36
+ version_requirements: *70350798434620
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rspec-rails
39
- requirement: &70204960962520 !ruby/object:Gem::Requirement
39
+ requirement: &70350798433760 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
43
43
  - !ruby/object:Gem::Version
44
- version: 2.10.0
44
+ version: 2.11.0
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70204960962520
47
+ version_requirements: *70350798433760
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: capybara
50
- requirement: &70204960958040 !ruby/object:Gem::Requirement
50
+ requirement: &70350798433080 !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: *70204960958040
58
+ version_requirements: *70350798433080
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: generator_spec
61
- requirement: &70204960955940 !ruby/object:Gem::Requirement
61
+ requirement: &70350798432160 !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: *70204960955940
69
+ version_requirements: *70350798432160
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: factory_girl
72
- requirement: &70204960968760 !ruby/object:Gem::Requirement
72
+ requirement: &70350798431660 !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: *70204960968760
80
+ version_requirements: *70350798431660
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: timecop
83
- requirement: &70204960965680 !ruby/object:Gem::Requirement
83
+ requirement: &70350798431160 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
87
87
  - !ruby/object:Gem::Version
88
- version: 0.3.5
88
+ version: 0.4.3
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *70204960965680
91
+ version_requirements: *70350798431160
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: database_cleaner
94
- requirement: &70204960964040 !ruby/object:Gem::Requirement
94
+ requirement: &70350798430340 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ~>
98
98
  - !ruby/object:Gem::Version
99
- version: 0.7.1
99
+ version: '0.8'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *70204960964040
102
+ version_requirements: *70350798430340
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: bcrypt-ruby
105
- requirement: &70204960812560 !ruby/object:Gem::Requirement
105
+ requirement: &70350798429340 !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: *70204960812560
113
+ version_requirements: *70350798429340
114
114
  description: Doorkeeper is an OAuth 2 provider for Rails.
115
115
  email:
116
116
  - felipe@applicake.com
@@ -134,11 +134,9 @@ files:
134
134
  - app/controllers/doorkeeper/applications_controller.rb
135
135
  - app/controllers/doorkeeper/authorizations_controller.rb
136
136
  - app/controllers/doorkeeper/authorized_applications_controller.rb
137
+ - app/controllers/doorkeeper/token_info_controller.rb
137
138
  - app/controllers/doorkeeper/tokens_controller.rb
138
- - app/helpers/doorkeeper/application_helper.rb
139
- - app/models/doorkeeper/access_grant.rb
140
- - app/models/doorkeeper/access_token.rb
141
- - app/models/doorkeeper/application.rb
139
+ - app/validators/redirect_uri_validator.rb
142
140
  - app/views/doorkeeper/applications/_form.html.erb
143
141
  - app/views/doorkeeper/applications/edit.html.erb
144
142
  - app/views/doorkeeper/applications/index.html.erb
@@ -150,7 +148,6 @@ files:
150
148
  - app/views/layouts/doorkeeper/application.html.erb
151
149
  - config/initializers/form_errors.rb
152
150
  - config/locales/en.yml
153
- - config/routes.rb
154
151
  - doorkeeper.gemspec
155
152
  - gemfiles/gemfile.rails-3.1.x
156
153
  - gemfiles/gemfile.rails-3.2.x
@@ -158,8 +155,22 @@ files:
158
155
  - lib/doorkeeper/config.rb
159
156
  - lib/doorkeeper/doorkeeper_for.rb
160
157
  - lib/doorkeeper/engine.rb
158
+ - lib/doorkeeper/helpers/controller.rb
161
159
  - lib/doorkeeper/helpers/filter.rb
160
+ - lib/doorkeeper/models/access_grant.rb
161
+ - lib/doorkeeper/models/access_token.rb
162
+ - lib/doorkeeper/models/accessible.rb
163
+ - lib/doorkeeper/models/active_record/access_grant.rb
164
+ - lib/doorkeeper/models/active_record/access_token.rb
165
+ - lib/doorkeeper/models/active_record/application.rb
166
+ - lib/doorkeeper/models/application.rb
162
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
171
+ - lib/doorkeeper/models/mongoid/revocable.rb
172
+ - lib/doorkeeper/models/mongoid/scopes.rb
173
+ - lib/doorkeeper/models/ownership.rb
163
174
  - lib/doorkeeper/models/revocable.rb
164
175
  - lib/doorkeeper/models/scopes.rb
165
176
  - lib/doorkeeper/oauth/access_token_request.rb
@@ -183,24 +194,32 @@ files:
183
194
  - lib/doorkeeper/oauth/helpers/uri_checker.rb
184
195
  - lib/doorkeeper/oauth/password_access_token_request.rb
185
196
  - lib/doorkeeper/oauth/scopes.rb
197
+ - lib/doorkeeper/oauth/token.rb
198
+ - lib/doorkeeper/rails/routes.rb
199
+ - lib/doorkeeper/rails/routes/mapper.rb
200
+ - lib/doorkeeper/rails/routes/mapping.rb
186
201
  - lib/doorkeeper/validations.rb
187
202
  - lib/doorkeeper/version.rb
203
+ - lib/generators/doorkeeper/application_owner_generator.rb
188
204
  - lib/generators/doorkeeper/install_generator.rb
205
+ - lib/generators/doorkeeper/migration_generator.rb
189
206
  - lib/generators/doorkeeper/templates/README
207
+ - lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb
190
208
  - lib/generators/doorkeeper/templates/initializer.rb
191
209
  - lib/generators/doorkeeper/templates/migration.rb
192
210
  - lib/generators/doorkeeper/views_generator.rb
193
- - lib/tasks/doorkeeper_tasks.rake
194
211
  - script/rails
195
212
  - script/run_all
196
213
  - spec/controllers/applications_controller_spec.rb
197
214
  - spec/controllers/authorizations_controller_spec.rb
198
215
  - spec/controllers/protected_resources_controller_spec.rb
216
+ - spec/controllers/token_info_controller_spec.rb
199
217
  - spec/controllers/tokens_controller_spec.rb
200
218
  - spec/dummy/Rakefile
201
219
  - spec/dummy/app/assets/javascripts/application.js
202
220
  - spec/dummy/app/assets/stylesheets/application.css
203
221
  - spec/dummy/app/controllers/application_controller.rb
222
+ - spec/dummy/app/controllers/custom_authorizations_controller.rb
204
223
  - spec/dummy/app/controllers/full_protected_resources_controller.rb
205
224
  - spec/dummy/app/controllers/home_controller.rb
206
225
  - spec/dummy/app/controllers/metal_controller.rb
@@ -223,6 +242,7 @@ files:
223
242
  - spec/dummy/config/initializers/session_store.rb
224
243
  - spec/dummy/config/initializers/wrap_parameters.rb
225
244
  - spec/dummy/config/locales/doorkeeper.en.yml
245
+ - spec/dummy/config/mongoid.yml
226
246
  - spec/dummy/config/routes.rb
227
247
  - spec/dummy/db/migrate/20111122132257_create_users.rb
228
248
  - spec/dummy/db/migrate/20120312140401_add_password_to_users.rb
@@ -236,7 +256,9 @@ files:
236
256
  - spec/factories/access_grant.rb
237
257
  - spec/factories/access_token.rb
238
258
  - spec/factories/application.rb
259
+ - spec/generators/application_owner_generator_spec.rb
239
260
  - spec/generators/install_generator_spec.rb
261
+ - spec/generators/migration_generator_spec.rb
240
262
  - spec/generators/templates/routes.rb
241
263
  - spec/generators/views_generator_spec.rb
242
264
  - spec/lib/config_spec.rb
@@ -262,6 +284,7 @@ files:
262
284
  - spec/lib/oauth/helpers/uri_checker_spec.rb
263
285
  - spec/lib/oauth/password_access_token_request_spec.rb
264
286
  - spec/lib/oauth/scopes_spec.rb
287
+ - spec/lib/oauth/token_spec.rb
265
288
  - spec/models/doorkeeper/access_grant_spec.rb
266
289
  - spec/models/doorkeeper/access_token_spec.rb
267
290
  - spec/models/doorkeeper/application_spec.rb
@@ -279,9 +302,10 @@ files:
279
302
  - spec/requests/flows/skip_authorization_spec.rb
280
303
  - spec/requests/protected_resources/metal_spec.rb
281
304
  - spec/requests/protected_resources/private_api_spec.rb
305
+ - spec/routing/custom_controller_routes_spec.rb
306
+ - spec/routing/default_routes_spec.rb
282
307
  - spec/spec_helper.rb
283
308
  - spec/spec_helper_integration.rb
284
- - spec/support/dependencies/database_cleaner.rb
285
309
  - spec/support/dependencies/factory_girl.rb
286
310
  - spec/support/helpers/access_token_request_helper.rb
287
311
  - spec/support/helpers/authorization_request_helper.rb
@@ -289,8 +313,11 @@ files:
289
313
  - spec/support/helpers/model_helper.rb
290
314
  - spec/support/helpers/request_spec_helper.rb
291
315
  - spec/support/helpers/url_helper.rb
316
+ - spec/support/orm/active_record.rb
317
+ - spec/support/orm/mongoid.rb
292
318
  - spec/support/shared/controllers_shared_context.rb
293
319
  - spec/support/shared/models_shared_examples.rb
320
+ - spec/validators/redirect_uri_validator_spec.rb
294
321
  homepage: https://github.com/applicake/doorkeeper
295
322
  licenses: []
296
323
  post_install_message:
@@ -305,16 +332,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
305
332
  version: '0'
306
333
  segments:
307
334
  - 0
308
- hash: 1821327864536476120
335
+ hash: 4023575176994641272
309
336
  required_rubygems_version: !ruby/object:Gem::Requirement
310
337
  none: false
311
338
  requirements:
312
- - - ! '>='
339
+ - - ! '>'
313
340
  - !ruby/object:Gem::Version
314
- version: '0'
315
- segments:
316
- - 0
317
- hash: 1821327864536476120
341
+ version: 1.3.1
318
342
  requirements: []
319
343
  rubyforge_project:
320
344
  rubygems_version: 1.8.12
@@ -1,4 +0,0 @@
1
- module Doorkeeper
2
- module ApplicationHelper
3
- end
4
- end
@@ -1,54 +0,0 @@
1
- module Doorkeeper
2
- class Application < ActiveRecord::Base
3
- include Doorkeeper::OAuth::Helpers
4
-
5
- self.table_name = :oauth_applications
6
-
7
- has_many :access_grants, :dependent => :destroy
8
- has_many :access_tokens, :dependent => :destroy
9
- has_many :authorized_tokens, :class_name => "AccessToken", :conditions => { :revoked_at => nil }
10
- has_many :authorized_applications, :through => :authorized_tokens, :source => :application
11
-
12
- validates :name, :secret, :redirect_uri, :presence => true
13
- validates :uid, :presence => true, :uniqueness => true
14
- validate :validate_redirect_uri
15
-
16
- before_validation :generate_uid, :generate_secret, :on => :create
17
-
18
- attr_accessible :name, :redirect_uri
19
-
20
- def self.authenticate(uid, secret)
21
- find_by_uid_and_secret(uid, secret)
22
- end
23
-
24
- def self.column_names_with_table
25
- self.column_names.map { |c| "oauth_applications.#{c}" }
26
- end
27
-
28
- def self.authorized_for(resource_owner)
29
- joins(:authorized_applications).
30
- where(:oauth_access_tokens => { :resource_owner_id => resource_owner.id }).
31
- group(column_names_with_table.join(','))
32
- end
33
-
34
- def validate_redirect_uri
35
- return unless redirect_uri
36
- uri = URI.parse(redirect_uri)
37
- errors.add(:redirect_uri, "cannot contain a fragment.") unless uri.fragment.nil?
38
- errors.add(:redirect_uri, "must be an absolute URL.") if uri.scheme.nil? || uri.host.nil?
39
- errors.add(:redirect_uri, "cannot contain a query parameter.") unless uri.query.nil?
40
- rescue URI::InvalidURIError => e
41
- errors.add(:redirect_uri, "must be a valid URI.")
42
- end
43
-
44
- private
45
-
46
- def generate_uid
47
- self.uid = UniqueToken.generate_for :uid, self.class
48
- end
49
-
50
- def generate_secret
51
- self.secret = UniqueToken.generate_for :secret, self.class
52
- end
53
- end
54
- end
data/config/routes.rb DELETED
@@ -1,9 +0,0 @@
1
- Doorkeeper::Engine.routes.draw do
2
- get 'authorize', :to => "authorizations#new", :as => :authorization
3
- post 'authorize', :to => "authorizations#create", :as => :authorization
4
- delete 'authorize', :to => "authorizations#destroy", :as => :authorization
5
- post 'token', :to => "tokens#create", :as => :token
6
-
7
- resources :applications
8
- resources :authorized_applications, :only => [:index, :destroy]
9
- end
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :doorkeeper do
3
- # # Task goes here
4
- # end
@@ -1,16 +0,0 @@
1
- require "database_cleaner"
2
-
3
- RSpec.configure do |config|
4
- config.before(:suite) do
5
- DatabaseCleaner.strategy = :transaction
6
- DatabaseCleaner.clean_with(:truncation)
7
- end
8
-
9
- config.before(:each) do
10
- DatabaseCleaner.start
11
- end
12
-
13
- config.after(:each) do
14
- DatabaseCleaner.clean
15
- end
16
- end