clearance 2.0.0.beta2 → 2.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.

Potentially problematic release.


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

Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.erb-lint.yml +5 -0
  3. data/.travis.yml +5 -9
  4. data/Appraisals +14 -19
  5. data/Gemfile +11 -7
  6. data/Gemfile.lock +137 -84
  7. data/NEWS.md +90 -11
  8. data/README.md +11 -24
  9. data/RELEASING.md +25 -0
  10. data/Rakefile +6 -1
  11. data/app/controllers/clearance/base_controller.rb +8 -1
  12. data/app/controllers/clearance/passwords_controller.rb +24 -7
  13. data/app/views/clearance_mailer/change_password.html.erb +2 -2
  14. data/app/views/clearance_mailer/change_password.text.erb +2 -2
  15. data/clearance.gemspec +10 -3
  16. data/config/locales/clearance.en.yml +1 -0
  17. data/config/routes.rb +1 -1
  18. data/gemfiles/rails_5.0.gemfile +10 -9
  19. data/gemfiles/rails_5.1.gemfile +11 -10
  20. data/gemfiles/rails_5.2.gemfile +11 -10
  21. data/gemfiles/rails_6.0.gemfile +11 -10
  22. data/lib/clearance/authentication.rb +1 -1
  23. data/lib/clearance/back_door.rb +2 -1
  24. data/lib/clearance/configuration.rb +29 -18
  25. data/lib/clearance/password_strategies.rb +2 -5
  26. data/lib/clearance/password_strategies/argon2.rb +23 -0
  27. data/lib/clearance/password_strategies/bcrypt.rb +17 -11
  28. data/lib/clearance/rack_session.rb +5 -1
  29. data/lib/clearance/session.rb +19 -2
  30. data/lib/clearance/testing/deny_access_matcher.rb +1 -5
  31. data/lib/clearance/user.rb +12 -3
  32. data/lib/clearance/version.rb +1 -1
  33. data/lib/generators/clearance/install/install_generator.rb +10 -0
  34. data/lib/generators/clearance/install/templates/README +10 -4
  35. data/lib/generators/clearance/install/templates/db/migrate/add_clearance_to_users.rb.erb +1 -1
  36. data/lib/generators/clearance/install/templates/db/migrate/create_users.rb.erb +1 -1
  37. data/lib/generators/clearance/routes/templates/routes.rb +1 -1
  38. data/spec/acceptance/clearance_installation_spec.rb +0 -4
  39. data/spec/app_templates/app/models/user.rb +1 -1
  40. data/spec/app_templates/testapp/app/views/layouts/application.html.erb +24 -0
  41. data/spec/clearance/back_door_spec.rb +20 -4
  42. data/spec/clearance/rack_session_spec.rb +2 -0
  43. data/spec/clearance/session_spec.rb +88 -8
  44. data/spec/clearance/testing/deny_access_matcher_spec.rb +32 -0
  45. data/spec/configuration_spec.rb +32 -14
  46. data/spec/controllers/passwords_controller_spec.rb +36 -0
  47. data/spec/dummy/app/controllers/application_controller.rb +1 -1
  48. data/spec/generators/clearance/install/install_generator_spec.rb +30 -1
  49. data/spec/generators/clearance/views/views_generator_spec.rb +0 -1
  50. data/spec/models/user_spec.rb +34 -5
  51. data/spec/password_strategies/argon2_spec.rb +79 -0
  52. data/spec/password_strategies/bcrypt_spec.rb +18 -1
  53. data/spec/requests/authentication_cookie_spec.rb +55 -0
  54. data/spec/spec_helper.rb +0 -1
  55. data/spec/support/generator_spec_helpers.rb +1 -5
  56. metadata +45 -15
  57. data/app/views/layouts/application.html.erb +0 -23
  58. data/spec/app_templates/app/models/rails5/user.rb +0 -5
@@ -46,5 +46,4 @@ end
46
46
 
47
47
  def restore_default_warning_free_config
48
48
  Clearance.configuration = nil
49
- Clearance.configure { |config| config.rotate_csrf_on_sign_in = true }
50
49
  end
@@ -18,7 +18,7 @@ module GeneratorSpecHelpers
18
18
  end
19
19
 
20
20
  def provide_existing_user_class
21
- copy_to_generator_root("app/models", versionize_template("user.rb"))
21
+ copy_to_generator_root("app/models", "user.rb")
22
22
  allow(File).to receive(:exist?).and_call_original
23
23
  allow(File).to receive(:exist?).with("app/models/user.rb").and_return(true)
24
24
  end
@@ -32,10 +32,6 @@ module GeneratorSpecHelpers
32
32
  FileUtils.mkdir_p(destination)
33
33
  FileUtils.cp(template_file, destination)
34
34
  end
35
-
36
- def versionize_template(template_file)
37
- ["rails5", template_file].join("/")
38
- end
39
35
  end
40
36
 
41
37
  RSpec.configure do |config|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clearance
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta2
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Croak
@@ -22,10 +22,10 @@ authors:
22
22
  - Jason Morrison
23
23
  - Galen Frechette
24
24
  - Josh Steiner
25
- autorequire:
25
+ autorequire:
26
26
  bindir: bin
27
27
  cert_chain: []
28
- date: 2019-09-17 00:00:00.000000000 Z
28
+ date: 2020-08-14 00:00:00.000000000 Z
29
29
  dependencies:
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: bcrypt
@@ -33,28 +33,48 @@ dependencies:
33
33
  requirements:
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: '0'
36
+ version: 3.1.1
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: '0'
43
+ version: 3.1.1
44
+ - !ruby/object:Gem::Dependency
45
+ name: argon2
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '2.0'
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2.0.2
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.0'
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 2.0.2
44
64
  - !ruby/object:Gem::Dependency
45
65
  name: email_validator
46
66
  requirement: !ruby/object:Gem::Requirement
47
67
  requirements:
48
68
  - - "~>"
49
69
  - !ruby/object:Gem::Version
50
- version: '1.4'
70
+ version: '2.0'
51
71
  type: :runtime
52
72
  prerelease: false
53
73
  version_requirements: !ruby/object:Gem::Requirement
54
74
  requirements:
55
75
  - - "~>"
56
76
  - !ruby/object:Gem::Version
57
- version: '1.4'
77
+ version: '2.0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: railties
60
80
  requirement: !ruby/object:Gem::Requirement
@@ -111,7 +131,12 @@ dependencies:
111
131
  - - ">="
112
132
  - !ruby/object:Gem::Version
113
133
  version: '5.0'
114
- description: Rails authentication & authorization with email & password.
134
+ description: |2
135
+ Clearance is built to support authentication and authorization via an
136
+ email/password sign-in mechanism in applications.
137
+
138
+ It provides some core classes commonly used for these features, along with
139
+ some opinionated defaults - but is intended to be easy to override.
115
140
  email: support@thoughtbot.com
116
141
  executables: []
117
142
  extensions: []
@@ -119,6 +144,7 @@ extra_rdoc_files:
119
144
  - LICENSE
120
145
  - README.md
121
146
  files:
147
+ - ".erb-lint.yml"
122
148
  - ".gitignore"
123
149
  - ".travis.yml"
124
150
  - ".yardopts"
@@ -129,6 +155,7 @@ files:
129
155
  - LICENSE
130
156
  - NEWS.md
131
157
  - README.md
158
+ - RELEASING.md
132
159
  - Rakefile
133
160
  - app/controllers/clearance/base_controller.rb
134
161
  - app/controllers/clearance/passwords_controller.rb
@@ -137,7 +164,6 @@ files:
137
164
  - app/mailers/clearance_mailer.rb
138
165
  - app/views/clearance_mailer/change_password.html.erb
139
166
  - app/views/clearance_mailer/change_password.text.erb
140
- - app/views/layouts/application.html.erb
141
167
  - app/views/passwords/create.html.erb
142
168
  - app/views/passwords/edit.html.erb
143
169
  - app/views/passwords/new.html.erb
@@ -170,6 +196,7 @@ files:
170
196
  - lib/clearance/default_sign_in_guard.rb
171
197
  - lib/clearance/engine.rb
172
198
  - lib/clearance/password_strategies.rb
199
+ - lib/clearance/password_strategies/argon2.rb
173
200
  - lib/clearance/password_strategies/bcrypt.rb
174
201
  - lib/clearance/rack_session.rb
175
202
  - lib/clearance/rspec.rb
@@ -205,12 +232,12 @@ files:
205
232
  - lib/generators/clearance/views/views_generator.rb
206
233
  - spec/acceptance/clearance_installation_spec.rb
207
234
  - spec/app_templates/app/controllers/application_controller.rb
208
- - spec/app_templates/app/models/rails5/user.rb
209
235
  - spec/app_templates/app/models/user.rb
210
236
  - spec/app_templates/config/initializers/clearance.rb
211
237
  - spec/app_templates/config/routes.rb
212
238
  - spec/app_templates/testapp/Gemfile
213
239
  - spec/app_templates/testapp/app/controllers/home_controller.rb
240
+ - spec/app_templates/testapp/app/views/layouts/application.html.erb
214
241
  - spec/app_templates/testapp/config/initializers/action_mailer.rb
215
242
  - spec/app_templates/testapp/config/routes.rb
216
243
  - spec/clearance/back_door_spec.rb
@@ -222,6 +249,7 @@ files:
222
249
  - spec/clearance/session_spec.rb
223
250
  - spec/clearance/sign_in_guard_spec.rb
224
251
  - spec/clearance/testing/controller_helpers_spec.rb
252
+ - spec/clearance/testing/deny_access_matcher_spec.rb
225
253
  - spec/clearance/testing/view_helpers_spec.rb
226
254
  - spec/clearance/token_spec.rb
227
255
  - spec/configuration_spec.rb
@@ -245,8 +273,10 @@ files:
245
273
  - spec/helpers/helper_helpers_spec.rb
246
274
  - spec/mailers/clearance_mailer_spec.rb
247
275
  - spec/models/user_spec.rb
276
+ - spec/password_strategies/argon2_spec.rb
248
277
  - spec/password_strategies/bcrypt_spec.rb
249
278
  - spec/password_strategies/password_strategies_spec.rb
279
+ - spec/requests/authentication_cookie_spec.rb
250
280
  - spec/requests/cookie_options_spec.rb
251
281
  - spec/requests/csrf_rotation_spec.rb
252
282
  - spec/requests/password_maintenance_spec.rb
@@ -264,7 +294,7 @@ homepage: https://github.com/thoughtbot/clearance
264
294
  licenses:
265
295
  - MIT
266
296
  metadata: {}
267
- post_install_message:
297
+ post_install_message:
268
298
  rdoc_options:
269
299
  - "--charset=UTF-8"
270
300
  require_paths:
@@ -276,12 +306,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
276
306
  version: 2.4.0
277
307
  required_rubygems_version: !ruby/object:Gem::Requirement
278
308
  requirements:
279
- - - ">"
309
+ - - ">="
280
310
  - !ruby/object:Gem::Version
281
- version: 1.3.1
311
+ version: '0'
282
312
  requirements: []
283
- rubygems_version: 3.0.3
284
- signing_key:
313
+ rubygems_version: 3.1.2
314
+ signing_key:
285
315
  specification_version: 4
286
316
  summary: Rails authentication & authorization with email & password.
287
317
  test_files: []
@@ -1,23 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <%= csrf_meta_tag %>
5
- </head>
6
- <body>
7
- <div id="header">
8
- <% if signed_in? -%>
9
- <%= button_to t(".sign_out"), sign_out_path, method: :delete %>
10
- <% else -%>
11
- <%= link_to t(".sign_in"), sign_in_path %>
12
- <% end -%>
13
- </div>
14
-
15
- <div id="flash">
16
- <% flash.each do |key, value| -%>
17
- <div id="flash_<%= key %>"><%=h value %></div>
18
- <% end %>
19
- </div>
20
-
21
- <%= yield %>
22
- </body>
23
- </html>
@@ -1,5 +0,0 @@
1
- class User < ApplicationRecord
2
- def previously_existed?
3
- true
4
- end
5
- end