doorkeeper 3.1.0 → 4.4.3

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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.github/ISSUE_TEMPLATE.md +25 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +17 -0
  5. data/.gitignore +6 -1
  6. data/.hound.yml +2 -13
  7. data/.rubocop.yml +17 -0
  8. data/.travis.yml +26 -10
  9. data/Appraisals +18 -0
  10. data/CODE_OF_CONDUCT.md +46 -0
  11. data/CONTRIBUTING.md +2 -0
  12. data/Gemfile +5 -5
  13. data/NEWS.md +141 -2
  14. data/README.md +149 -66
  15. data/RELEASING.md +5 -12
  16. data/Rakefile +1 -1
  17. data/SECURITY.md +15 -0
  18. data/app/controllers/doorkeeper/application_controller.rb +4 -6
  19. data/app/controllers/doorkeeper/application_metal_controller.rb +3 -2
  20. data/app/controllers/doorkeeper/applications_controller.rb +18 -8
  21. data/app/controllers/doorkeeper/authorizations_controller.rb +1 -1
  22. data/app/controllers/doorkeeper/authorized_applications_controller.rb +1 -1
  23. data/app/controllers/doorkeeper/tokens_controller.rb +62 -15
  24. data/app/helpers/doorkeeper/dashboard_helper.rb +14 -10
  25. data/app/validators/redirect_uri_validator.rb +12 -2
  26. data/app/views/doorkeeper/applications/_delete_form.html.erb +1 -2
  27. data/app/views/doorkeeper/applications/_form.html.erb +13 -2
  28. data/app/views/doorkeeper/applications/index.html.erb +2 -0
  29. data/app/views/doorkeeper/applications/show.html.erb +4 -1
  30. data/app/views/doorkeeper/authorizations/new.html.erb +1 -1
  31. data/app/views/doorkeeper/authorized_applications/_delete_form.html.erb +1 -2
  32. data/app/views/doorkeeper/authorized_applications/index.html.erb +0 -1
  33. data/app/views/layouts/doorkeeper/admin.html.erb +1 -1
  34. data/config/locales/en.yml +12 -7
  35. data/doorkeeper.gemspec +16 -11
  36. data/gemfiles/rails_4_2.gemfile +13 -0
  37. data/gemfiles/rails_5_0.gemfile +12 -0
  38. data/gemfiles/rails_5_1.gemfile +12 -0
  39. data/gemfiles/rails_5_2.gemfile +12 -0
  40. data/gemfiles/rails_master.gemfile +14 -0
  41. data/lib/doorkeeper/config.rb +119 -46
  42. data/lib/doorkeeper/engine.rb +11 -7
  43. data/lib/doorkeeper/errors.rb +18 -0
  44. data/lib/doorkeeper/grape/helpers.rb +14 -8
  45. data/lib/doorkeeper/helpers/controller.rb +8 -19
  46. data/lib/doorkeeper/models/access_grant_mixin.rb +10 -21
  47. data/lib/doorkeeper/models/access_token_mixin.rb +147 -43
  48. data/lib/doorkeeper/models/application_mixin.rb +33 -35
  49. data/lib/doorkeeper/models/concerns/accessible.rb +4 -0
  50. data/lib/doorkeeper/models/concerns/expirable.rb +15 -5
  51. data/lib/doorkeeper/models/concerns/orderable.rb +13 -0
  52. data/lib/doorkeeper/models/concerns/ownership.rb +6 -1
  53. data/lib/doorkeeper/models/concerns/revocable.rb +37 -2
  54. data/lib/doorkeeper/oauth/authorization/token.rb +22 -18
  55. data/lib/doorkeeper/oauth/authorization/uri_builder.rb +20 -18
  56. data/lib/doorkeeper/oauth/authorization_code_request.rb +7 -5
  57. data/lib/doorkeeper/oauth/{request_concern.rb → base_request.rb} +9 -2
  58. data/lib/doorkeeper/oauth/base_response.rb +29 -0
  59. data/lib/doorkeeper/oauth/client/credentials.rb +21 -8
  60. data/lib/doorkeeper/oauth/client.rb +2 -3
  61. data/lib/doorkeeper/oauth/client_credentials/creator.rb +1 -1
  62. data/lib/doorkeeper/oauth/client_credentials/issuer.rb +3 -2
  63. data/lib/doorkeeper/oauth/client_credentials/validation.rb +1 -1
  64. data/lib/doorkeeper/oauth/client_credentials_request.rb +8 -8
  65. data/lib/doorkeeper/oauth/code_response.rb +16 -16
  66. data/lib/doorkeeper/oauth/error.rb +2 -2
  67. data/lib/doorkeeper/oauth/error_response.rb +10 -10
  68. data/lib/doorkeeper/oauth/forbidden_token_response.rb +1 -1
  69. data/lib/doorkeeper/oauth/helpers/scope_checker.rb +1 -1
  70. data/lib/doorkeeper/oauth/helpers/uri_checker.rb +17 -1
  71. data/lib/doorkeeper/oauth/invalid_token_response.rb +5 -4
  72. data/lib/doorkeeper/oauth/password_access_token_request.rb +8 -13
  73. data/lib/doorkeeper/oauth/pre_authorization.rb +5 -3
  74. data/lib/doorkeeper/oauth/refresh_token_request.rb +23 -14
  75. data/lib/doorkeeper/oauth/scopes.rb +18 -8
  76. data/lib/doorkeeper/oauth/token.rb +20 -21
  77. data/lib/doorkeeper/oauth/token_introspection.rb +128 -0
  78. data/lib/doorkeeper/oauth/token_request.rb +1 -2
  79. data/lib/doorkeeper/oauth/token_response.rb +1 -1
  80. data/lib/doorkeeper/orm/active_record/access_grant.rb +27 -0
  81. data/lib/doorkeeper/orm/active_record/access_token.rb +34 -8
  82. data/lib/doorkeeper/orm/active_record/application.rb +48 -11
  83. data/lib/doorkeeper/orm/active_record.rb +17 -22
  84. data/lib/doorkeeper/rails/helpers.rb +6 -9
  85. data/lib/doorkeeper/rails/routes/mapper.rb +4 -4
  86. data/lib/doorkeeper/rails/routes/mapping.rb +1 -1
  87. data/lib/doorkeeper/rails/routes.rb +17 -11
  88. data/lib/doorkeeper/request/authorization_code.rb +7 -1
  89. data/lib/doorkeeper/request/password.rb +2 -2
  90. data/lib/doorkeeper/request/refresh_token.rb +1 -1
  91. data/lib/doorkeeper/request.rb +7 -1
  92. data/lib/doorkeeper/server.rb +0 -8
  93. data/lib/doorkeeper/validations.rb +3 -2
  94. data/lib/doorkeeper/version.rb +34 -1
  95. data/lib/doorkeeper.rb +10 -2
  96. data/lib/generators/doorkeeper/add_client_confidentiality_generator.rb +31 -0
  97. data/lib/generators/doorkeeper/application_owner_generator.rb +11 -2
  98. data/lib/generators/doorkeeper/migration_generator.rb +13 -1
  99. data/lib/generators/doorkeeper/previous_refresh_token_generator.rb +35 -0
  100. data/lib/generators/doorkeeper/templates/add_confidential_to_application_migration.rb.erb +11 -0
  101. data/{spec/dummy/db/migrate/20130902175349_add_owner_to_application.rb → lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb.erb} +1 -1
  102. data/lib/generators/doorkeeper/templates/add_previous_refresh_token_to_access_tokens.rb.erb +11 -0
  103. data/lib/generators/doorkeeper/templates/initializer.rb +38 -6
  104. data/lib/generators/doorkeeper/templates/migration.rb.erb +69 -0
  105. data/spec/controllers/application_metal_controller.rb +10 -0
  106. data/spec/controllers/applications_controller_spec.rb +15 -4
  107. data/spec/controllers/authorizations_controller_spec.rb +74 -27
  108. data/spec/controllers/protected_resources_controller_spec.rb +70 -32
  109. data/spec/controllers/token_info_controller_spec.rb +17 -13
  110. data/spec/controllers/tokens_controller_spec.rb +198 -12
  111. data/spec/dummy/app/controllers/full_protected_resources_controller.rb +4 -4
  112. data/spec/dummy/app/controllers/home_controller.rb +1 -1
  113. data/spec/dummy/app/controllers/metal_controller.rb +1 -1
  114. data/spec/dummy/app/controllers/semi_protected_resources_controller.rb +3 -3
  115. data/spec/dummy/app/models/user.rb +0 -4
  116. data/spec/dummy/config/application.rb +2 -36
  117. data/spec/dummy/config/environment.rb +1 -1
  118. data/spec/dummy/config/environments/test.rb +4 -15
  119. data/spec/dummy/config/initializers/doorkeeper.rb +19 -3
  120. data/spec/dummy/config/initializers/new_framework_defaults.rb +6 -0
  121. data/spec/dummy/config/initializers/secret_token.rb +0 -1
  122. data/spec/dummy/db/migrate/20111122132257_create_users.rb +3 -1
  123. data/spec/dummy/db/migrate/20120312140401_add_password_to_users.rb +3 -1
  124. data/{lib/generators/doorkeeper/templates/migration.rb → spec/dummy/db/migrate/20151223192035_create_doorkeeper_tables.rb} +16 -4
  125. data/{lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb → spec/dummy/db/migrate/20151223200000_add_owner_to_application.rb} +4 -2
  126. data/spec/dummy/db/migrate/20160320211015_add_previous_refresh_token_to_access_tokens.rb +13 -0
  127. data/spec/dummy/db/migrate/20180210183654_add_confidential_to_application.rb +13 -0
  128. data/spec/dummy/db/schema.rb +24 -22
  129. data/spec/factories.rb +4 -2
  130. data/spec/generators/application_owner_generator_spec.rb +24 -5
  131. data/spec/generators/migration_generator_spec.rb +24 -3
  132. data/spec/generators/previous_refresh_token_generator_spec.rb +57 -0
  133. data/spec/grape/grape_integration_spec.rb +135 -0
  134. data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +1 -1
  135. data/spec/lib/config_spec.rb +159 -14
  136. data/spec/lib/doorkeeper_spec.rb +135 -13
  137. data/spec/lib/models/expirable_spec.rb +0 -1
  138. data/spec/lib/models/revocable_spec.rb +27 -4
  139. data/spec/lib/oauth/authorization/uri_builder_spec.rb +1 -2
  140. data/spec/lib/oauth/authorization_code_request_spec.rb +55 -12
  141. data/spec/lib/oauth/base_request_spec.rb +155 -0
  142. data/spec/lib/oauth/base_response_spec.rb +45 -0
  143. data/spec/lib/oauth/client/credentials_spec.rb +45 -2
  144. data/spec/lib/oauth/client_credentials/creator_spec.rb +1 -1
  145. data/spec/lib/oauth/client_credentials_integration_spec.rb +1 -1
  146. data/spec/lib/oauth/client_credentials_request_spec.rb +1 -0
  147. data/spec/lib/oauth/code_request_spec.rb +1 -3
  148. data/spec/lib/oauth/code_response_spec.rb +34 -0
  149. data/spec/lib/oauth/error_response_spec.rb +9 -9
  150. data/spec/lib/oauth/error_spec.rb +1 -1
  151. data/spec/lib/oauth/helpers/uri_checker_spec.rb +115 -1
  152. data/spec/lib/oauth/invalid_token_response_spec.rb +36 -8
  153. data/spec/lib/oauth/password_access_token_request_spec.rb +14 -8
  154. data/spec/lib/oauth/pre_authorization_spec.rb +12 -7
  155. data/spec/lib/oauth/refresh_token_request_spec.rb +52 -9
  156. data/spec/lib/oauth/scopes_spec.rb +28 -2
  157. data/spec/lib/oauth/token_request_spec.rb +6 -8
  158. data/spec/lib/oauth/token_spec.rb +12 -5
  159. data/spec/lib/server_spec.rb +10 -3
  160. data/spec/models/doorkeeper/access_grant_spec.rb +1 -1
  161. data/spec/models/doorkeeper/access_token_spec.rb +116 -48
  162. data/spec/models/doorkeeper/application_spec.rb +145 -29
  163. data/spec/requests/applications/applications_request_spec.rb +5 -5
  164. data/spec/requests/endpoints/authorization_spec.rb +5 -6
  165. data/spec/requests/endpoints/token_spec.rb +8 -1
  166. data/spec/requests/flows/authorization_code_errors_spec.rb +11 -1
  167. data/spec/requests/flows/authorization_code_spec.rb +6 -13
  168. data/spec/requests/flows/client_credentials_spec.rb +29 -1
  169. data/spec/requests/flows/implicit_grant_errors_spec.rb +2 -2
  170. data/spec/requests/flows/password_spec.rb +118 -15
  171. data/spec/requests/flows/refresh_token_spec.rb +89 -19
  172. data/spec/requests/flows/revoke_token_spec.rb +105 -91
  173. data/spec/requests/protected_resources/metal_spec.rb +1 -1
  174. data/spec/requests/protected_resources/private_api_spec.rb +1 -1
  175. data/spec/routing/custom_controller_routes_spec.rb +4 -0
  176. data/spec/routing/default_routes_spec.rb +5 -1
  177. data/spec/spec_helper.rb +2 -0
  178. data/spec/spec_helper_integration.rb +22 -4
  179. data/spec/support/dependencies/factory_girl.rb +2 -2
  180. data/spec/support/helpers/access_token_request_helper.rb +1 -1
  181. data/spec/support/helpers/model_helper.rb +34 -7
  182. data/spec/support/helpers/request_spec_helper.rb +17 -5
  183. data/spec/support/helpers/url_helper.rb +9 -8
  184. data/spec/support/http_method_shim.rb +38 -0
  185. data/spec/support/shared/controllers_shared_context.rb +15 -10
  186. data/spec/support/shared/models_shared_examples.rb +5 -5
  187. data/spec/validators/redirect_uri_validator_spec.rb +51 -6
  188. data/spec/version/version_spec.rb +15 -0
  189. metadata +128 -46
  190. data/lib/doorkeeper/oauth/client/methods.rb +0 -18
  191. data/lib/generators/doorkeeper/application_scopes_generator.rb +0 -34
  192. data/lib/generators/doorkeeper/templates/add_scopes_to_oauth_applications.rb +0 -5
  193. data/spec/dummy/db/migrate/20130902165751_create_doorkeeper_tables.rb +0 -41
  194. data/spec/dummy/db/migrate/20141209001746_add_scopes_to_oauth_applications.rb +0 -5
  195. data/spec/lib/oauth/client/methods_spec.rb +0 -54
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03417189314de7b84fcfa05699c35a0346a55035
4
- data.tar.gz: e4026de8e9ed39d2bb270abc9efc4e1ccca20775
3
+ metadata.gz: 8d8d3550d8406d4abb224c4960d1d6e8a0c4c706
4
+ data.tar.gz: b12408cb8b0dc2b14ee69b57798943b5c1bfaa30
5
5
  SHA512:
6
- metadata.gz: bbe0a1693809bfc8802a66c50df30a128a527a3f239114ffdc69d46e948ac0516594fe3872f3624157632e91078a0ad64aa1f98932b26bdf389228b22bed246b
7
- data.tar.gz: 6d434e7dc34b65d1022914f8fd348c9d1c8e6ef41bb30761411eb0c693531ccb12c87c237c1e54fbcbee11a8dd0bf68c82768a6801f273dab2bcaf1fe96afea6
6
+ metadata.gz: 0674af950f6070d6457e09f73fc89736b092ae6595e484ca6e67e7f126912ea007509d9249fdc4eb01e66bf981c1e49da33712203d8428d10401a43faabd1cfd
7
+ data.tar.gz: e447513c202dfde4c622b898da2a98dff64272193136fe399b890bb97488e7915156a2588caa6de3566db411f4c7dfa89e88be3a8b8d0a76511251f2f980c382
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
@@ -0,0 +1,25 @@
1
+ ### Steps to reproduce
2
+ What we need to do to see your problem or bug?
3
+
4
+ The more detailed the issue, the more likely that we will fix it ASAP.
5
+
6
+ Don't use GitHub issues for questions like "How can I do that?" —
7
+ use [StackOverflow](https://stackoverflow.com/questions/tagged/doorkeeper)
8
+ instead with the corresponding tag.
9
+
10
+ ### Expected behavior
11
+ Tell us what should happen
12
+
13
+ ### Actual behavior
14
+ Tell us what happens instead
15
+
16
+ ### System configuration
17
+ You can help us to understand your problem if you will share some very
18
+ useful information about your project environment (don't forget to
19
+ remove any confidential data if it exists).
20
+
21
+ **Doorkeeper initializer**:
22
+
23
+ **Ruby version**:
24
+
25
+ **Gemfile.lock**:
@@ -0,0 +1,17 @@
1
+ ### Summary
2
+
3
+ Provide a general description of the code changes in your pull
4
+ request... were there any bugs you had fixed? If so, mention them. If
5
+ these bugs have open GitHub issues, be sure to tag them here as well,
6
+ to keep the conversation linked together.
7
+
8
+ ### Other Information
9
+
10
+ If there's anything else that's important and relevant to your pull
11
+ request, mention that information here. This could include
12
+ benchmarks, or other information.
13
+
14
+ If you are updating NEWS.md file or are asked to update it by reviewers,
15
+ please add the changelog entry at the top of the file.
16
+
17
+ Thanks for contributing to Doorkeeper project!
data/.gitignore CHANGED
@@ -6,9 +6,14 @@ pkg/
6
6
  spec/dummy/db/*.sqlite3
7
7
  spec/dummy/log/*.log
8
8
  spec/dummy/tmp/
9
+ spec/generators/tmp
9
10
  Gemfile.lock
10
11
  gemfiles/*.lock
11
- spec/generators/tmp
12
12
  .rvmrc
13
13
  *.swp
14
14
  .idea
15
+ /.yardoc/
16
+ /_yardoc/
17
+ /doc/
18
+ /rdoc/
19
+ coverage
data/.hound.yml CHANGED
@@ -1,13 +1,2 @@
1
- AllCops:
2
- Exclude:
3
- - "spec/dummy/db/*"
4
-
5
- LineLength:
6
- Exclude:
7
- - spec/**/*
8
-
9
- StringLiterals:
10
- Enabled: false
11
-
12
- TrailingBlankLines:
13
- Enabled: true
1
+ ruby:
2
+ config_file: .rubocop.yml
data/.rubocop.yml ADDED
@@ -0,0 +1,17 @@
1
+ AllCops:
2
+ Exclude:
3
+ - "spec/dummy/db/*"
4
+
5
+ Metrics/BlockLength:
6
+ Exclude:
7
+ - spec/**/*
8
+
9
+ LineLength:
10
+ Exclude:
11
+ - spec/**/*
12
+
13
+ StringLiterals:
14
+ Enabled: false
15
+
16
+ TrailingBlankLines:
17
+ Enabled: true
data/.travis.yml CHANGED
@@ -3,20 +3,36 @@ language: ruby
3
3
  sudo: false
4
4
 
5
5
  rvm:
6
- - 2.0
7
6
  - 2.1
8
7
  - 2.2
9
- - jruby-head
8
+ - 2.3
9
+ - 2.4
10
+ - 2.5
10
11
 
11
- env:
12
- - rails=3.2.0
13
- - rails=4.1.0
14
- - rails=4.2.0
12
+ before_install:
13
+ - gem update --system # Need for Ruby 2.5.0. https://github.com/travis-ci/travis-ci/issues/8978
14
+ - gem install bundler -v '~> 1.10'
15
+
16
+ gemfile:
17
+ - gemfiles/rails_4_2.gemfile
18
+ - gemfiles/rails_5_0.gemfile
19
+ - gemfiles/rails_5_1.gemfile
20
+ - gemfiles/rails_5_2.gemfile
21
+ - gemfiles/rails_master.gemfile
15
22
 
16
23
  matrix:
17
24
  exclude:
18
- - env: rails=3.2.0
19
- rvm: jruby-head
20
- exclude:
21
- - env: rails=3.2.0
25
+ - gemfile: gemfiles/rails_5_0.gemfile
26
+ rvm: 2.1
27
+ - gemfile: gemfiles/rails_5_1.gemfile
28
+ rvm: 2.1
29
+ - gemfile: gemfiles/rails_5_2.gemfile
30
+ rvm: 2.1
31
+ - gemfile: gemfiles/rails_master.gemfile
32
+ rvm: 2.1
33
+ - gemfile: gemfiles/rails_master.gemfile
22
34
  rvm: 2.2
35
+ - gemfile: gemfiles/rails_master.gemfile
36
+ rvm: 2.3
37
+ allow_failures:
38
+ - gemfile: gemfiles/rails_master.gemfile
data/Appraisals ADDED
@@ -0,0 +1,18 @@
1
+ appraise "rails-4-2" do
2
+ gem "rails", "~> 4.2.0"
3
+ end
4
+
5
+ appraise "rails-5-0" do
6
+ gem "rails", "~> 5.0.0"
7
+ gem "rspec-rails", "~> 3.5"
8
+ end
9
+
10
+ appraise "rails-5-1" do
11
+ gem "rails", "~> 5.1.0"
12
+ gem "rspec-rails", "~> 3.5"
13
+ end
14
+
15
+ appraise "rails-master" do
16
+ gem "rails", git: 'https://github.com/rails/rails'
17
+ gem "arel", git: 'https://github.com/rails/arel'
18
+ end
@@ -0,0 +1,46 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to creating a positive environment include:
10
+
11
+ * Using welcoming and inclusive language
12
+ * Being respectful of differing viewpoints and experiences
13
+ * Gracefully accepting constructive criticism
14
+ * Focusing on what is best for the community
15
+ * Showing empathy towards other community members
16
+
17
+ Examples of unacceptable behavior by participants include:
18
+
19
+ * The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ * Trolling, insulting/derogatory comments, and personal or political attacks
21
+ * Public or private harassment
22
+ * Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ## Our Responsibilities
26
+
27
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
+
31
+ ## Scope
32
+
33
+ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
+
35
+ ## Enforcement
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team members or current maintainer email, specified in gemspec. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
+
39
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
+
41
+ ## Attribution
42
+
43
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44
+
45
+ [homepage]: http://contributor-covenant.org
46
+ [version]: http://contributor-covenant.org/version/1/4/
data/CONTRIBUTING.md CHANGED
@@ -26,6 +26,8 @@ Make the tests pass:
26
26
 
27
27
  rake
28
28
 
29
+ Add notes on your change to the `NEWS.md` file.
30
+
29
31
  Write a [good commit message][commit].
30
32
  Push to your fork.
31
33
  [Submit a pull request][pr].
data/Gemfile CHANGED
@@ -1,10 +1,10 @@
1
- ENV['rails'] ||= '4.2.0'
1
+ source "https://rubygems.org"
2
2
 
3
- source 'https://rubygems.org'
3
+ gem "rails", "~> 5.1"
4
4
 
5
- gem 'rails', "~> #{ENV['rails']}"
5
+ gem "appraisal"
6
6
 
7
- gem "sqlite3", platform: [:ruby, :mswin, :mingw]
8
7
  gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
9
-
8
+ gem "sqlite3", platform: [:ruby, :mswin, :mingw, :x64_mingw]
9
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
10
10
  gemspec
data/NEWS.md CHANGED
@@ -2,7 +2,146 @@
2
2
 
3
3
  User-visible changes worth mentioning.
4
4
 
5
- ---
5
+ ## master
6
+
7
+ ## 4.4.3
8
+ - [#1143] Adds a config option opt_out_native_route_change to opt out of the
9
+ breaking api changed introduced in
10
+ https://github.com/doorkeeper-gem/doorkeeper/pull/1003
11
+
12
+ ## 4.4.2
13
+ - [#1130] Backport fix for native redirect_uri from 5.x.
14
+
15
+ ## 4.4.1
16
+
17
+ - [#1127] Backport token type to comply with the RFC6750 specification.
18
+ - [#1125] Backport Quote surround I18n yes/no keys
19
+
20
+ ## 4.4.0
21
+
22
+ - [#1120] Backport security fix from 5.x for token revocation when using public clients
23
+
24
+ ## 4.3.2
25
+
26
+ - [#1053] Support authorizing with query params in the request `redirect_uri` if explicitly present in app's `Application#redirect_uri`
27
+
28
+ ## 4.3.1
29
+
30
+ - Remove `BaseRecord` and introduce additional concern for ordering methods to fix
31
+ braking changes for Doorkeeper models.
32
+ - [#1032] Refactor BaseRequest callbacks into configurable lambdas
33
+ - [#1040] Clear mixins from ActiveRecord DSL and save only overridable API. It
34
+ allows to use this mixins in Doorkeeper ORM extensions with minimum code boilerplate.
35
+
36
+ ## 4.3.0
37
+
38
+ - [#976] Fix to invalidate the second redirect URI when the first URI is the native URI
39
+ - [#1035] Allow `Application#redirect_uri=` to handle array of URIs.
40
+ - [#1036] Allow to forbid Application redirect URI's with specific rules.
41
+ - [#1029] Deprecate `order_method` and introduce `ordered_by`. Sort applications
42
+ by `created_at` in index action.
43
+ - [#1033] Allow Doorkeeper configuration option #force_ssl_in_redirect_uri to be a callable object.
44
+ - Fix Grape integration & add specs for it
45
+ - [#913] Deferred ORM (ActiveRecord) models loading
46
+ - [#943] Fix Access Token token generation when certain errors occur in custom token generators
47
+ - [#1026] Implement RFC7662 - OAuth 2.0 Token Introspection
48
+ - [#985] Generate valid migration files for Rails >= 5
49
+ - [#972] Replace Struct subclassing with block-form initialization
50
+ - [#1003] Use URL query param to pass through native redirect auth code so automated apps can find it.
51
+ - [#868] `Scopes#&` and `Scopes#+` now take an array or any other enumerable
52
+ object.
53
+ - [#1019] Remove translation not in use: `invalid_resource_owner`.
54
+ - Use Ruby 2 hash style syntax (min required Ruby version = 2.1)
55
+ - [#948] Make Scopes.<=> work with any "other" value.
56
+ - [#974] Redirect URI is checked without query params within AuthorizationCodeRequest.
57
+ - [#1004] More explicit help text for `native_redirect_uri`.
58
+ - [#1023] Update Ruby versions and test against 2.5.0 on Travis CI.
59
+ - [#1024] Migrate from FactoryGirl to FactoryBot.
60
+ - [#1025] Improve documentation for adding foreign keys
61
+ - [#1028] Make it possible to have composite strategy names.
62
+
63
+ ## 4.2.6
64
+
65
+ - [#970] Escape certain attributes in authorization forms.
66
+
67
+ ## 4.2.5
68
+
69
+ - [#936] Deprecate `Doorkeeper#configured?`, `Doorkeeper#database_installed?`, and
70
+ `Doorkeeper#installed?`
71
+ - [#909] Add `InvalidTokenResponse#reason` reader method to allow read the kind
72
+ of invalid token error.
73
+ - [#928] Test against more recent Ruby versions
74
+ - Small refactorings within the codebase
75
+ - [#921] Switch to Appraisal, and test against Rails master
76
+ - [#892] Add minimum Ruby version requirement
77
+
78
+ ## 4.2.0
79
+
80
+ - Security fix: Address CVE-2016-6582, implement token revocation according to
81
+ spec (tokens might not be revoked if client follows the spec).
82
+ - [#873] Add hooks to Doorkeeper::ApplicationMetalController
83
+ - [#871] Allow downstream users to better utilize doorkeeper spec factories by
84
+ eliminating name conflict on `:user` factory.
85
+
86
+ ## 4.1.0
87
+
88
+ - [#845] Allow customising the `Doorkeeper::ApplicationController` base
89
+ controller
90
+
91
+ ## 4.0.0
92
+
93
+ - [#834] Fix AssetNotPrecompiled error with Sprockets 4
94
+ - [#843] Revert "Fix validation error messages"
95
+ - [#847] Specify Null option to timestamps
96
+
97
+ ## 4.0.0.rc4
98
+
99
+ - [#777] Add support for public client in password grant flow
100
+ - [#823] Make configuration and specs ORM independent
101
+ - [#745] Add created_at timestamp to token generation options
102
+ - [#838] Drop `Application#scopes` generator and warning, introduced for
103
+ upgrading doorkeeper from v2 to v3.
104
+ - [#801] Fix Rails 5 warning messages
105
+ - Test against Rails 5 RC1
106
+
107
+ ## 4.0.0.rc3
108
+
109
+ - [#769] Revoke refresh token on access token use. To make use of the new config
110
+ add `previous_refresh_token` column to `oauth_access_tokens`:
111
+
112
+ ```
113
+ rails generate doorkeeper:previous_refresh_token
114
+ ```
115
+ - [#811] Toughen parameters filter with exact match
116
+ - [#813] Applications admin bugfix
117
+ - [#799] Fix Ruby Warnings
118
+ - Drop `attr_accessible` from models
119
+
120
+ ### Backward incompatible changes
121
+
122
+ - [#730] Force all timezones to use UTC to prevent comparison issues.
123
+ - [#802] Remove `config.i18n.fallbacks` from engine
124
+
125
+ ## 4.0.0.rc2
126
+
127
+ - Fix optional belongs_to for Rails 5
128
+ - Fix Ruby warnings
129
+
130
+ ## 4.0.0.rc1
131
+
132
+ ### Backward incompatible changes
133
+
134
+ - Drops support for Rails 4.1 and earlier
135
+ - Drops support for Ruby 2.0
136
+ - [#778] Bug fix: use the remaining time that a token is still valid when
137
+ building the redirect URI for the implicit grant flow
138
+
139
+ ### Other changes
140
+
141
+ - [#771] Validation error messages fixes
142
+ - Adds foreign key constraints in generated migrations between tokens and
143
+ grants, and applications
144
+ - Support Rails 5
6
145
 
7
146
  ## 3.1.0
8
147
 
@@ -67,7 +206,7 @@ User-visible changes worth mentioning.
67
206
  - Remove `applications.scopes` upgrade notice.
68
207
 
69
208
 
70
- ## 2.2.2 (unreleased)
209
+ ## 2.2.2
71
210
 
72
211
  - [#541] Fixed `undefined method attr_accessible` problem on Rails 4
73
212
  (happens only when ProtectedAttributes gem is used) in #599