devise-secure_password 2.0.0 → 2.1.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.
- checksums.yaml +4 -4
- data/Changelog.md +8 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +250 -192
- data/README.md +40 -13
- data/config/locales/en.yml +1 -0
- data/devise-secure_password.gemspec +8 -4
- data/gemfiles/rails_6_1.gemfile +1 -1
- data/gemfiles/rails_7_0.gemfile +66 -0
- data/lib/devise/secure_password/models/password_disallows_frequent_changes.rb +7 -7
- data/lib/devise/secure_password/models/password_disallows_frequent_reuse.rb +1 -1
- data/lib/devise/secure_password/models/password_requires_regular_updates.rb +7 -7
- data/lib/devise/secure_password/version.rb +1 -1
- data/lib/generators/devise/templates/secure_password.rb +1 -1
- data/lib/support/string/character_counter.rb +1 -1
- data/pkg/devise-secure_password-2.0.1.gem +0 -0
- data/pkg/devise-secure_password-2.1.0.gem +0 -0
- metadata +14 -14
- data/gemfiles/rails_6_0.gemfile +0 -57
- data/gemfiles/rails_6_0.gemfile.lock +0 -347
- data/gemfiles/rails_6_1.gemfile.lock +0 -352
- data/pkg/devise-secure_password-2.0.0.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2e80099b8c322cd261f7a0fbd90084067f7dddfdd54f3dae8fcddb5332f8699
|
4
|
+
data.tar.gz: d2d48b58dc422ff894eec4d13628059fb41dcbbd80adc7e7a3a5062c7bb78ae3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4bd7731fedbef2c0fcc378e7b99a1f062b219158d111474d9610b66ae65f57810f4919fe2041b9834afde0aa80b81ffeff449d83c29d4790c1dbcc686e659f3
|
7
|
+
data.tar.gz: ba5e45d193293c1e3e76899fea8b1689772bf8cfd19f54f5a61659f1a4e2868df7cca5e297de504dc73809bb99000b6217fcfe60c477281c77aa22621fba06d1
|
data/Changelog.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog: devise-secure_password
|
2
2
|
|
3
|
+
## 2.1.0 / 2024-06-02
|
4
|
+
|
5
|
+
* Various CircleCI updates.
|
6
|
+
* Update README for (Rails, Ruby) versions tested.
|
7
|
+
* Drop support for old Ruby and Rails; add support for Rails 7.0.
|
8
|
+
* Implement support to additional special characters. #71
|
9
|
+
* several years worth of dependabot updates
|
10
|
+
|
3
11
|
## 1.1.0 / 2018-08-08
|
4
12
|
|
5
13
|
With this release, the __devise-secure_password__ gem drops official support for Rails < 5.1. Supported versions are now
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,238 +1,298 @@
|
|
1
|
-
GIT
|
2
|
-
remote: https://github.com/thoughtbot/shoulda-matchers.git
|
3
|
-
revision: 4b160bd19ecca7f97d7ac22dccd5fde9b0da5a9f
|
4
|
-
branch: rails-5
|
5
|
-
specs:
|
6
|
-
shoulda-matchers (3.1.2)
|
7
|
-
activesupport (>= 4.2.0)
|
8
|
-
|
9
1
|
PATH
|
10
2
|
remote: .
|
11
3
|
specs:
|
12
|
-
devise-secure_password (2.
|
4
|
+
devise-secure_password (2.1.0)
|
13
5
|
devise (>= 4.0.0, < 5.0.0)
|
14
|
-
railties (>= 5.0.0, <
|
6
|
+
railties (>= 5.0.0, < 8.0.0)
|
15
7
|
|
16
8
|
GEM
|
17
9
|
remote: https://rubygems.org/
|
18
10
|
specs:
|
19
|
-
actioncable (
|
20
|
-
actionpack (=
|
21
|
-
activesupport (=
|
11
|
+
actioncable (7.1.3.2)
|
12
|
+
actionpack (= 7.1.3.2)
|
13
|
+
activesupport (= 7.1.3.2)
|
22
14
|
nio4r (~> 2.0)
|
23
15
|
websocket-driver (>= 0.6.1)
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
16
|
+
zeitwerk (~> 2.6)
|
17
|
+
actionmailbox (7.1.3.2)
|
18
|
+
actionpack (= 7.1.3.2)
|
19
|
+
activejob (= 7.1.3.2)
|
20
|
+
activerecord (= 7.1.3.2)
|
21
|
+
activestorage (= 7.1.3.2)
|
22
|
+
activesupport (= 7.1.3.2)
|
30
23
|
mail (>= 2.7.1)
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
24
|
+
net-imap
|
25
|
+
net-pop
|
26
|
+
net-smtp
|
27
|
+
actionmailer (7.1.3.2)
|
28
|
+
actionpack (= 7.1.3.2)
|
29
|
+
actionview (= 7.1.3.2)
|
30
|
+
activejob (= 7.1.3.2)
|
31
|
+
activesupport (= 7.1.3.2)
|
36
32
|
mail (~> 2.5, >= 2.5.4)
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
33
|
+
net-imap
|
34
|
+
net-pop
|
35
|
+
net-smtp
|
36
|
+
rails-dom-testing (~> 2.2)
|
37
|
+
actionpack (7.1.3.2)
|
38
|
+
actionview (= 7.1.3.2)
|
39
|
+
activesupport (= 7.1.3.2)
|
40
|
+
nokogiri (>= 1.8.5)
|
41
|
+
racc
|
42
|
+
rack (>= 2.2.4)
|
43
|
+
rack-session (>= 1.0.1)
|
42
44
|
rack-test (>= 0.6.3)
|
43
|
-
rails-dom-testing (~> 2.
|
44
|
-
rails-html-sanitizer (~> 1.
|
45
|
-
actiontext (
|
46
|
-
actionpack (=
|
47
|
-
activerecord (=
|
48
|
-
activestorage (=
|
49
|
-
activesupport (=
|
45
|
+
rails-dom-testing (~> 2.2)
|
46
|
+
rails-html-sanitizer (~> 1.6)
|
47
|
+
actiontext (7.1.3.2)
|
48
|
+
actionpack (= 7.1.3.2)
|
49
|
+
activerecord (= 7.1.3.2)
|
50
|
+
activestorage (= 7.1.3.2)
|
51
|
+
activesupport (= 7.1.3.2)
|
52
|
+
globalid (>= 0.6.0)
|
50
53
|
nokogiri (>= 1.8.5)
|
51
|
-
actionview (
|
52
|
-
activesupport (=
|
54
|
+
actionview (7.1.3.2)
|
55
|
+
activesupport (= 7.1.3.2)
|
53
56
|
builder (~> 3.1)
|
54
|
-
erubi (~> 1.
|
55
|
-
rails-dom-testing (~> 2.
|
56
|
-
rails-html-sanitizer (~> 1.
|
57
|
-
activejob (
|
58
|
-
activesupport (=
|
57
|
+
erubi (~> 1.11)
|
58
|
+
rails-dom-testing (~> 2.2)
|
59
|
+
rails-html-sanitizer (~> 1.6)
|
60
|
+
activejob (7.1.3.2)
|
61
|
+
activesupport (= 7.1.3.2)
|
59
62
|
globalid (>= 0.3.6)
|
60
|
-
activemodel (
|
61
|
-
activesupport (=
|
62
|
-
activerecord (
|
63
|
-
activemodel (=
|
64
|
-
activesupport (=
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
activesupport (
|
63
|
+
activemodel (7.1.3.2)
|
64
|
+
activesupport (= 7.1.3.2)
|
65
|
+
activerecord (7.1.3.2)
|
66
|
+
activemodel (= 7.1.3.2)
|
67
|
+
activesupport (= 7.1.3.2)
|
68
|
+
timeout (>= 0.4.0)
|
69
|
+
activestorage (7.1.3.2)
|
70
|
+
actionpack (= 7.1.3.2)
|
71
|
+
activejob (= 7.1.3.2)
|
72
|
+
activerecord (= 7.1.3.2)
|
73
|
+
activesupport (= 7.1.3.2)
|
74
|
+
marcel (~> 1.0)
|
75
|
+
activesupport (7.1.3.2)
|
76
|
+
base64
|
77
|
+
bigdecimal
|
73
78
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
79
|
+
connection_pool (>= 2.2.5)
|
80
|
+
drb
|
74
81
|
i18n (>= 1.6, < 2)
|
75
82
|
minitest (>= 5.1)
|
83
|
+
mutex_m
|
76
84
|
tzinfo (~> 2.0)
|
77
|
-
|
78
|
-
|
79
|
-
public_suffix (>= 2.0.2, < 5.0)
|
85
|
+
addressable (2.8.6)
|
86
|
+
public_suffix (>= 2.0.2, < 6.0)
|
80
87
|
ansi (1.5.0)
|
81
88
|
ast (2.4.2)
|
82
|
-
|
89
|
+
base64 (0.2.0)
|
90
|
+
bcrypt (3.1.20)
|
91
|
+
bigdecimal (3.1.7)
|
83
92
|
builder (3.2.4)
|
84
|
-
capybara (3.
|
93
|
+
capybara (3.40.0)
|
85
94
|
addressable
|
95
|
+
matrix
|
86
96
|
mini_mime (>= 0.1.3)
|
87
|
-
nokogiri (~> 1.
|
97
|
+
nokogiri (~> 1.11)
|
88
98
|
rack (>= 1.6.0)
|
89
99
|
rack-test (>= 0.6.3)
|
90
100
|
regexp_parser (>= 1.5, < 3.0)
|
91
101
|
xpath (~> 3.2)
|
92
|
-
capybara-screenshot (1.0.
|
102
|
+
capybara-screenshot (1.0.26)
|
93
103
|
capybara (>= 1.0, < 4)
|
94
104
|
launchy
|
95
|
-
childprocess (
|
96
|
-
codecov (0.
|
105
|
+
childprocess (5.0.0)
|
106
|
+
codecov (0.6.0)
|
97
107
|
simplecov (>= 0.15, < 0.22)
|
98
|
-
concurrent-ruby (1.
|
108
|
+
concurrent-ruby (1.2.3)
|
109
|
+
connection_pool (2.4.1)
|
99
110
|
crass (1.0.6)
|
100
|
-
database_cleaner (2.0.
|
101
|
-
database_cleaner-active_record (
|
102
|
-
database_cleaner-active_record (2.
|
111
|
+
database_cleaner (2.0.2)
|
112
|
+
database_cleaner-active_record (>= 2, < 3)
|
113
|
+
database_cleaner-active_record (2.1.0)
|
103
114
|
activerecord (>= 5.a)
|
104
115
|
database_cleaner-core (~> 2.0.0)
|
105
116
|
database_cleaner-core (2.0.1)
|
106
|
-
|
117
|
+
date (3.3.4)
|
118
|
+
devise (4.9.3)
|
107
119
|
bcrypt (~> 3.0)
|
108
120
|
orm_adapter (~> 0.1)
|
109
121
|
railties (>= 4.1.0)
|
110
122
|
responders
|
111
123
|
warden (~> 1.2.3)
|
112
|
-
diff-lcs (1.
|
113
|
-
docile (1.
|
114
|
-
|
115
|
-
|
116
|
-
flay (2.
|
117
|
-
|
124
|
+
diff-lcs (1.5.1)
|
125
|
+
docile (1.4.0)
|
126
|
+
drb (2.2.1)
|
127
|
+
erubi (1.12.0)
|
128
|
+
flay (2.13.2)
|
129
|
+
erubi (~> 1.10)
|
118
130
|
path_expander (~> 1.0)
|
119
131
|
ruby_parser (~> 3.0)
|
120
132
|
sexp_processor (~> 4.0)
|
121
|
-
globalid (
|
122
|
-
activesupport (>=
|
123
|
-
i18n (1.
|
133
|
+
globalid (1.2.1)
|
134
|
+
activesupport (>= 6.1)
|
135
|
+
i18n (1.14.4)
|
124
136
|
concurrent-ruby (~> 1.0)
|
125
|
-
|
126
|
-
|
127
|
-
|
137
|
+
io-console (0.7.2)
|
138
|
+
irb (1.12.0)
|
139
|
+
rdoc
|
140
|
+
reline (>= 0.4.2)
|
141
|
+
json (2.7.1)
|
142
|
+
language_server-protocol (3.17.0.3)
|
143
|
+
launchy (3.0.0)
|
144
|
+
addressable (~> 2.8)
|
145
|
+
childprocess (~> 5.0)
|
146
|
+
loofah (2.22.0)
|
128
147
|
crass (~> 1.0.2)
|
129
|
-
nokogiri (>= 1.
|
130
|
-
mail (2.
|
148
|
+
nokogiri (>= 1.12.0)
|
149
|
+
mail (2.8.1)
|
131
150
|
mini_mime (>= 0.1.1)
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
151
|
+
net-imap
|
152
|
+
net-pop
|
153
|
+
net-smtp
|
154
|
+
marcel (1.0.4)
|
155
|
+
matrix (0.4.2)
|
156
|
+
mini_mime (1.1.5)
|
157
|
+
mini_portile2 (2.8.5)
|
158
|
+
minitest (5.22.3)
|
159
|
+
mutex_m (0.2.0)
|
160
|
+
net-imap (0.4.10)
|
161
|
+
date
|
162
|
+
net-protocol
|
163
|
+
net-pop (0.1.2)
|
164
|
+
net-protocol
|
165
|
+
net-protocol (0.2.2)
|
166
|
+
timeout
|
167
|
+
net-smtp (0.4.0.1)
|
168
|
+
net-protocol
|
169
|
+
nio4r (2.7.1)
|
170
|
+
nokogiri (1.16.3)
|
171
|
+
mini_portile2 (~> 2.8.2)
|
140
172
|
racc (~> 1.4)
|
141
173
|
orm_adapter (0.5.0)
|
142
|
-
parallel (1.
|
143
|
-
parser (3.0.
|
174
|
+
parallel (1.24.0)
|
175
|
+
parser (3.3.0.5)
|
144
176
|
ast (~> 2.4.1)
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
177
|
+
racc
|
178
|
+
path_expander (1.1.1)
|
179
|
+
psych (5.1.2)
|
180
|
+
stringio
|
181
|
+
public_suffix (5.0.4)
|
182
|
+
racc (1.7.3)
|
183
|
+
rack (3.0.10)
|
184
|
+
rack-session (2.0.0)
|
185
|
+
rack (>= 3.0.0)
|
186
|
+
rack-test (2.1.0)
|
187
|
+
rack (>= 1.3)
|
188
|
+
rackup (2.1.0)
|
189
|
+
rack (>= 3)
|
190
|
+
webrick (~> 1.8)
|
191
|
+
rails (7.1.3.2)
|
192
|
+
actioncable (= 7.1.3.2)
|
193
|
+
actionmailbox (= 7.1.3.2)
|
194
|
+
actionmailer (= 7.1.3.2)
|
195
|
+
actionpack (= 7.1.3.2)
|
196
|
+
actiontext (= 7.1.3.2)
|
197
|
+
actionview (= 7.1.3.2)
|
198
|
+
activejob (= 7.1.3.2)
|
199
|
+
activemodel (= 7.1.3.2)
|
200
|
+
activerecord (= 7.1.3.2)
|
201
|
+
activestorage (= 7.1.3.2)
|
202
|
+
activesupport (= 7.1.3.2)
|
163
203
|
bundler (>= 1.15.0)
|
164
|
-
railties (=
|
165
|
-
|
166
|
-
|
167
|
-
|
204
|
+
railties (= 7.1.3.2)
|
205
|
+
rails-dom-testing (2.2.0)
|
206
|
+
activesupport (>= 5.0.0)
|
207
|
+
minitest
|
168
208
|
nokogiri (>= 1.6)
|
169
|
-
rails-html-sanitizer (1.
|
170
|
-
loofah (~> 2.
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
rspec-core (3.10.1)
|
189
|
-
rspec-support (~> 3.10.0)
|
190
|
-
rspec-expectations (3.10.1)
|
191
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
192
|
-
rspec-support (~> 3.10.0)
|
193
|
-
rspec-mocks (3.10.2)
|
194
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
195
|
-
rspec-support (~> 3.10.0)
|
196
|
-
rspec-rails (5.0.1)
|
209
|
+
rails-html-sanitizer (1.6.0)
|
210
|
+
loofah (~> 2.21)
|
211
|
+
nokogiri (~> 1.14)
|
212
|
+
railties (7.1.3.2)
|
213
|
+
actionpack (= 7.1.3.2)
|
214
|
+
activesupport (= 7.1.3.2)
|
215
|
+
irb
|
216
|
+
rackup (>= 1.0.0)
|
217
|
+
rake (>= 12.2)
|
218
|
+
thor (~> 1.0, >= 1.2.2)
|
219
|
+
zeitwerk (~> 2.6)
|
220
|
+
rainbow (3.1.1)
|
221
|
+
rake (13.1.0)
|
222
|
+
rdoc (6.6.3.1)
|
223
|
+
psych (>= 4.0.0)
|
224
|
+
regexp_parser (2.9.0)
|
225
|
+
reline (0.4.3)
|
226
|
+
io-console (~> 0.5)
|
227
|
+
responders (3.1.1)
|
197
228
|
actionpack (>= 5.2)
|
198
|
-
activesupport (>= 5.2)
|
199
229
|
railties (>= 5.2)
|
200
|
-
|
201
|
-
|
202
|
-
rspec-
|
203
|
-
rspec-
|
204
|
-
|
205
|
-
|
230
|
+
rexml (3.2.6)
|
231
|
+
rspec (3.13.0)
|
232
|
+
rspec-core (~> 3.13.0)
|
233
|
+
rspec-expectations (~> 3.13.0)
|
234
|
+
rspec-mocks (~> 3.13.0)
|
235
|
+
rspec-core (3.13.0)
|
236
|
+
rspec-support (~> 3.13.0)
|
237
|
+
rspec-expectations (3.13.0)
|
238
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
239
|
+
rspec-support (~> 3.13.0)
|
240
|
+
rspec-mocks (3.13.0)
|
241
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
242
|
+
rspec-support (~> 3.13.0)
|
243
|
+
rspec-rails (6.1.2)
|
244
|
+
actionpack (>= 6.1)
|
245
|
+
activesupport (>= 6.1)
|
246
|
+
railties (>= 6.1)
|
247
|
+
rspec-core (~> 3.13)
|
248
|
+
rspec-expectations (~> 3.13)
|
249
|
+
rspec-mocks (~> 3.13)
|
250
|
+
rspec-support (~> 3.13)
|
251
|
+
rspec-support (3.13.1)
|
252
|
+
rspec_junit_formatter (0.6.0)
|
206
253
|
rspec-core (>= 2, < 4, != 2.12.0)
|
207
|
-
rubocop (1.
|
254
|
+
rubocop (1.62.1)
|
255
|
+
json (~> 2.3)
|
256
|
+
language_server-protocol (>= 3.17.0)
|
208
257
|
parallel (~> 1.10)
|
209
|
-
parser (>= 3.
|
258
|
+
parser (>= 3.3.0.2)
|
210
259
|
rainbow (>= 2.2.2, < 4.0)
|
211
260
|
regexp_parser (>= 1.8, < 3.0)
|
212
|
-
rexml
|
213
|
-
rubocop-ast (>= 1.
|
261
|
+
rexml (>= 3.2.5, < 4.0)
|
262
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
214
263
|
ruby-progressbar (~> 1.7)
|
215
|
-
unicode-display_width (>=
|
216
|
-
rubocop-ast (1.
|
217
|
-
parser (>= 3.0.
|
218
|
-
rubocop-
|
264
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
265
|
+
rubocop-ast (1.31.2)
|
266
|
+
parser (>= 3.3.0.4)
|
267
|
+
rubocop-capybara (2.20.0)
|
268
|
+
rubocop (~> 1.41)
|
269
|
+
rubocop-factory_bot (2.25.1)
|
270
|
+
rubocop (~> 1.41)
|
271
|
+
rubocop-rails (2.24.0)
|
219
272
|
activesupport (>= 4.2.0)
|
220
273
|
rack (>= 1.1)
|
221
|
-
rubocop (>=
|
222
|
-
|
223
|
-
|
224
|
-
rubocop
|
225
|
-
|
226
|
-
|
274
|
+
rubocop (>= 1.33.0, < 2.0)
|
275
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
276
|
+
rubocop-rspec (2.27.1)
|
277
|
+
rubocop (~> 1.40)
|
278
|
+
rubocop-capybara (~> 2.17)
|
279
|
+
rubocop-factory_bot (~> 2.22)
|
280
|
+
ruby-progressbar (1.13.0)
|
281
|
+
ruby2ruby (2.5.0)
|
227
282
|
ruby_parser (~> 3.1)
|
228
283
|
sexp_processor (~> 4.6)
|
229
|
-
ruby_parser (3.
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
284
|
+
ruby_parser (3.21.0)
|
285
|
+
racc (~> 1.5)
|
286
|
+
sexp_processor (~> 4.16)
|
287
|
+
rubyzip (2.3.2)
|
288
|
+
selenium-webdriver (4.18.1)
|
289
|
+
base64 (~> 0.2)
|
290
|
+
rexml (~> 3.2, >= 3.2.5)
|
291
|
+
rubyzip (>= 1.2.2, < 3.0)
|
292
|
+
websocket (~> 1.0)
|
293
|
+
sexp_processor (4.17.1)
|
294
|
+
shoulda-matchers (6.2.0)
|
295
|
+
activesupport (>= 5.2.0)
|
236
296
|
simplecov (0.21.2)
|
237
297
|
docile (~> 1.1)
|
238
298
|
simplecov-html (~> 0.11)
|
@@ -242,29 +302,27 @@ GEM
|
|
242
302
|
simplecov
|
243
303
|
terminal-table
|
244
304
|
simplecov-html (0.12.3)
|
245
|
-
simplecov_json_formatter (0.1.
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
terminal-table (3.0.0)
|
255
|
-
unicode-display_width (~> 1.1, >= 1.1.1)
|
256
|
-
thor (1.1.0)
|
257
|
-
tzinfo (2.0.4)
|
305
|
+
simplecov_json_formatter (0.1.4)
|
306
|
+
sqlite3 (1.7.3)
|
307
|
+
mini_portile2 (~> 2.8.0)
|
308
|
+
stringio (3.1.0)
|
309
|
+
terminal-table (3.0.2)
|
310
|
+
unicode-display_width (>= 1.1.1, < 3)
|
311
|
+
thor (1.3.1)
|
312
|
+
timeout (0.4.1)
|
313
|
+
tzinfo (2.0.6)
|
258
314
|
concurrent-ruby (~> 1.0)
|
259
|
-
unicode-display_width (
|
315
|
+
unicode-display_width (2.5.0)
|
260
316
|
warden (1.2.9)
|
261
317
|
rack (>= 2.0.9)
|
262
|
-
|
318
|
+
webrick (1.8.1)
|
319
|
+
websocket (1.2.10)
|
320
|
+
websocket-driver (0.7.6)
|
263
321
|
websocket-extensions (>= 0.1.0)
|
264
322
|
websocket-extensions (0.1.5)
|
265
323
|
xpath (3.2.0)
|
266
324
|
nokogiri (~> 1.8)
|
267
|
-
zeitwerk (2.
|
325
|
+
zeitwerk (2.6.13)
|
268
326
|
|
269
327
|
PLATFORMS
|
270
328
|
ruby
|
@@ -279,7 +337,7 @@ DEPENDENCIES
|
|
279
337
|
devise-secure_password!
|
280
338
|
flay (>= 2.10.0)
|
281
339
|
launchy (>= 2.4.3)
|
282
|
-
rails (>=
|
340
|
+
rails (>= 6.1.0)
|
283
341
|
rake (>= 12.3)
|
284
342
|
rspec (>= 3.7)
|
285
343
|
rspec-rails (>= 3.7)
|
@@ -289,10 +347,10 @@ DEPENDENCIES
|
|
289
347
|
rubocop-rspec (>= 1.35.0)
|
290
348
|
ruby2ruby (>= 2.4.0)
|
291
349
|
selenium-webdriver (>= 3.7.0)
|
292
|
-
shoulda-matchers
|
350
|
+
shoulda-matchers
|
293
351
|
simplecov (>= 0.18.2)
|
294
352
|
simplecov-console (>= 0.4.2)
|
295
|
-
sqlite3 (>= 1.
|
353
|
+
sqlite3 (>= 1.7.0)
|
296
354
|
|
297
355
|
BUNDLED WITH
|
298
|
-
2.
|
356
|
+
2.5.10
|
data/README.md
CHANGED
@@ -7,12 +7,6 @@ added to a Rails project to enforce password policies. The gem is implemented as
|
|
7
7
|
[devise](https://github.com/plataformatec/devise) authentication solution gem and requires that __devise__ is installed
|
8
8
|
as well.
|
9
9
|
|
10
|
-
## Build Status
|
11
|
-
|
12
|
-
| Service | rails 6.1 |
|
13
|
-
|:-----------|:-----------:|
|
14
|
-
| Circle CI | []() |
|
15
|
-
|
16
10
|
## Overview
|
17
11
|
|
18
12
|
The __Devise Secure Password Extension__ is composed of the following modules:
|
@@ -32,15 +26,48 @@ The goal of this project is to provide compatibility for officially supported st
|
|
32
26
|
and [Ruby on Rails](http://guides.rubyonrails.org/maintenance_policy.html). More specifically, the following releases
|
33
27
|
are currently supported by the __Devise Secure Password Extension__:
|
34
28
|
|
35
|
-
- Ruby on Rails: __6.1.x__,
|
36
|
-
- Ruby: __3.
|
29
|
+
- Ruby on Rails: __6.1.x__, __7.0.x__
|
30
|
+
- Ruby: __3.1.x__, __3.2.x__, __3.3.x__
|
31
|
+
|
32
|
+
### Updating to a New Rails Version
|
33
|
+
|
34
|
+
This gem uses so-called "dummy" apps in the specs to verify compatibility with a major/minor version of Rails. Adding a new major/minor version of Rails requires us to add a new "dummy" app in the spec folder, and a corresponding Gemfile in the gemfiles directory. While manual, this process is relatively straightforward:
|
35
|
+
|
36
|
+
1. Create a new Rails app in the directory `spec/rails_<major>_<minor>` by using the Rails generator for that version, ensuring you skip Git setup. (e.g. `cd spec; rails _6.0.3.6_ new rails-app-6_0 --skip-git`)
|
37
|
+
2. Move the Gemfile from the newly created app to the `gemfiles` directory and rename it with the major/minor version (e.g. `mv spec/rails_6_1/Gemfile gemfiles/rails_6_1.gemfile`)
|
38
|
+
3. Update the Gemfile to include the Rails target and gemspec immediately beneath the source declarations, like this:
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
source 'https://rubygems.org'
|
42
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
43
|
+
|
44
|
+
ENV['RAILS_TARGET'] ||= '6.1'
|
45
|
+
|
46
|
+
gemspec path: '../'
|
47
|
+
```
|
48
|
+
|
49
|
+
4. Add `gem 'shoulda-matchers'` under the test group in the new Gemfile
|
50
|
+
5. Ensure you can bundle by running `bundle` with the `BUNDLE_GEMFILE` variable set to the new Gemfile (i.e. `BUNDLE_GEMFILE=gemfiles/rails_6_1.gemfile bundle`). This should run successfully - fix as needed.
|
51
|
+
6. Copy the file `config/initializers/devise.rb` from an existing "dummy" app to the same location in the new app.
|
52
|
+
7. Copy the file `config/routes.rb` from an existing "dummy" app to the same location in the new app.
|
53
|
+
8. Copy the contents of the `db/migrate` directory from an existing "dummy" app to the same location in the new app. Copy the `db/schema.rb` and `db/test.sqlite3` as well
|
54
|
+
9. Copy the `app/controllers/static_pages_controller.rb` from an existing "dummy" app to the same location in the new app.
|
55
|
+
10. Copy the `app/models/isolated` directory and the `app/models/user.rb` file from an existing "dummy" app to the same location in the new app.
|
56
|
+
11. Copy the `app/views/static_pages` directory from an existing "dummy" app to the same location in the new app.
|
57
|
+
12. Update the `app/views/layouts/application.html.erb` in the new app to have the same `<body>` content and `<title>` as the same file in an existing "dummy" app.
|
58
|
+
13. At this point you should be able to run specs. (i.e. `BUNDLE_GEMFILE=gemfiles/rails_6_1.gemfile bundle exec rake`). Run specs and fix version specific issues, taking care to maintain backwards compatibility with supported versions.
|
59
|
+
14. You should also run Rubocop (i.e. `BUNDLE_GEMFILE=gemfiles/rails_6_1.gemfile bundle exec rubocop`) and fix whatever issues are reported (again, maintaining backwards compatibility)
|
60
|
+
15. In the `.circleci/config.yml` file update the `current_rails_gemfile` and `previous_rails_gemfile` to reference the new version and the previous version of Rails to be supported
|
61
|
+
16. Delete any files for old Rails versions that are no longer supported - "dummy" apps and the corresponding `gemfiles` Gemfile.
|
62
|
+
17. Update the Circle CI badge label in this README to reflect the newly supported Rails version.
|
63
|
+
|
37
64
|
|
38
65
|
## Installation
|
39
66
|
|
40
67
|
Add this line to your application's Gemfile:
|
41
68
|
|
42
69
|
```ruby
|
43
|
-
gem 'devise', '~> 4.
|
70
|
+
gem 'devise', '~> 4.8'
|
44
71
|
gem 'devise-secure_password', '~> 2.0'
|
45
72
|
```
|
46
73
|
|
@@ -88,7 +115,7 @@ Devise.setup do |config|
|
|
88
115
|
# The number of numbers (0-9) required in a password:
|
89
116
|
# config.password_required_number_count = 1
|
90
117
|
|
91
|
-
# The number of special characters (!@#$%^&*()_+-=[]{}|') required in a password:
|
118
|
+
# The number of special characters ( !@#$%^&*()_+-=[]{}|'"/\.,`<>:;?~) required in a password:
|
92
119
|
# config.password_required_special_character_count = 1
|
93
120
|
|
94
121
|
# ==> Configuration for the Devise Secure Password extension
|
@@ -228,14 +255,14 @@ To determine the Ruby on Rails versions supported by this release, run the follo
|
|
228
255
|
prompt> gem install flay ruby2ruby rubocop rspec
|
229
256
|
prompt> rake test:spec:targets
|
230
257
|
|
231
|
-
Available Rails targets:
|
258
|
+
Available Rails targets: 7.0, 6.1
|
232
259
|
```
|
233
260
|
|
234
261
|
Reconfigure the project by specifying the correct Gemfile when running bundler, followed by running tests:
|
235
262
|
|
236
263
|
```bash
|
237
|
-
prompt> BUNDLE_GEMFILE=gemfiles/
|
238
|
-
prompt> BUNDLE_GEMFILE=gemfiles/
|
264
|
+
prompt> BUNDLE_GEMFILE=gemfiles/rails_7_0.gemfile bundle
|
265
|
+
prompt> BUNDLE_GEMFILE=gemfiles/rails_7_0.gemfile bundle exec rake
|
239
266
|
```
|
240
267
|
|
241
268
|
The only time you need to define the `BUNDLE_GEMFILE` environment variable is when testing a non-default target.
|