devise-secure_password 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +8 -0
- data/Gemfile.lock +249 -185
- data/README.md +40 -13
- 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 +13 -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.lock
CHANGED
@@ -1,232 +1,298 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
devise-secure_password (2.0
|
4
|
+
devise-secure_password (2.1.0)
|
5
5
|
devise (>= 4.0.0, < 5.0.0)
|
6
|
-
railties (>= 5.0.0, <
|
6
|
+
railties (>= 5.0.0, < 8.0.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
actioncable (
|
12
|
-
actionpack (=
|
13
|
-
activesupport (=
|
11
|
+
actioncable (7.1.3.2)
|
12
|
+
actionpack (= 7.1.3.2)
|
13
|
+
activesupport (= 7.1.3.2)
|
14
14
|
nio4r (~> 2.0)
|
15
15
|
websocket-driver (>= 0.6.1)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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)
|
22
23
|
mail (>= 2.7.1)
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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)
|
28
32
|
mail (~> 2.5, >= 2.5.4)
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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)
|
34
44
|
rack-test (>= 0.6.3)
|
35
|
-
rails-dom-testing (~> 2.
|
36
|
-
rails-html-sanitizer (~> 1.
|
37
|
-
actiontext (
|
38
|
-
actionpack (=
|
39
|
-
activerecord (=
|
40
|
-
activestorage (=
|
41
|
-
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)
|
42
53
|
nokogiri (>= 1.8.5)
|
43
|
-
actionview (
|
44
|
-
activesupport (=
|
54
|
+
actionview (7.1.3.2)
|
55
|
+
activesupport (= 7.1.3.2)
|
45
56
|
builder (~> 3.1)
|
46
|
-
erubi (~> 1.
|
47
|
-
rails-dom-testing (~> 2.
|
48
|
-
rails-html-sanitizer (~> 1.
|
49
|
-
activejob (
|
50
|
-
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)
|
51
62
|
globalid (>= 0.3.6)
|
52
|
-
activemodel (
|
53
|
-
activesupport (=
|
54
|
-
activerecord (
|
55
|
-
activemodel (=
|
56
|
-
activesupport (=
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
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
|
65
78
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
79
|
+
connection_pool (>= 2.2.5)
|
80
|
+
drb
|
66
81
|
i18n (>= 1.6, < 2)
|
67
82
|
minitest (>= 5.1)
|
83
|
+
mutex_m
|
68
84
|
tzinfo (~> 2.0)
|
69
|
-
|
70
|
-
|
71
|
-
public_suffix (>= 2.0.2, < 5.0)
|
85
|
+
addressable (2.8.6)
|
86
|
+
public_suffix (>= 2.0.2, < 6.0)
|
72
87
|
ansi (1.5.0)
|
73
88
|
ast (2.4.2)
|
74
|
-
|
89
|
+
base64 (0.2.0)
|
90
|
+
bcrypt (3.1.20)
|
91
|
+
bigdecimal (3.1.7)
|
75
92
|
builder (3.2.4)
|
76
|
-
capybara (3.
|
93
|
+
capybara (3.40.0)
|
77
94
|
addressable
|
95
|
+
matrix
|
78
96
|
mini_mime (>= 0.1.3)
|
79
|
-
nokogiri (~> 1.
|
97
|
+
nokogiri (~> 1.11)
|
80
98
|
rack (>= 1.6.0)
|
81
99
|
rack-test (>= 0.6.3)
|
82
100
|
regexp_parser (>= 1.5, < 3.0)
|
83
101
|
xpath (~> 3.2)
|
84
|
-
capybara-screenshot (1.0.
|
102
|
+
capybara-screenshot (1.0.26)
|
85
103
|
capybara (>= 1.0, < 4)
|
86
104
|
launchy
|
87
|
-
childprocess (
|
88
|
-
codecov (0.
|
105
|
+
childprocess (5.0.0)
|
106
|
+
codecov (0.6.0)
|
89
107
|
simplecov (>= 0.15, < 0.22)
|
90
|
-
concurrent-ruby (1.
|
108
|
+
concurrent-ruby (1.2.3)
|
109
|
+
connection_pool (2.4.1)
|
91
110
|
crass (1.0.6)
|
92
|
-
database_cleaner (2.0.
|
93
|
-
database_cleaner-active_record (
|
94
|
-
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)
|
95
114
|
activerecord (>= 5.a)
|
96
115
|
database_cleaner-core (~> 2.0.0)
|
97
116
|
database_cleaner-core (2.0.1)
|
98
|
-
|
117
|
+
date (3.3.4)
|
118
|
+
devise (4.9.3)
|
99
119
|
bcrypt (~> 3.0)
|
100
120
|
orm_adapter (~> 0.1)
|
101
121
|
railties (>= 4.1.0)
|
102
122
|
responders
|
103
123
|
warden (~> 1.2.3)
|
104
|
-
diff-lcs (1.
|
105
|
-
docile (1.
|
106
|
-
|
107
|
-
|
108
|
-
flay (2.
|
109
|
-
|
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)
|
110
130
|
path_expander (~> 1.0)
|
111
131
|
ruby_parser (~> 3.0)
|
112
132
|
sexp_processor (~> 4.0)
|
113
|
-
globalid (
|
114
|
-
activesupport (>=
|
115
|
-
i18n (1.
|
133
|
+
globalid (1.2.1)
|
134
|
+
activesupport (>= 6.1)
|
135
|
+
i18n (1.14.4)
|
116
136
|
concurrent-ruby (~> 1.0)
|
117
|
-
|
118
|
-
|
119
|
-
|
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)
|
120
147
|
crass (~> 1.0.2)
|
121
|
-
nokogiri (>= 1.
|
122
|
-
mail (2.
|
148
|
+
nokogiri (>= 1.12.0)
|
149
|
+
mail (2.8.1)
|
123
150
|
mini_mime (>= 0.1.1)
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
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)
|
132
172
|
racc (~> 1.4)
|
133
173
|
orm_adapter (0.5.0)
|
134
|
-
parallel (1.
|
135
|
-
parser (3.0.
|
174
|
+
parallel (1.24.0)
|
175
|
+
parser (3.3.0.5)
|
136
176
|
ast (~> 2.4.1)
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
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)
|
155
203
|
bundler (>= 1.15.0)
|
156
|
-
railties (=
|
157
|
-
|
158
|
-
|
159
|
-
|
204
|
+
railties (= 7.1.3.2)
|
205
|
+
rails-dom-testing (2.2.0)
|
206
|
+
activesupport (>= 5.0.0)
|
207
|
+
minitest
|
160
208
|
nokogiri (>= 1.6)
|
161
|
-
rails-html-sanitizer (1.
|
162
|
-
loofah (~> 2.
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
rspec-core (3.10.1)
|
181
|
-
rspec-support (~> 3.10.0)
|
182
|
-
rspec-expectations (3.10.1)
|
183
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
184
|
-
rspec-support (~> 3.10.0)
|
185
|
-
rspec-mocks (3.10.2)
|
186
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
187
|
-
rspec-support (~> 3.10.0)
|
188
|
-
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)
|
189
228
|
actionpack (>= 5.2)
|
190
|
-
activesupport (>= 5.2)
|
191
229
|
railties (>= 5.2)
|
192
|
-
|
193
|
-
|
194
|
-
rspec-
|
195
|
-
rspec-
|
196
|
-
|
197
|
-
|
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)
|
198
253
|
rspec-core (>= 2, < 4, != 2.12.0)
|
199
|
-
rubocop (1.
|
254
|
+
rubocop (1.62.1)
|
255
|
+
json (~> 2.3)
|
256
|
+
language_server-protocol (>= 3.17.0)
|
200
257
|
parallel (~> 1.10)
|
201
|
-
parser (>= 3.
|
258
|
+
parser (>= 3.3.0.2)
|
202
259
|
rainbow (>= 2.2.2, < 4.0)
|
203
260
|
regexp_parser (>= 1.8, < 3.0)
|
204
|
-
rexml
|
205
|
-
rubocop-ast (>= 1.
|
261
|
+
rexml (>= 3.2.5, < 4.0)
|
262
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
206
263
|
ruby-progressbar (~> 1.7)
|
207
|
-
unicode-display_width (>=
|
208
|
-
rubocop-ast (1.
|
209
|
-
parser (>= 3.0.
|
210
|
-
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)
|
211
272
|
activesupport (>= 4.2.0)
|
212
273
|
rack (>= 1.1)
|
213
|
-
rubocop (>=
|
214
|
-
|
215
|
-
|
216
|
-
rubocop
|
217
|
-
|
218
|
-
|
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)
|
219
282
|
ruby_parser (~> 3.1)
|
220
283
|
sexp_processor (~> 4.6)
|
221
|
-
ruby_parser (3.
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
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)
|
230
296
|
simplecov (0.21.2)
|
231
297
|
docile (~> 1.1)
|
232
298
|
simplecov-html (~> 0.11)
|
@@ -236,29 +302,27 @@ GEM
|
|
236
302
|
simplecov
|
237
303
|
terminal-table
|
238
304
|
simplecov-html (0.12.3)
|
239
|
-
simplecov_json_formatter (0.1.
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
terminal-table (3.0.0)
|
249
|
-
unicode-display_width (~> 1.1, >= 1.1.1)
|
250
|
-
thor (1.1.0)
|
251
|
-
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)
|
252
314
|
concurrent-ruby (~> 1.0)
|
253
|
-
unicode-display_width (
|
315
|
+
unicode-display_width (2.5.0)
|
254
316
|
warden (1.2.9)
|
255
317
|
rack (>= 2.0.9)
|
256
|
-
|
318
|
+
webrick (1.8.1)
|
319
|
+
websocket (1.2.10)
|
320
|
+
websocket-driver (0.7.6)
|
257
321
|
websocket-extensions (>= 0.1.0)
|
258
322
|
websocket-extensions (0.1.5)
|
259
323
|
xpath (3.2.0)
|
260
324
|
nokogiri (~> 1.8)
|
261
|
-
zeitwerk (2.
|
325
|
+
zeitwerk (2.6.13)
|
262
326
|
|
263
327
|
PLATFORMS
|
264
328
|
ruby
|
@@ -273,7 +337,7 @@ DEPENDENCIES
|
|
273
337
|
devise-secure_password!
|
274
338
|
flay (>= 2.10.0)
|
275
339
|
launchy (>= 2.4.3)
|
276
|
-
rails (>=
|
340
|
+
rails (>= 6.1.0)
|
277
341
|
rake (>= 12.3)
|
278
342
|
rspec (>= 3.7)
|
279
343
|
rspec-rails (>= 3.7)
|
@@ -286,7 +350,7 @@ DEPENDENCIES
|
|
286
350
|
shoulda-matchers
|
287
351
|
simplecov (>= 0.18.2)
|
288
352
|
simplecov-console (>= 0.4.2)
|
289
|
-
sqlite3 (>= 1.
|
353
|
+
sqlite3 (>= 1.7.0)
|
290
354
|
|
291
355
|
BUNDLED WITH
|
292
|
-
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 | [![Circle CI](https://circleci.com/gh/ValiMail/devise-secure_password/tree/master.svg?style=shield&circle-token=cd173d5f9d2944a9b14737c2d4339b20b08565cf)]() |
|
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.
|