doorkeeper 5.1.0 → 5.3.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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +3 -3
  3. data/CHANGELOG.md +881 -0
  4. data/CONTRIBUTING.md +11 -9
  5. data/Dangerfile +2 -2
  6. data/Dockerfile +29 -0
  7. data/Gemfile +4 -3
  8. data/NEWS.md +1 -814
  9. data/README.md +11 -3
  10. data/RELEASING.md +6 -5
  11. data/app/controllers/doorkeeper/application_controller.rb +2 -2
  12. data/app/controllers/doorkeeper/application_metal_controller.rb +3 -2
  13. data/app/controllers/doorkeeper/applications_controller.rb +1 -0
  14. data/app/controllers/doorkeeper/authorizations_controller.rb +16 -9
  15. data/app/controllers/doorkeeper/authorized_applications_controller.rb +2 -2
  16. data/app/controllers/doorkeeper/tokens_controller.rb +32 -9
  17. data/app/views/doorkeeper/applications/_form.html.erb +0 -6
  18. data/app/views/doorkeeper/applications/show.html.erb +1 -1
  19. data/config/locales/en.yml +8 -2
  20. data/doorkeeper.gemspec +9 -1
  21. data/gemfiles/rails_5_0.gemfile +3 -2
  22. data/gemfiles/rails_5_1.gemfile +3 -2
  23. data/gemfiles/rails_5_2.gemfile +3 -2
  24. data/gemfiles/rails_6_0.gemfile +4 -3
  25. data/gemfiles/rails_master.gemfile +3 -2
  26. data/lib/doorkeeper/config/option.rb +13 -7
  27. data/lib/doorkeeper/config.rb +157 -42
  28. data/lib/doorkeeper/errors.rb +13 -18
  29. data/lib/doorkeeper/grape/helpers.rb +6 -2
  30. data/lib/doorkeeper/helpers/controller.rb +28 -7
  31. data/lib/doorkeeper/models/access_grant_mixin.rb +7 -6
  32. data/lib/doorkeeper/models/access_token_mixin.rb +99 -20
  33. data/lib/doorkeeper/models/application_mixin.rb +3 -3
  34. data/lib/doorkeeper/models/concerns/ownership.rb +1 -1
  35. data/lib/doorkeeper/models/concerns/reusable.rb +1 -1
  36. data/lib/doorkeeper/models/concerns/revocable.rb +0 -27
  37. data/lib/doorkeeper/oauth/authorization/code.rb +12 -14
  38. data/lib/doorkeeper/oauth/authorization/token.rb +10 -7
  39. data/lib/doorkeeper/oauth/authorization_code_request.rb +31 -15
  40. data/lib/doorkeeper/oauth/base_request.rb +10 -4
  41. data/lib/doorkeeper/oauth/client.rb +7 -8
  42. data/lib/doorkeeper/oauth/client_credentials/creator.rb +23 -2
  43. data/lib/doorkeeper/oauth/client_credentials/issuer.rb +7 -7
  44. data/lib/doorkeeper/oauth/client_credentials/{validation.rb → validator.rb} +10 -2
  45. data/lib/doorkeeper/oauth/client_credentials_request.rb +1 -1
  46. data/lib/doorkeeper/oauth/code_request.rb +5 -11
  47. data/lib/doorkeeper/oauth/code_response.rb +4 -4
  48. data/lib/doorkeeper/oauth/error.rb +1 -1
  49. data/lib/doorkeeper/oauth/error_response.rb +6 -6
  50. data/lib/doorkeeper/oauth/helpers/scope_checker.rb +7 -5
  51. data/lib/doorkeeper/oauth/helpers/unique_token.rb +8 -5
  52. data/lib/doorkeeper/oauth/helpers/uri_checker.rb +19 -5
  53. data/lib/doorkeeper/oauth/invalid_request_response.rb +43 -0
  54. data/lib/doorkeeper/oauth/invalid_token_response.rb +5 -2
  55. data/lib/doorkeeper/oauth/nonstandard.rb +39 -0
  56. data/lib/doorkeeper/oauth/password_access_token_request.rb +9 -4
  57. data/lib/doorkeeper/oauth/pre_authorization.rb +76 -38
  58. data/lib/doorkeeper/oauth/refresh_token_request.rb +17 -14
  59. data/lib/doorkeeper/oauth/token.rb +2 -2
  60. data/lib/doorkeeper/oauth/token_introspection.rb +26 -16
  61. data/lib/doorkeeper/oauth/token_request.rb +4 -18
  62. data/lib/doorkeeper/orm/active_record/access_grant.rb +4 -43
  63. data/lib/doorkeeper/orm/active_record/access_token.rb +4 -35
  64. data/lib/doorkeeper/orm/active_record/application.rb +5 -83
  65. data/lib/doorkeeper/orm/active_record/mixins/access_grant.rb +53 -0
  66. data/lib/doorkeeper/orm/active_record/mixins/access_token.rb +47 -0
  67. data/lib/doorkeeper/orm/active_record/mixins/application.rb +128 -0
  68. data/lib/doorkeeper/orm/active_record/redirect_uri_validator.rb +61 -0
  69. data/lib/doorkeeper/orm/active_record.rb +21 -6
  70. data/lib/doorkeeper/rails/helpers.rb +4 -4
  71. data/lib/doorkeeper/rails/routes.rb +5 -7
  72. data/lib/doorkeeper/rake/db.rake +3 -3
  73. data/lib/doorkeeper/request/authorization_code.rb +5 -3
  74. data/lib/doorkeeper/request/client_credentials.rb +2 -2
  75. data/lib/doorkeeper/request/password.rb +2 -2
  76. data/lib/doorkeeper/request/refresh_token.rb +3 -3
  77. data/lib/doorkeeper/request.rb +7 -12
  78. data/lib/doorkeeper/server.rb +3 -7
  79. data/lib/doorkeeper/stale_records_cleaner.rb +6 -2
  80. data/lib/doorkeeper/version.rb +1 -1
  81. data/lib/doorkeeper.rb +6 -3
  82. data/lib/generators/doorkeeper/application_owner_generator.rb +1 -1
  83. data/lib/generators/doorkeeper/confidential_applications_generator.rb +1 -1
  84. data/lib/generators/doorkeeper/migration_generator.rb +1 -1
  85. data/lib/generators/doorkeeper/pkce_generator.rb +1 -1
  86. data/lib/generators/doorkeeper/previous_refresh_token_generator.rb +7 -7
  87. data/lib/generators/doorkeeper/templates/initializer.rb +149 -33
  88. data/lib/generators/doorkeeper/templates/migration.rb.erb +4 -1
  89. data/spec/controllers/application_metal_controller_spec.rb +1 -1
  90. data/spec/controllers/applications_controller_spec.rb +95 -1
  91. data/spec/controllers/authorizations_controller_spec.rb +156 -75
  92. data/spec/controllers/protected_resources_controller_spec.rb +28 -20
  93. data/spec/controllers/token_info_controller_spec.rb +1 -1
  94. data/spec/controllers/tokens_controller_spec.rb +206 -38
  95. data/spec/dummy/config/application.rb +3 -1
  96. data/spec/dummy/config/initializers/doorkeeper.rb +54 -9
  97. data/spec/dummy/db/migrate/20151223192035_create_doorkeeper_tables.rb +3 -3
  98. data/spec/dummy/db/migrate/20160320211015_add_previous_refresh_token_to_access_tokens.rb +1 -1
  99. data/spec/dummy/db/migrate/20180210183654_add_confidential_to_applications.rb +1 -1
  100. data/spec/generators/install_generator_spec.rb +1 -1
  101. data/spec/generators/previous_refresh_token_generator_spec.rb +2 -2
  102. data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +1 -1
  103. data/spec/lib/config_spec.rb +104 -7
  104. data/spec/lib/doorkeeper_spec.rb +1 -1
  105. data/spec/lib/models/revocable_spec.rb +3 -3
  106. data/spec/lib/oauth/authorization_code_request_spec.rb +129 -115
  107. data/spec/lib/oauth/base_request_spec.rb +154 -135
  108. data/spec/lib/oauth/base_response_spec.rb +27 -29
  109. data/spec/lib/oauth/client/credentials_spec.rb +1 -1
  110. data/spec/lib/oauth/client_credentials/creator_spec.rb +43 -3
  111. data/spec/lib/oauth/client_credentials/issuer_spec.rb +12 -12
  112. data/spec/lib/oauth/client_credentials/validation_spec.rb +4 -4
  113. data/spec/lib/oauth/client_credentials_integration_spec.rb +16 -18
  114. data/spec/lib/oauth/client_credentials_request_spec.rb +78 -80
  115. data/spec/lib/oauth/client_spec.rb +26 -26
  116. data/spec/lib/oauth/code_request_spec.rb +34 -35
  117. data/spec/lib/oauth/code_response_spec.rb +21 -25
  118. data/spec/lib/oauth/error_response_spec.rb +42 -44
  119. data/spec/lib/oauth/error_spec.rb +12 -14
  120. data/spec/lib/oauth/forbidden_token_response_spec.rb +11 -13
  121. data/spec/lib/oauth/helpers/scope_checker_spec.rb +30 -18
  122. data/spec/lib/oauth/helpers/uri_checker_spec.rb +17 -2
  123. data/spec/lib/oauth/invalid_request_response_spec.rb +73 -0
  124. data/spec/lib/oauth/invalid_token_response_spec.rb +32 -34
  125. data/spec/lib/oauth/password_access_token_request_spec.rb +145 -147
  126. data/spec/lib/oauth/pre_authorization_spec.rb +161 -153
  127. data/spec/lib/oauth/refresh_token_request_spec.rb +138 -138
  128. data/spec/lib/oauth/scopes_spec.rb +104 -106
  129. data/spec/lib/oauth/token_request_spec.rb +117 -110
  130. data/spec/lib/oauth/token_response_spec.rb +71 -73
  131. data/spec/lib/oauth/token_spec.rb +121 -123
  132. data/spec/lib/server_spec.rb +0 -12
  133. data/spec/models/doorkeeper/access_grant_spec.rb +21 -4
  134. data/spec/models/doorkeeper/access_token_spec.rb +42 -11
  135. data/spec/models/doorkeeper/application_spec.rb +114 -77
  136. data/spec/requests/applications/applications_request_spec.rb +1 -1
  137. data/spec/requests/endpoints/authorization_spec.rb +26 -8
  138. data/spec/requests/endpoints/token_spec.rb +1 -1
  139. data/spec/requests/flows/authorization_code_errors_spec.rb +1 -0
  140. data/spec/requests/flows/authorization_code_spec.rb +123 -45
  141. data/spec/requests/flows/client_credentials_spec.rb +38 -0
  142. data/spec/requests/flows/implicit_grant_errors_spec.rb +22 -10
  143. data/spec/requests/flows/implicit_grant_spec.rb +9 -8
  144. data/spec/requests/flows/password_spec.rb +67 -10
  145. data/spec/requests/flows/refresh_token_spec.rb +20 -20
  146. data/spec/requests/flows/revoke_token_spec.rb +37 -23
  147. data/spec/spec_helper.rb +1 -4
  148. data/spec/support/doorkeeper_rspec.rb +1 -1
  149. data/spec/support/helpers/request_spec_helper.rb +14 -2
  150. data/spec/support/shared/controllers_shared_context.rb +33 -23
  151. data/spec/validators/redirect_uri_validator_spec.rb +41 -16
  152. metadata +19 -16
  153. data/.coveralls.yml +0 -1
  154. data/.github/ISSUE_TEMPLATE.md +0 -25
  155. data/.github/PULL_REQUEST_TEMPLATE.md +0 -17
  156. data/.gitignore +0 -20
  157. data/.gitlab-ci.yml +0 -16
  158. data/.hound.yml +0 -3
  159. data/.rspec +0 -1
  160. data/.rubocop.yml +0 -50
  161. data/.travis.yml +0 -35
  162. data/app/validators/redirect_uri_validator.rb +0 -50
  163. data/spec/support/http_method_shim.rb +0 -29
@@ -4,7 +4,7 @@ module Doorkeeper
4
4
  module Rails
5
5
  module Helpers
6
6
  def doorkeeper_authorize!(*scopes)
7
- @_doorkeeper_scopes = scopes.presence || Doorkeeper.configuration.default_scopes
7
+ @_doorkeeper_scopes = scopes.presence || Doorkeeper.config.default_scopes
8
8
 
9
9
  doorkeeper_render_error unless valid_doorkeeper_token?
10
10
  end
@@ -21,7 +21,7 @@ module Doorkeeper
21
21
 
22
22
  def doorkeeper_render_error
23
23
  error = doorkeeper_error
24
- error.raise_exception! if Doorkeeper.configuration.raise_on_errors?
24
+ error.raise_exception! if Doorkeeper.config.raise_on_errors?
25
25
 
26
26
  headers.merge!(error.headers.reject { |k| k == "Content-Type" })
27
27
  doorkeeper_render_error_with(error)
@@ -30,7 +30,7 @@ module Doorkeeper
30
30
  def doorkeeper_render_error_with(error)
31
31
  options = doorkeeper_render_options(error) || {}
32
32
  status = doorkeeper_status_for_error(
33
- error, options.delete(:respond_not_found_when_forbidden)
33
+ error, options.delete(:respond_not_found_when_forbidden),
34
34
  )
35
35
  if options.blank?
36
36
  head status
@@ -72,7 +72,7 @@ module Doorkeeper
72
72
  def doorkeeper_token
73
73
  @doorkeeper_token ||= OAuth::Token.authenticate(
74
74
  request,
75
- *Doorkeeper.configuration.access_token_methods
75
+ *Doorkeeper.config.access_token_methods,
76
76
  )
77
77
  end
78
78
  end
@@ -17,7 +17,7 @@ module Doorkeeper
17
17
  end
18
18
 
19
19
  def self.install!
20
- ActionDispatch::Routing::Mapper.send :include, Doorkeeper::Rails::Routes::Helper
20
+ ActionDispatch::Routing::Mapper.include Doorkeeper::Rails::Routes::Helper
21
21
  end
22
22
 
23
23
  attr_reader :routes
@@ -26,9 +26,7 @@ module Doorkeeper
26
26
  @routes = routes
27
27
  @mapping = Mapper.new.map(&block)
28
28
 
29
- if Doorkeeper.configuration.api_only
30
- @mapping.skips.push(:applications, :authorized_applications)
31
- end
29
+ @mapping.skips.push(:applications, :authorized_applications) if Doorkeeper.config.api_only
32
30
  end
33
31
 
34
32
  def generate_routes!(options)
@@ -59,7 +57,7 @@ module Doorkeeper
59
57
  path: "authorize",
60
58
  only: %i[create destroy],
61
59
  as: mapping[:as],
62
- controller: mapping[:controllers]
60
+ controller: mapping[:controllers],
63
61
  ) do
64
62
  routes.get "/native", action: :show, on: :member
65
63
  routes.get "/", action: :new, on: :member
@@ -71,7 +69,7 @@ module Doorkeeper
71
69
  :token,
72
70
  path: "token",
73
71
  only: [:create], as: mapping[:as],
74
- controller: mapping[:controllers]
72
+ controller: mapping[:controllers],
75
73
  )
76
74
  end
77
75
 
@@ -88,7 +86,7 @@ module Doorkeeper
88
86
  :token_info,
89
87
  path: "token/info",
90
88
  only: [:show], as: mapping[:as],
91
- controller: mapping[:controllers]
89
+ controller: mapping[:controllers],
92
90
  )
93
91
  end
94
92
 
@@ -19,9 +19,9 @@ namespace :doorkeeper do
19
19
 
20
20
  desc "Removes expired (TTL passed) access tokens"
21
21
  task expired_tokens: "doorkeeper:setup" do
22
- expirable_tokens = Doorkeeper::AccessToken.where(refresh_token: nil)
22
+ expirable_tokens = Doorkeeper.config.access_token_model.where(refresh_token: nil)
23
23
  cleaner = Doorkeeper::StaleRecordsCleaner.new(expirable_tokens)
24
- cleaner.clean_expired(Doorkeeper.configuration.access_token_expires_in)
24
+ cleaner.clean_expired(Doorkeeper.config.access_token_expires_in)
25
25
  end
26
26
 
27
27
  desc "Removes stale access grants"
@@ -33,7 +33,7 @@ namespace :doorkeeper do
33
33
  desc "Removes expired (TTL passed) access grants"
34
34
  task expired_grants: "doorkeeper:setup" do
35
35
  cleaner = Doorkeeper::StaleRecordsCleaner.new(Doorkeeper::AccessGrant)
36
- cleaner.clean_expired(Doorkeeper.configuration.authorization_code_expires_in)
36
+ cleaner.clean_expired(Doorkeeper.config.authorization_code_expires_in)
37
37
  end
38
38
  end
39
39
  end
@@ -7,17 +7,19 @@ module Doorkeeper
7
7
 
8
8
  def request
9
9
  @request ||= OAuth::AuthorizationCodeRequest.new(
10
- Doorkeeper.configuration,
10
+ Doorkeeper.config,
11
11
  grant,
12
12
  client,
13
- parameters
13
+ parameters,
14
14
  )
15
15
  end
16
16
 
17
17
  private
18
18
 
19
19
  def grant
20
- AccessGrant.by_token(parameters[:code])
20
+ raise Errors::MissingRequiredParameter, :code if parameters[:code].blank?
21
+
22
+ Doorkeeper.config.access_grant_model.by_token(parameters[:code])
21
23
  end
22
24
  end
23
25
  end
@@ -7,9 +7,9 @@ module Doorkeeper
7
7
 
8
8
  def request
9
9
  @request ||= OAuth::ClientCredentialsRequest.new(
10
- Doorkeeper.configuration,
10
+ Doorkeeper.config,
11
11
  client,
12
- parameters
12
+ parameters,
13
13
  )
14
14
  end
15
15
  end
@@ -7,10 +7,10 @@ module Doorkeeper
7
7
 
8
8
  def request
9
9
  @request ||= OAuth::PasswordAccessTokenRequest.new(
10
- Doorkeeper.configuration,
10
+ Doorkeeper.config,
11
11
  client,
12
12
  resource_owner,
13
- parameters
13
+ parameters,
14
14
  )
15
15
  end
16
16
  end
@@ -6,14 +6,14 @@ module Doorkeeper
6
6
  delegate :credentials, :parameters, to: :server
7
7
 
8
8
  def refresh_token
9
- AccessToken.by_refresh_token(parameters[:refresh_token])
9
+ Doorkeeper.config.access_token_model.by_refresh_token(parameters[:refresh_token])
10
10
  end
11
11
 
12
12
  def request
13
13
  @request ||= OAuth::RefreshTokenRequest.new(
14
- Doorkeeper.configuration,
14
+ Doorkeeper.config,
15
15
  refresh_token, credentials,
16
- parameters
16
+ parameters,
17
17
  )
18
18
  end
19
19
  end
@@ -4,32 +4,27 @@ module Doorkeeper
4
4
  module Request
5
5
  class << self
6
6
  def authorization_strategy(response_type)
7
- get_strategy(response_type, authorization_response_types)
8
- rescue NameError
9
- raise Errors::InvalidAuthorizationStrategy
7
+ build_strategy_class(response_type)
10
8
  end
11
9
 
12
10
  def token_strategy(grant_type)
11
+ raise Errors::MissingRequiredParameter, :grant_type if grant_type.blank?
12
+
13
13
  get_strategy(grant_type, token_grant_types)
14
14
  rescue NameError
15
15
  raise Errors::InvalidTokenStrategy
16
16
  end
17
17
 
18
- def get_strategy(grant_or_request_type, available)
19
- raise Errors::MissingRequestStrategy if grant_or_request_type.blank?
20
- raise NameError unless available.include?(grant_or_request_type.to_s)
18
+ def get_strategy(grant_type, available)
19
+ raise NameError unless available.include?(grant_type.to_s)
21
20
 
22
- build_strategy_class(grant_or_request_type)
21
+ build_strategy_class(grant_type)
23
22
  end
24
23
 
25
24
  private
26
25
 
27
- def authorization_response_types
28
- Doorkeeper.configuration.authorization_response_types
29
- end
30
-
31
26
  def token_grant_types
32
- Doorkeeper.configuration.token_grant_types
27
+ Doorkeeper.config.token_grant_types
33
28
  end
34
29
 
35
30
  def build_strategy_class(grant_or_request_type)
@@ -10,12 +10,12 @@ module Doorkeeper
10
10
 
11
11
  def authorization_request(strategy)
12
12
  klass = Request.authorization_strategy strategy
13
- klass.new self
13
+ klass.new(self)
14
14
  end
15
15
 
16
16
  def token_request(strategy)
17
17
  klass = Request.token_strategy strategy
18
- klass.new self
18
+ klass.new(self)
19
19
  end
20
20
 
21
21
  # TODO: context should be the request
@@ -27,10 +27,6 @@ module Doorkeeper
27
27
  @client ||= OAuth::Client.authenticate(credentials)
28
28
  end
29
29
 
30
- def client_via_uid
31
- @client_via_uid ||= OAuth::Client.find(parameters[:client_id])
32
- end
33
-
34
30
  def current_resource_owner
35
31
  context.send :current_resource_owner
36
32
  end
@@ -41,7 +37,7 @@ module Doorkeeper
41
37
  end
42
38
 
43
39
  def credentials
44
- methods = Doorkeeper.configuration.client_credentials_methods
40
+ methods = Doorkeeper.config.client_credentials_methods
45
41
  @credentials ||= OAuth::Client::Credentials.from_request(context.request, *methods)
46
42
  end
47
43
  end
@@ -5,12 +5,16 @@ module Doorkeeper
5
5
  CLEANER_CLASS = "StaleRecordsCleaner"
6
6
 
7
7
  def self.for(base_scope)
8
- orm_adapter = "doorkeeper/orm/#{Doorkeeper.configuration.orm}".classify
8
+ orm_adapter = "doorkeeper/orm/#{configured_orm}".classify
9
9
 
10
10
  orm_cleaner = "#{orm_adapter}::#{CLEANER_CLASS}".constantize
11
11
  orm_cleaner.new(base_scope)
12
12
  rescue NameError
13
- raise Doorkeeper::Errors::NoOrmCleaner, "'#{Doorkeeper.configuration.orm}' ORM has no cleaner!"
13
+ raise Doorkeeper::Errors::NoOrmCleaner, "'#{configured_orm}' ORM has no cleaner!"
14
+ end
15
+
16
+ def self.configured_orm
17
+ Doorkeeper.config.orm
14
18
  end
15
19
 
16
20
  def self.new(base_scope)
@@ -8,7 +8,7 @@ module Doorkeeper
8
8
  module VERSION
9
9
  # Semantic versioning
10
10
  MAJOR = 5
11
- MINOR = 1
11
+ MINOR = 3
12
12
  TINY = 0
13
13
  PRE = nil
14
14
 
data/lib/doorkeeper.rb CHANGED
@@ -38,10 +38,9 @@ require "doorkeeper/oauth/authorization_code_request"
38
38
  require "doorkeeper/oauth/refresh_token_request"
39
39
  require "doorkeeper/oauth/password_access_token_request"
40
40
 
41
- require "doorkeeper/oauth/client_credentials/validation"
41
+ require "doorkeeper/oauth/client_credentials/validator"
42
42
  require "doorkeeper/oauth/client_credentials/creator"
43
43
  require "doorkeeper/oauth/client_credentials/issuer"
44
- require "doorkeeper/oauth/client_credentials/validation"
45
44
  require "doorkeeper/oauth/client/credentials"
46
45
 
47
46
  require "doorkeeper/oauth/client_credentials_request"
@@ -52,6 +51,8 @@ require "doorkeeper/oauth/token"
52
51
  require "doorkeeper/oauth/token_introspection"
53
52
  require "doorkeeper/oauth/invalid_token_response"
54
53
  require "doorkeeper/oauth/forbidden_token_response"
54
+ require "doorkeeper/oauth/invalid_request_response"
55
+ require "doorkeeper/oauth/nonstandard"
55
56
 
56
57
  require "doorkeeper/secret_storing/base"
57
58
  require "doorkeeper/secret_storing/plain"
@@ -80,8 +81,10 @@ require "doorkeeper/stale_records_cleaner"
80
81
 
81
82
  require "doorkeeper/orm/active_record"
82
83
 
84
+ # Main Doorkeeper namespace.
85
+ #
83
86
  module Doorkeeper
84
- def self.authenticate(request, methods = Doorkeeper.configuration.access_token_methods)
87
+ def self.authenticate(request, methods = Doorkeeper.config.access_token_methods)
85
88
  OAuth::Token.authenticate(request, *methods)
86
89
  end
87
90
  end
@@ -16,7 +16,7 @@ module Doorkeeper
16
16
  migration_template(
17
17
  "add_owner_to_application_migration.rb.erb",
18
18
  "db/migrate/add_owner_to_application.rb",
19
- migration_version: migration_version
19
+ migration_version: migration_version,
20
20
  )
21
21
  end
22
22
 
@@ -16,7 +16,7 @@ module Doorkeeper
16
16
  migration_template(
17
17
  "add_confidential_to_applications.rb.erb",
18
18
  "db/migrate/add_confidential_to_applications.rb",
19
- migration_version: migration_version
19
+ migration_version: migration_version,
20
20
  )
21
21
  end
22
22
 
@@ -15,7 +15,7 @@ module Doorkeeper
15
15
  migration_template(
16
16
  "migration.rb.erb",
17
17
  "db/migrate/create_doorkeeper_tables.rb",
18
- migration_version: migration_version
18
+ migration_version: migration_version,
19
19
  )
20
20
  end
21
21
 
@@ -16,7 +16,7 @@ module Doorkeeper
16
16
  migration_template(
17
17
  "enable_pkce_migration.rb.erb",
18
18
  "db/migrate/enable_pkce.rb",
19
- migration_version: migration_version
19
+ migration_version: migration_version,
20
20
  )
21
21
  end
22
22
 
@@ -17,12 +17,12 @@ module Doorkeeper
17
17
  end
18
18
 
19
19
  def previous_refresh_token
20
- if no_previous_refresh_token_column?
21
- migration_template(
22
- "add_previous_refresh_token_to_access_tokens.rb.erb",
23
- "db/migrate/add_previous_refresh_token_to_access_tokens.rb"
24
- )
25
- end
20
+ return unless no_previous_refresh_token_column?
21
+
22
+ migration_template(
23
+ "add_previous_refresh_token_to_access_tokens.rb.erb",
24
+ "db/migrate/add_previous_refresh_token_to_access_tokens.rb",
25
+ )
26
26
  end
27
27
 
28
28
  private
@@ -34,7 +34,7 @@ module Doorkeeper
34
34
  def no_previous_refresh_token_column?
35
35
  !ActiveRecord::Base.connection.column_exists?(
36
36
  :oauth_access_tokens,
37
- :previous_refresh_token
37
+ :previous_refresh_token,
38
38
  )
39
39
  end
40
40
  end