devise-secure_password 2.0.1 → 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.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 | []() |
|
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.
|