clearance 2.6.1 → 2.6.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 136429332942ad6982566811de66424e672d356bdf19e912c8ee7dbe0ede8765
4
- data.tar.gz: 1a8ec9af9ab0ec22be0a35745ee7e7880fbb9b6945cc83db1bf7b5e903d8bbe8
3
+ metadata.gz: 830820687a4cbb2e63c535692a8bbc1bfee75f747ef351362df0142317251e56
4
+ data.tar.gz: 559bc151b6cf7669f13c113c16e4275dbd687fe4c3daf77bb17e288bd982548e
5
5
  SHA512:
6
- metadata.gz: 24fd97a070795a1343b7e4971f154765ce0c73e57daff27f0af288769dffb4a84900ea96dc935519da6f761274cbeb4b6dc66c5189eba7b504406d95b350dd0d
7
- data.tar.gz: f576ab8afb5725e4919cbb259e692c552bf301420ec61234b86f4fca66d3d34d478bb8a88112d79b95350fe29e317eb93d736d9782eea22b43482a809de5bd16
6
+ metadata.gz: d68f58f9428536f29d68348baaa4e616bd39f713933e986bff2977f5afce6d1fdf42a783f475de869d564a384b1414e737b2e34e63bf8bdb35dee53a1e234bf6
7
+ data.tar.gz: 26f780a332edc0358289d87e924749078366d08e9490574e7a5943a61abbe19f16a4cd13dc947f10bddf6733aff3c405aa2e94e33787dd618b9218dd3cc334cb
@@ -19,10 +19,12 @@ jobs:
19
19
  - "6.0"
20
20
  - "6.1"
21
21
  - "7.0"
22
+ - "7.1"
22
23
  ruby:
23
24
  - "2.7.6"
24
25
  - "3.0.4"
25
26
  - "3.1.2"
27
+ - "3.2.2"
26
28
 
27
29
  env:
28
30
  BUNDLE_GEMFILE: gemfiles/rails_${{ matrix.gemfile }}.gemfile
@@ -38,7 +40,9 @@ jobs:
38
40
  bundler-cache: true
39
41
 
40
42
  - name: "Reset app database"
41
- run: bundle exec rake dummy:db:reset
43
+ run: |
44
+ bundle exec rake dummy:db:drop
45
+ bundle exec rake dummy:db:setup
42
46
 
43
47
  - name: "Run tests"
44
48
  run: bundle exec rake
data/Appraisals CHANGED
@@ -1,14 +1,18 @@
1
1
  appraise "rails_6.0" do
2
- gem "railties", "~> 6.0"
2
+ gem "railties", "~> 6.0.0"
3
3
  gem "net-smtp", require: false # not bundled in ruby 3.1
4
4
  gem "psych", "< 4" # psych 4 switched from unsafe load to safe load
5
5
  end
6
6
 
7
7
  appraise "rails_6.1" do
8
- gem "railties", "~> 6.1"
8
+ gem "railties", "~> 6.1.0"
9
9
  gem "net-smtp", require: false # not bundled in ruby 3.1
10
10
  end
11
11
 
12
12
  appraise "rails_7.0" do
13
- gem "railties", "~> 7.0"
13
+ gem "railties", "~> 7.0.0"
14
+ end
15
+
16
+ appraise "rails_7.1" do
17
+ gem "railties", "~> 7.1.0"
14
18
  end
data/CHANGELOG.md CHANGED
@@ -5,7 +5,20 @@ complete changelog, see the git history for each version via the version links.
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
- [Unreleased]: https://github.com/thoughtbot/clearance/compare/v2.6.1...main
8
+ [Unreleased]: https://github.com/thoughtbot/clearance/compare/v2.6.2...main
9
+
10
+ ## [2.6.2] January 15, 2024
11
+ - Fix typo in Clearance::Token docs (#1000) Gabe Berke-Williams
12
+ - Add CODEOWNERS file (#994)
13
+ - Add support for Rails 7.1 (#995) Samuel Giddens
14
+ - Fix for setup & CI for Rails 7.1 support, update "MiniTest" to "Minitest",
15
+ add handling for different versions of Rack::Utils.set_cookie_header!, remove
16
+ deprecated active record handling in application.rb (#998)
17
+ - Update argon2 to v2.2.0 (#989) Georg Leciejewski
18
+ - Prefer literal hash creation notation (#984) Ivan Marynych
19
+ - Add Ruby 3.2.2 to testing matrix (#991)
20
+ - Replace mentions of NEWS.md with CHANGELOG.md (#982)
21
+ - Fix broken thoughtbot logo on README.md
9
22
 
10
23
  ## [2.6.1] - September 23, 2022
11
24
  - Document how to report security issues
data/CODEOWNERS ADDED
@@ -0,0 +1 @@
1
+ * @sej3506
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- clearance (2.6.1)
4
+ clearance (2.6.2)
5
5
  actionmailer (>= 5.0)
6
6
  activemodel (>= 5.0)
7
7
  activerecord (>= 5.0)
@@ -59,11 +59,11 @@ GEM
59
59
  bundler
60
60
  rake
61
61
  thor (>= 0.14.0)
62
- argon2 (2.1.1)
63
- ffi (~> 1.14)
62
+ argon2 (2.3.0)
63
+ ffi (~> 1.15)
64
64
  ffi-compiler (~> 1.0)
65
65
  ast (2.4.2)
66
- bcrypt (3.1.18)
66
+ bcrypt (3.1.20)
67
67
  better_html (1.0.16)
68
68
  actionview (>= 4.0)
69
69
  activesupport (>= 4.0)
@@ -91,9 +91,9 @@ GEM
91
91
  activerecord (>= 5.a)
92
92
  database_cleaner-core (~> 2.0.0)
93
93
  database_cleaner-core (2.0.1)
94
+ date (3.3.4)
94
95
  diff-lcs (1.5.0)
95
- digest (3.1.0)
96
- email_validator (2.2.3)
96
+ email_validator (2.2.4)
97
97
  activemodel
98
98
  erb_lint (0.1.1)
99
99
  activesupport
@@ -109,39 +109,37 @@ GEM
109
109
  factory_bot_rails (6.2.0)
110
110
  factory_bot (~> 6.2.0)
111
111
  railties (>= 5.0.0)
112
- ffi (1.15.5)
112
+ ffi (1.16.3)
113
113
  ffi-compiler (1.0.1)
114
114
  ffi (>= 1.0.0)
115
115
  rake
116
- globalid (1.0.0)
117
- activesupport (>= 5.0)
116
+ globalid (1.2.1)
117
+ activesupport (>= 6.1)
118
118
  html_tokenizer (0.0.7)
119
119
  i18n (1.10.0)
120
120
  concurrent-ruby (~> 1.0)
121
121
  loofah (2.18.0)
122
122
  crass (~> 1.0.2)
123
123
  nokogiri (>= 1.5.9)
124
- mail (2.7.1)
124
+ mail (2.8.1)
125
125
  mini_mime (>= 0.1.1)
126
+ net-imap
127
+ net-pop
128
+ net-smtp
126
129
  matrix (0.4.2)
127
130
  method_source (1.0.0)
128
131
  mini_mime (1.1.2)
129
132
  mini_portile2 (2.8.0)
130
133
  minitest (5.15.0)
131
- net-imap (0.2.3)
132
- digest
134
+ net-imap (0.4.9)
135
+ date
133
136
  net-protocol
134
- strscan
135
- net-pop (0.1.1)
136
- digest
137
+ net-pop (0.1.2)
137
138
  net-protocol
139
+ net-protocol (0.2.2)
138
140
  timeout
139
- net-protocol (0.1.3)
140
- timeout
141
- net-smtp (0.3.1)
142
- digest
141
+ net-smtp (0.4.0)
143
142
  net-protocol
144
- timeout
145
143
  nokogiri (1.13.6)
146
144
  mini_portile2 (~> 2.8.0)
147
145
  racc (~> 1.4)
@@ -209,10 +207,9 @@ GEM
209
207
  activesupport (>= 5.2.0)
210
208
  smart_properties (1.17.0)
211
209
  sqlite3 (1.4.2)
212
- strscan (3.0.3)
213
210
  thor (1.2.1)
214
211
  timecop (0.9.5)
215
- timeout (0.3.0)
212
+ timeout (0.4.1)
216
213
  tzinfo (2.0.4)
217
214
  concurrent-ruby (~> 1.0)
218
215
  unicode-display_width (2.1.0)
data/README.md CHANGED
@@ -488,7 +488,7 @@ redistributed under the terms specified in the [`LICENSE`] file.
488
488
 
489
489
  ## About thoughtbot
490
490
 
491
- ![thoughtbot](http://presskit.thoughtbot.com/images/thoughtbot-logo-for-readmes.svg)
491
+ ![thoughtbot](https://thoughtbot.com/brand_assets/93:44.svg)
492
492
 
493
493
  Clearance is maintained and funded by thoughtbot, inc.
494
494
  The names and logos for thoughtbot are trademarks of thoughtbot, inc.
data/RELEASING.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  1. Update version file accordingly.
4
4
  1. Run `bundle install` to update Gemfile.lock
5
- 1. Update `NEWS.md` to reflect the changes since last release.
5
+ 1. Update `CHANGELOG.md` to reflect the changes since last release.
6
6
  1. Commit changes.
7
7
  There shouldn't be code changes,
8
8
  and thus CI doesn't need to run,
@@ -16,7 +16,7 @@
16
16
  gem build clearance.gemspec
17
17
  gem push clearance-*.gem
18
18
  ```
19
- 1. Add a new GitHub release using the recent `NEWS.md` as the content. Sample
19
+ 1. Add a new GitHub release using the recent `CHANGELOG.md` as the content. Sample
20
20
  URL: https://github.com/thoughtbot/clearance/releases/new?tag=vVERSION
21
21
  1. Announce the new release,
22
22
  making sure to say "thank you" to the contributors
@@ -41,6 +41,6 @@ class Clearance::UsersController < Clearance::BaseController
41
41
  end
42
42
 
43
43
  def user_params
44
- params[Clearance.configuration.user_parameter] || Hash.new
44
+ params[Clearance.configuration.user_parameter] || {}
45
45
  end
46
46
  end
data/bin/setup CHANGED
@@ -12,4 +12,5 @@ if [ -z "$CI" ]; then
12
12
  fi
13
13
 
14
14
  # Set up database for the application that Clearance tests against
15
- RAILS_ENV=test bundle exec rake dummy:db:reset
15
+ RAILS_ENV=test bundle exec rake dummy:db:drop
16
+ RAILS_ENV=test bundle exec rake dummy:db:setup
@@ -16,7 +16,7 @@ gem "rspec-rails"
16
16
  gem "shoulda-matchers"
17
17
  gem "sqlite3"
18
18
  gem "timecop"
19
- gem "railties", "~> 6.0"
19
+ gem "railties", "~> 6.0.0"
20
20
  gem "net-smtp", require: false
21
21
  gem "psych", "< 4"
22
22
 
@@ -16,7 +16,7 @@ gem "rspec-rails"
16
16
  gem "shoulda-matchers"
17
17
  gem "sqlite3"
18
18
  gem "timecop"
19
- gem "railties", "~> 6.1"
19
+ gem "railties", "~> 6.1.0"
20
20
  gem "net-smtp", require: false
21
21
 
22
22
  gemspec path: "../"
@@ -16,6 +16,6 @@ gem "rspec-rails"
16
16
  gem "shoulda-matchers"
17
17
  gem "sqlite3"
18
18
  gem "timecop"
19
- gem "railties", "~> 7.0"
19
+ gem "railties", "~> 7.0.0"
20
20
 
21
21
  gemspec path: "../"
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "addressable"
6
+ gem "ammeter"
7
+ gem "appraisal"
8
+ gem "capybara"
9
+ gem "database_cleaner"
10
+ gem "erb_lint", require: false
11
+ gem "factory_bot_rails"
12
+ gem "nokogiri"
13
+ gem "pry", require: false
14
+ gem "rails-controller-testing"
15
+ gem "rspec-rails"
16
+ gem "shoulda-matchers"
17
+ gem "sqlite3"
18
+ gem "timecop"
19
+ gem "railties", "~> 7.1.0"
20
+
21
+ gemspec path: "../"
@@ -66,7 +66,12 @@ module Clearance
66
66
  clearance_session.sign_in(user, &block)
67
67
 
68
68
  if signed_in? && Clearance.configuration.rotate_csrf_on_sign_in?
69
- session.delete(:_csrf_token)
69
+ if request.respond_to?(:reset_csrf_token)
70
+ # Rails 7.1+
71
+ request.reset_csrf_token
72
+ else
73
+ request.session.try(:delete, :_csrf_token)
74
+ end
70
75
  form_authenticity_token
71
76
  end
72
77
  end
@@ -185,10 +185,8 @@ module Clearance
185
185
 
186
186
  # @api private
187
187
  def delete_cookie_options
188
- Hash.new.tap do |options|
189
- if configured_cookie_domain
190
- options[:domain] = domain
191
- end
188
+ {}.tap do |options|
189
+ options[:domain] = domain if configured_cookie_domain
192
190
  end
193
191
  end
194
192
 
@@ -90,7 +90,7 @@ module Clearance
90
90
  @failure_message_when_negated <<
91
91
  "Didn't expect to redirect to #{@url}."
92
92
  true
93
- rescue MiniTest::Assertion, ::Test::Unit::AssertionFailedError
93
+ rescue ::Minitest::Assertion, ::Test::Unit::AssertionFailedError
94
94
  @failure_message << "Expected to redirect to #{@url} but did not."
95
95
  false
96
96
  end
@@ -1,8 +1,8 @@
1
1
  module Clearance
2
2
  # Random token used for password reset and remember tokens.
3
- # Clearance tokens are also public API and are inteded to be used anywhere you
4
- # need a random token to correspond to a given user (e.g. you added an email
5
- # confirmation token).
3
+ # Clearance tokens are also public API and are intended to be used anywhere
4
+ # you need a random token to correspond to a given user (e.g. you added an
5
+ # email confirmation token).
6
6
  class Token
7
7
  # Generate a new random, 20 byte hex token.
8
8
  #
@@ -1,3 +1,3 @@
1
1
  module Clearance
2
- VERSION = "2.6.1".freeze
2
+ VERSION = "2.6.2".freeze
3
3
  end
@@ -472,7 +472,8 @@ describe Clearance::Session do
472
472
  Rack::Utils.set_cookie_header! header, key, value
473
473
  end
474
474
 
475
- header['Set-Cookie']
475
+ cookie = header["set-cookie"] || header["Set-Cookie"]
476
+ cookie
476
477
  end
477
478
 
478
479
  def have_been_called
@@ -19,12 +19,6 @@ module Dummy
19
19
  config.paths["log"] = "tmp/log/development.log"
20
20
  config.paths.add "config/routes.rb", with: "#{APP_ROOT}/config/routes.rb"
21
21
 
22
- if Rails.version.match?(/^6.0/)
23
- config.active_record.sqlite3.represent_boolean_as_integer = true
24
- else
25
- config.active_record.legacy_connection_handling = false
26
- end
27
-
28
22
  def require_environment!
29
23
  initialize!
30
24
  end
@@ -40,7 +40,7 @@ describe "Cookie options" do
40
40
  it { should_have_one_remember_token }
41
41
 
42
42
  it "should have the httponly flag set" do
43
- expect(remember_token_cookies.last).to match(/HttpOnly/)
43
+ expect(remember_token_cookies.last.downcase).to match(/httponly/)
44
44
  end
45
45
  end
46
46
  end
@@ -36,7 +36,7 @@ RSpec::Matchers.define :set_cookie do |name, expected_value, expected_expires_at
36
36
  end
37
37
 
38
38
  def extract_cookies
39
- @cookie_headers = @headers['Set-Cookie'] || []
39
+ @cookie_headers = @headers["Set-Cookie"] || @headers["set-cookie"] || []
40
40
  @cookie_headers = [@cookie_headers] if @cookie_headers.respond_to?(:to_str)
41
41
  end
42
42
 
@@ -16,7 +16,8 @@ module RememberTokenHelpers
16
16
  end
17
17
 
18
18
  def remember_token_cookies
19
- cookie_lines = headers["Set-Cookie"].lines.map(&:chomp)
19
+ set_cookie_header = headers["Set-Cookie"] || headers["set-cookie"]
20
+ cookie_lines = Array(set_cookie_header).join("\n").lines.map(&:chomp)
20
21
  cookie_lines.select { |name| name =~ /^remember_token/ }
21
22
  end
22
23
  end
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.6.1
4
+ version: 2.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Croak
@@ -26,7 +26,7 @@ authors:
26
26
  autorequire:
27
27
  bindir: bin
28
28
  cert_chain: []
29
- date: 2022-09-23 00:00:00.000000000 Z
29
+ date: 2024-01-15 00:00:00.000000000 Z
30
30
  dependencies:
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: bcrypt
@@ -151,6 +151,7 @@ files:
151
151
  - ".yardopts"
152
152
  - Appraisals
153
153
  - CHANGELOG.md
154
+ - CODEOWNERS
154
155
  - CONTRIBUTING.md
155
156
  - Gemfile
156
157
  - Gemfile.lock
@@ -187,6 +188,7 @@ files:
187
188
  - gemfiles/rails_6.0.gemfile
188
189
  - gemfiles/rails_6.1.gemfile
189
190
  - gemfiles/rails_7.0.gemfile
191
+ - gemfiles/rails_7.1.gemfile
190
192
  - lib/clearance.rb
191
193
  - lib/clearance/authentication.rb
192
194
  - lib/clearance/authorization.rb
@@ -314,7 +316,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
314
316
  - !ruby/object:Gem::Version
315
317
  version: '0'
316
318
  requirements: []
317
- rubygems_version: 3.3.7
319
+ rubygems_version: 3.1.6
318
320
  signing_key:
319
321
  specification_version: 4
320
322
  summary: Rails authentication & authorization with email & password.