devise-security 0.14.1 → 0.18.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.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +3 -1
  3. data/README.md +136 -61
  4. data/app/controllers/devise/paranoid_verification_code_controller.rb +26 -12
  5. data/app/controllers/devise/password_expired_controller.rb +32 -10
  6. data/app/views/devise/paranoid_verification_code/show.html.erb +3 -3
  7. data/app/views/devise/password_expired/show.html.erb +5 -5
  8. data/config/locales/bg.yml +42 -0
  9. data/config/locales/by.yml +50 -0
  10. data/config/locales/cs.yml +46 -0
  11. data/config/locales/de.yml +16 -2
  12. data/config/locales/en.yml +15 -2
  13. data/config/locales/es.yml +22 -9
  14. data/config/locales/fa.yml +42 -0
  15. data/config/locales/fr.yml +15 -2
  16. data/config/locales/hi.yml +43 -0
  17. data/config/locales/it.yml +36 -4
  18. data/config/locales/ja.yml +14 -1
  19. data/config/locales/nl.yml +42 -0
  20. data/config/locales/pt.yml +42 -0
  21. data/config/locales/ru.yml +50 -0
  22. data/config/locales/tr.yml +26 -1
  23. data/config/locales/uk.yml +50 -0
  24. data/config/locales/zh_CN.yml +42 -0
  25. data/config/locales/zh_TW.yml +42 -0
  26. data/lib/devise-security/controllers/helpers.rb +72 -51
  27. data/lib/devise-security/hooks/expirable.rb +3 -3
  28. data/lib/devise-security/hooks/paranoid_verification.rb +1 -3
  29. data/lib/devise-security/hooks/password_expirable.rb +3 -3
  30. data/lib/devise-security/hooks/session_limitable.rb +29 -14
  31. data/lib/devise-security/models/compatibility/{active_record.rb → active_record_patch.rb} +14 -2
  32. data/lib/devise-security/models/compatibility/{mongoid.rb → mongoid_patch.rb} +12 -1
  33. data/lib/devise-security/models/compatibility.rb +2 -2
  34. data/lib/devise-security/models/database_authenticatable_patch.rb +18 -10
  35. data/lib/devise-security/models/expirable.rb +6 -5
  36. data/lib/devise-security/models/paranoid_verification.rb +2 -2
  37. data/lib/devise-security/models/password_archivable.rb +3 -3
  38. data/lib/devise-security/models/password_expirable.rb +5 -1
  39. data/lib/devise-security/models/secure_validatable.rb +62 -11
  40. data/lib/devise-security/models/session_limitable.rb +17 -2
  41. data/lib/devise-security/orm/mongoid.rb +1 -1
  42. data/lib/devise-security/patches.rb +14 -8
  43. data/lib/devise-security/routes.rb +2 -3
  44. data/lib/devise-security/validators/password_complexity_validator.rb +53 -24
  45. data/lib/devise-security/version.rb +1 -1
  46. data/lib/devise-security.rb +15 -6
  47. data/lib/generators/devise_security/install_generator.rb +4 -6
  48. data/lib/generators/templates/{devise-security.rb → devise_security.rb} +9 -1
  49. data/test/controllers/test_paranoid_verification_code_controller.rb +133 -0
  50. data/test/controllers/test_password_expired_controller.rb +164 -0
  51. data/test/{test_security_question_controller.rb → controllers/test_security_question_controller.rb} +19 -37
  52. data/test/dummy/app/assets/config/manifest.js +3 -0
  53. data/test/dummy/app/controllers/overrides/paranoid_verification_code_controller.rb +7 -0
  54. data/test/dummy/app/controllers/overrides/password_expired_controller.rb +17 -0
  55. data/test/dummy/app/controllers/widgets_controller.rb +9 -0
  56. data/test/dummy/app/models/application_user_record.rb +2 -1
  57. data/test/dummy/app/models/mongoid/confirmable_fields.rb +2 -0
  58. data/test/dummy/app/models/mongoid/database_authenticable_fields.rb +4 -3
  59. data/test/dummy/app/models/mongoid/expirable_fields.rb +2 -0
  60. data/test/dummy/app/models/mongoid/lockable_fields.rb +2 -0
  61. data/test/dummy/app/models/mongoid/mappings.rb +4 -2
  62. data/test/dummy/app/models/mongoid/omniauthable_fields.rb +2 -0
  63. data/test/dummy/app/models/mongoid/paranoid_verification_fields.rb +2 -0
  64. data/test/dummy/app/models/mongoid/password_archivable_fields.rb +2 -0
  65. data/test/dummy/app/models/mongoid/password_expirable_fields.rb +2 -0
  66. data/test/dummy/app/models/mongoid/recoverable_fields.rb +2 -0
  67. data/test/dummy/app/models/mongoid/registerable_fields.rb +4 -2
  68. data/test/dummy/app/models/mongoid/rememberable_fields.rb +2 -0
  69. data/test/dummy/app/models/mongoid/secure_validatable_fields.rb +2 -0
  70. data/test/dummy/app/models/mongoid/security_questionable_fields.rb +2 -0
  71. data/test/dummy/app/models/mongoid/session_limitable_fields.rb +2 -0
  72. data/test/dummy/app/models/mongoid/timeoutable_fields.rb +2 -0
  73. data/test/dummy/app/models/mongoid/trackable_fields.rb +2 -0
  74. data/test/dummy/app/models/mongoid/validatable_fields.rb +2 -0
  75. data/test/dummy/app/models/paranoid_verification_user.rb +26 -0
  76. data/test/dummy/app/models/password_expired_user.rb +26 -0
  77. data/test/dummy/app/models/user.rb +10 -2
  78. data/test/dummy/app/models/widget.rb +1 -3
  79. data/test/dummy/app/mongoid/one_user.rb +5 -5
  80. data/test/dummy/app/mongoid/user_on_engine.rb +2 -2
  81. data/test/dummy/app/mongoid/user_on_main_app.rb +2 -2
  82. data/test/dummy/app/mongoid/user_with_validations.rb +3 -3
  83. data/test/dummy/app/mongoid/user_without_email.rb +7 -4
  84. data/test/dummy/config/application.rb +3 -7
  85. data/test/dummy/config/boot.rb +1 -1
  86. data/test/dummy/config/environment.rb +1 -1
  87. data/test/dummy/config/environments/test.rb +4 -13
  88. data/test/dummy/config/initializers/devise.rb +1 -5
  89. data/test/dummy/config/initializers/migration_class.rb +1 -8
  90. data/test/dummy/config/locales/en.yml +10 -0
  91. data/test/dummy/config/mongoid.yml +1 -1
  92. data/test/dummy/config/routes.rb +6 -3
  93. data/test/dummy/config.ru +1 -1
  94. data/test/dummy/db/migrate/20120508165529_create_tables.rb +15 -6
  95. data/test/dummy/lib/shared_expirable_columns.rb +1 -0
  96. data/test/dummy/lib/shared_security_questions_fields.rb +1 -0
  97. data/test/dummy/lib/shared_user.rb +17 -6
  98. data/test/dummy/lib/shared_user_without_omniauth.rb +12 -3
  99. data/test/dummy/lib/shared_verification_fields.rb +1 -0
  100. data/test/dummy/log/test.log +45240 -0
  101. data/test/i18n_test.rb +22 -0
  102. data/test/integration/test_paranoid_verification_code_workflow.rb +53 -0
  103. data/test/integration/test_password_expirable_workflow.rb +53 -0
  104. data/test/integration/test_session_limitable_workflow.rb +69 -0
  105. data/test/orm/active_record.rb +7 -4
  106. data/test/orm/mongoid.rb +2 -1
  107. data/test/support/integration_helpers.rb +35 -0
  108. data/test/support/mongoid.yml +1 -1
  109. data/test/test_compatibility.rb +15 -0
  110. data/test/test_complexity_validator.rb +251 -29
  111. data/test/test_database_authenticatable_patch.rb +146 -0
  112. data/test/test_helper.rb +23 -8
  113. data/test/test_install_generator.rb +12 -2
  114. data/test/test_paranoid_verification.rb +8 -9
  115. data/test/test_password_archivable.rb +34 -11
  116. data/test/test_password_expirable.rb +27 -27
  117. data/test/test_secure_validatable.rb +284 -50
  118. data/test/test_secure_validatable_overrides.rb +185 -0
  119. data/test/test_session_limitable.rb +57 -0
  120. data/test/tmp/config/initializers/devise_security.rb +52 -0
  121. data/test/tmp/config/locales/devise.security_extension.by.yml +50 -0
  122. data/test/tmp/config/locales/devise.security_extension.cs.yml +46 -0
  123. data/test/tmp/config/locales/devise.security_extension.de.yml +42 -0
  124. data/test/tmp/config/locales/devise.security_extension.en.yml +42 -0
  125. data/test/tmp/config/locales/devise.security_extension.es.yml +42 -0
  126. data/test/tmp/config/locales/devise.security_extension.fa.yml +42 -0
  127. data/test/tmp/config/locales/devise.security_extension.fr.yml +42 -0
  128. data/test/tmp/config/locales/devise.security_extension.hi.yml +43 -0
  129. data/test/tmp/config/locales/devise.security_extension.it.yml +42 -0
  130. data/test/tmp/config/locales/devise.security_extension.ja.yml +42 -0
  131. data/test/tmp/config/locales/devise.security_extension.nl.yml +42 -0
  132. data/test/tmp/config/locales/devise.security_extension.pt.yml +42 -0
  133. data/test/tmp/config/locales/devise.security_extension.ru.yml +50 -0
  134. data/test/tmp/config/locales/devise.security_extension.tr.yml +42 -0
  135. data/test/tmp/config/locales/devise.security_extension.uk.yml +50 -0
  136. data/test/tmp/config/locales/devise.security_extension.zh_CN.yml +42 -0
  137. data/test/tmp/config/locales/devise.security_extension.zh_TW.yml +42 -0
  138. metadata +202 -138
  139. data/.codeclimate.yml +0 -63
  140. data/.document +0 -5
  141. data/.gitignore +0 -43
  142. data/.mdlrc +0 -1
  143. data/.rubocop.yml +0 -64
  144. data/.ruby-version +0 -1
  145. data/.travis.yml +0 -39
  146. data/Appraisals +0 -35
  147. data/Gemfile +0 -10
  148. data/Rakefile +0 -27
  149. data/devise-security.gemspec +0 -50
  150. data/gemfiles/rails_4.2_stable.gemfile +0 -16
  151. data/gemfiles/rails_5.0_stable.gemfile +0 -15
  152. data/gemfiles/rails_5.1_stable.gemfile +0 -15
  153. data/gemfiles/rails_5.2_stable.gemfile +0 -15
  154. data/gemfiles/rails_6.0_beta.gemfile +0 -15
  155. data/lib/devise-security/orm/active_record.rb +0 -20
  156. data/lib/devise-security/patches/confirmations_controller_captcha.rb +0 -23
  157. data/lib/devise-security/patches/confirmations_controller_security_question.rb +0 -26
  158. data/lib/devise-security/patches/passwords_controller_captcha.rb +0 -22
  159. data/lib/devise-security/patches/passwords_controller_security_question.rb +0 -25
  160. data/lib/devise-security/patches/registrations_controller_captcha.rb +0 -35
  161. data/lib/devise-security/patches/sessions_controller_captcha.rb +0 -26
  162. data/lib/devise-security/patches/unlocks_controller_captcha.rb +0 -22
  163. data/lib/devise-security/patches/unlocks_controller_security_question.rb +0 -25
  164. data/lib/devise-security/schema.rb +0 -66
  165. data/test/dummy/app/controllers/foos_controller.rb +0 -0
  166. data/test/dummy/app/models/.gitkeep +0 -0
  167. data/test/dummy/app/models/secure_user.rb +0 -9
  168. data/test/dummy/lib/shared_user_without_email.rb +0 -28
  169. data/test/test_password_expired_controller.rb +0 -46
  170. /data/test/{test_captcha_controller.rb → controllers/test_captcha_controller.rb} +0 -0
metadata CHANGED
@@ -1,61 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-security
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.1
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
- - Marco Scholl
8
7
  - Alexander Dreher
9
- - Nate Bird
10
8
  - Dillon Welch
11
9
  - Kevin Olbrich
12
- autorequire:
10
+ - Marco Scholl
11
+ - Nate Bird
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2019-04-26 00:00:00.000000000 Z
15
+ date: 2023-04-15 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
- name: rails
18
+ name: devise
19
19
  requirement: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 4.2.0
24
- - - "<"
25
- - !ruby/object:Gem::Version
26
- version: '7.0'
23
+ version: 4.3.0
27
24
  type: :runtime
28
25
  prerelease: false
29
26
  version_requirements: !ruby/object:Gem::Requirement
30
27
  requirements:
31
28
  - - ">="
32
29
  - !ruby/object:Gem::Version
33
- version: 4.2.0
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: '7.0'
30
+ version: 4.3.0
37
31
  - !ruby/object:Gem::Dependency
38
- name: devise
32
+ name: appraisal
39
33
  requirement: !ruby/object:Gem::Requirement
40
34
  requirements:
41
35
  - - ">="
42
36
  - !ruby/object:Gem::Version
43
- version: 4.3.0
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: '5.0'
47
- type: :runtime
37
+ version: '0'
38
+ type: :development
48
39
  prerelease: false
49
40
  version_requirements: !ruby/object:Gem::Requirement
50
41
  requirements:
51
42
  - - ">="
52
43
  - !ruby/object:Gem::Version
53
- version: 4.3.0
54
- - - "<"
55
- - !ruby/object:Gem::Version
56
- version: '5.0'
44
+ version: '0'
57
45
  - !ruby/object:Gem::Dependency
58
- name: appraisal
46
+ name: bundler
59
47
  requirement: !ruby/object:Gem::Requirement
60
48
  requirements:
61
49
  - - ">="
@@ -69,7 +57,7 @@ dependencies:
69
57
  - !ruby/object:Gem::Version
70
58
  version: '0'
71
59
  - !ruby/object:Gem::Dependency
72
- name: bundler
60
+ name: byebug
73
61
  requirement: !ruby/object:Gem::Requirement
74
62
  requirements:
75
63
  - - ">="
@@ -83,7 +71,7 @@ dependencies:
83
71
  - !ruby/object:Gem::Version
84
72
  version: '0'
85
73
  - !ruby/object:Gem::Dependency
86
- name: coveralls
74
+ name: database_cleaner
87
75
  requirement: !ruby/object:Gem::Requirement
88
76
  requirements:
89
77
  - - ">="
@@ -97,7 +85,7 @@ dependencies:
97
85
  - !ruby/object:Gem::Version
98
86
  version: '0'
99
87
  - !ruby/object:Gem::Dependency
100
- name: database_cleaner
88
+ name: easy_captcha
101
89
  requirement: !ruby/object:Gem::Requirement
102
90
  requirements:
103
91
  - - ">="
@@ -111,7 +99,7 @@ dependencies:
111
99
  - !ruby/object:Gem::Version
112
100
  version: '0'
113
101
  - !ruby/object:Gem::Dependency
114
- name: easy_captcha
102
+ name: i18n-tasks
115
103
  requirement: !ruby/object:Gem::Requirement
116
104
  requirements:
117
105
  - - ">="
@@ -167,7 +155,7 @@ dependencies:
167
155
  - !ruby/object:Gem::Version
168
156
  version: '0'
169
157
  - !ruby/object:Gem::Dependency
170
- name: pry-byebug
158
+ name: pry-rescue
171
159
  requirement: !ruby/object:Gem::Requirement
172
160
  requirements:
173
161
  - - ">="
@@ -181,7 +169,7 @@ dependencies:
181
169
  - !ruby/object:Gem::Version
182
170
  version: '0'
183
171
  - !ruby/object:Gem::Dependency
184
- name: pry-rescue
172
+ name: rails_email_validator
185
173
  requirement: !ruby/object:Gem::Requirement
186
174
  requirements:
187
175
  - - ">="
@@ -195,7 +183,7 @@ dependencies:
195
183
  - !ruby/object:Gem::Version
196
184
  version: '0'
197
185
  - !ruby/object:Gem::Dependency
198
- name: rails_email_validator
186
+ name: rubocop
199
187
  requirement: !ruby/object:Gem::Requirement
200
188
  requirements:
201
189
  - - ">="
@@ -209,21 +197,21 @@ dependencies:
209
197
  - !ruby/object:Gem::Version
210
198
  version: '0'
211
199
  - !ruby/object:Gem::Dependency
212
- name: rubocop
200
+ name: rubocop-minitest
213
201
  requirement: !ruby/object:Gem::Requirement
214
202
  requirements:
215
- - - "~>"
203
+ - - ">="
216
204
  - !ruby/object:Gem::Version
217
- version: 0.66.0
205
+ version: '0'
218
206
  type: :development
219
207
  prerelease: false
220
208
  version_requirements: !ruby/object:Gem::Requirement
221
209
  requirements:
222
- - - "~>"
210
+ - - ">="
223
211
  - !ruby/object:Gem::Version
224
- version: 0.66.0
212
+ version: '0'
225
213
  - !ruby/object:Gem::Dependency
226
- name: sqlite3
214
+ name: rubocop-rails
227
215
  requirement: !ruby/object:Gem::Requirement
228
216
  requirements:
229
217
  - - ">="
@@ -237,7 +225,35 @@ dependencies:
237
225
  - !ruby/object:Gem::Version
238
226
  version: '0'
239
227
  - !ruby/object:Gem::Dependency
240
- name: wwtd
228
+ name: simplecov-lcov
229
+ requirement: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ type: :development
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ version: '0'
241
+ - !ruby/object:Gem::Dependency
242
+ name: solargraph
243
+ requirement: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - ">="
246
+ - !ruby/object:Gem::Version
247
+ version: '0'
248
+ type: :development
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ - !ruby/object:Gem::Dependency
256
+ name: solargraph-arc
241
257
  requirement: !ruby/object:Gem::Requirement
242
258
  requirements:
243
259
  - - ">="
@@ -256,35 +272,30 @@ executables: []
256
272
  extensions: []
257
273
  extra_rdoc_files: []
258
274
  files:
259
- - ".codeclimate.yml"
260
- - ".document"
261
- - ".gitignore"
262
- - ".mdlrc"
263
- - ".rubocop.yml"
264
- - ".ruby-version"
265
- - ".travis.yml"
266
- - Appraisals
267
- - Gemfile
268
275
  - LICENSE.txt
269
276
  - README.md
270
- - Rakefile
271
277
  - app/controllers/devise/paranoid_verification_code_controller.rb
272
278
  - app/controllers/devise/password_expired_controller.rb
273
279
  - app/views/devise/paranoid_verification_code/show.html.erb
274
280
  - app/views/devise/password_expired/show.html.erb
281
+ - config/locales/bg.yml
282
+ - config/locales/by.yml
283
+ - config/locales/cs.yml
275
284
  - config/locales/de.yml
276
285
  - config/locales/en.yml
277
286
  - config/locales/es.yml
287
+ - config/locales/fa.yml
278
288
  - config/locales/fr.yml
289
+ - config/locales/hi.yml
279
290
  - config/locales/it.yml
280
291
  - config/locales/ja.yml
292
+ - config/locales/nl.yml
293
+ - config/locales/pt.yml
294
+ - config/locales/ru.yml
281
295
  - config/locales/tr.yml
282
- - devise-security.gemspec
283
- - gemfiles/rails_4.2_stable.gemfile
284
- - gemfiles/rails_5.0_stable.gemfile
285
- - gemfiles/rails_5.1_stable.gemfile
286
- - gemfiles/rails_5.2_stable.gemfile
287
- - gemfiles/rails_6.0_beta.gemfile
296
+ - config/locales/uk.yml
297
+ - config/locales/zh_CN.yml
298
+ - config/locales/zh_TW.yml
288
299
  - lib/devise-security.rb
289
300
  - lib/devise-security/controllers/helpers.rb
290
301
  - lib/devise-security/hooks/expirable.rb
@@ -293,8 +304,8 @@ files:
293
304
  - lib/devise-security/hooks/session_limitable.rb
294
305
  - lib/devise-security/models/active_record/old_password.rb
295
306
  - lib/devise-security/models/compatibility.rb
296
- - lib/devise-security/models/compatibility/active_record.rb
297
- - lib/devise-security/models/compatibility/mongoid.rb
307
+ - lib/devise-security/models/compatibility/active_record_patch.rb
308
+ - lib/devise-security/models/compatibility/mongoid_patch.rb
298
309
  - lib/devise-security/models/database_authenticatable_patch.rb
299
310
  - lib/devise-security/models/expirable.rb
300
311
  - lib/devise-security/models/mongoid/old_password.rb
@@ -304,32 +315,28 @@ files:
304
315
  - lib/devise-security/models/secure_validatable.rb
305
316
  - lib/devise-security/models/security_questionable.rb
306
317
  - lib/devise-security/models/session_limitable.rb
307
- - lib/devise-security/orm/active_record.rb
308
318
  - lib/devise-security/orm/mongoid.rb
309
319
  - lib/devise-security/patches.rb
310
- - lib/devise-security/patches/confirmations_controller_captcha.rb
311
- - lib/devise-security/patches/confirmations_controller_security_question.rb
312
320
  - lib/devise-security/patches/controller_captcha.rb
313
321
  - lib/devise-security/patches/controller_security_question.rb
314
- - lib/devise-security/patches/passwords_controller_captcha.rb
315
- - lib/devise-security/patches/passwords_controller_security_question.rb
316
- - lib/devise-security/patches/registrations_controller_captcha.rb
317
- - lib/devise-security/patches/sessions_controller_captcha.rb
318
- - lib/devise-security/patches/unlocks_controller_captcha.rb
319
- - lib/devise-security/patches/unlocks_controller_security_question.rb
320
322
  - lib/devise-security/rails.rb
321
323
  - lib/devise-security/routes.rb
322
- - lib/devise-security/schema.rb
323
324
  - lib/devise-security/validators/password_complexity_validator.rb
324
325
  - lib/devise-security/version.rb
325
326
  - lib/generators/devise_security/install_generator.rb
326
- - lib/generators/templates/devise-security.rb
327
+ - lib/generators/templates/devise_security.rb
328
+ - test/controllers/test_captcha_controller.rb
329
+ - test/controllers/test_paranoid_verification_code_controller.rb
330
+ - test/controllers/test_password_expired_controller.rb
331
+ - test/controllers/test_security_question_controller.rb
327
332
  - test/dummy/Rakefile
333
+ - test/dummy/app/assets/config/manifest.js
328
334
  - test/dummy/app/controllers/application_controller.rb
329
335
  - test/dummy/app/controllers/captcha/sessions_controller.rb
330
- - test/dummy/app/controllers/foos_controller.rb
336
+ - test/dummy/app/controllers/overrides/paranoid_verification_code_controller.rb
337
+ - test/dummy/app/controllers/overrides/password_expired_controller.rb
331
338
  - test/dummy/app/controllers/security_question/unlocks_controller.rb
332
- - test/dummy/app/models/.gitkeep
339
+ - test/dummy/app/controllers/widgets_controller.rb
333
340
  - test/dummy/app/models/application_record.rb
334
341
  - test/dummy/app/models/application_user_record.rb
335
342
  - test/dummy/app/models/captcha_user.rb
@@ -351,7 +358,8 @@ files:
351
358
  - test/dummy/app/models/mongoid/timeoutable_fields.rb
352
359
  - test/dummy/app/models/mongoid/trackable_fields.rb
353
360
  - test/dummy/app/models/mongoid/validatable_fields.rb
354
- - test/dummy/app/models/secure_user.rb
361
+ - test/dummy/app/models/paranoid_verification_user.rb
362
+ - test/dummy/app/models/password_expired_user.rb
355
363
  - test/dummy/app/models/security_question_user.rb
356
364
  - test/dummy/app/models/user.rb
357
365
  - test/dummy/app/models/widget.rb
@@ -371,6 +379,7 @@ files:
371
379
  - test/dummy/config/environments/test.rb
372
380
  - test/dummy/config/initializers/devise.rb
373
381
  - test/dummy/config/initializers/migration_class.rb
382
+ - test/dummy/config/locales/en.yml
374
383
  - test/dummy/config/mongoid.yml
375
384
  - test/dummy/config/routes.rb
376
385
  - test/dummy/config/secrets.yml
@@ -387,27 +396,51 @@ files:
387
396
  - test/dummy/lib/shared_security_questions_fields.rb
388
397
  - test/dummy/lib/shared_user.rb
389
398
  - test/dummy/lib/shared_user_with_password_verification.rb
390
- - test/dummy/lib/shared_user_without_email.rb
391
399
  - test/dummy/lib/shared_user_without_omniauth.rb
392
400
  - test/dummy/lib/shared_verification_fields.rb
401
+ - test/dummy/log/test.log
402
+ - test/i18n_test.rb
403
+ - test/integration/test_paranoid_verification_code_workflow.rb
404
+ - test/integration/test_password_expirable_workflow.rb
405
+ - test/integration/test_session_limitable_workflow.rb
393
406
  - test/orm/active_record.rb
394
407
  - test/orm/mongoid.rb
408
+ - test/support/integration_helpers.rb
395
409
  - test/support/mongoid.yml
396
- - test/test_captcha_controller.rb
410
+ - test/test_compatibility.rb
397
411
  - test/test_complexity_validator.rb
412
+ - test/test_database_authenticatable_patch.rb
398
413
  - test/test_helper.rb
399
414
  - test/test_install_generator.rb
400
415
  - test/test_paranoid_verification.rb
401
416
  - test/test_password_archivable.rb
402
417
  - test/test_password_expirable.rb
403
- - test/test_password_expired_controller.rb
404
418
  - test/test_secure_validatable.rb
405
- - test/test_security_question_controller.rb
419
+ - test/test_secure_validatable_overrides.rb
420
+ - test/test_session_limitable.rb
421
+ - test/tmp/config/initializers/devise_security.rb
422
+ - test/tmp/config/locales/devise.security_extension.by.yml
423
+ - test/tmp/config/locales/devise.security_extension.cs.yml
424
+ - test/tmp/config/locales/devise.security_extension.de.yml
425
+ - test/tmp/config/locales/devise.security_extension.en.yml
426
+ - test/tmp/config/locales/devise.security_extension.es.yml
427
+ - test/tmp/config/locales/devise.security_extension.fa.yml
428
+ - test/tmp/config/locales/devise.security_extension.fr.yml
429
+ - test/tmp/config/locales/devise.security_extension.hi.yml
430
+ - test/tmp/config/locales/devise.security_extension.it.yml
431
+ - test/tmp/config/locales/devise.security_extension.ja.yml
432
+ - test/tmp/config/locales/devise.security_extension.nl.yml
433
+ - test/tmp/config/locales/devise.security_extension.pt.yml
434
+ - test/tmp/config/locales/devise.security_extension.ru.yml
435
+ - test/tmp/config/locales/devise.security_extension.tr.yml
436
+ - test/tmp/config/locales/devise.security_extension.uk.yml
437
+ - test/tmp/config/locales/devise.security_extension.zh_CN.yml
438
+ - test/tmp/config/locales/devise.security_extension.zh_TW.yml
406
439
  homepage: https://github.com/devise-security/devise-security
407
440
  licenses:
408
441
  - MIT
409
442
  metadata: {}
410
- post_install_message:
443
+ post_install_message:
411
444
  rdoc_options: []
412
445
  require_paths:
413
446
  - lib
@@ -422,88 +455,119 @@ required_rubygems_version: !ruby/object:Gem::Requirement
422
455
  - !ruby/object:Gem::Version
423
456
  version: '0'
424
457
  requirements: []
425
- rubyforge_project:
426
- rubygems_version: 2.7.9
427
- signing_key:
458
+ rubygems_version: 3.1.6
459
+ signing_key:
428
460
  specification_version: 4
429
461
  summary: Security extension for devise
430
462
  test_files:
431
- - test/dummy/Rakefile
432
- - test/dummy/app/controllers/application_controller.rb
433
- - test/dummy/app/controllers/captcha/sessions_controller.rb
434
- - test/dummy/app/controllers/foos_controller.rb
435
- - test/dummy/app/controllers/security_question/unlocks_controller.rb
436
- - test/dummy/app/models/.gitkeep
437
- - test/dummy/app/models/application_record.rb
438
- - test/dummy/app/models/application_user_record.rb
439
- - test/dummy/app/models/captcha_user.rb
440
- - test/dummy/app/models/mongoid/confirmable_fields.rb
441
- - test/dummy/app/models/mongoid/database_authenticable_fields.rb
442
- - test/dummy/app/models/mongoid/expirable_fields.rb
443
- - test/dummy/app/models/mongoid/lockable_fields.rb
463
+ - test/test_password_archivable.rb
464
+ - test/dummy/app/mongoid/shim.rb
465
+ - test/dummy/app/mongoid/user_on_main_app.rb
466
+ - test/dummy/app/mongoid/user_on_engine.rb
467
+ - test/dummy/app/mongoid/one_user.rb
468
+ - test/dummy/app/mongoid/admin.rb
469
+ - test/dummy/app/mongoid/user_with_validations.rb
470
+ - test/dummy/app/mongoid/user_without_email.rb
471
+ - test/dummy/app/models/mongoid/password_archivable_fields.rb
472
+ - test/dummy/app/models/mongoid/registerable_fields.rb
444
473
  - test/dummy/app/models/mongoid/mappings.rb
445
- - test/dummy/app/models/mongoid/omniauthable_fields.rb
474
+ - test/dummy/app/models/mongoid/session_limitable_fields.rb
475
+ - test/dummy/app/models/mongoid/timeoutable_fields.rb
446
476
  - test/dummy/app/models/mongoid/paranoid_verification_fields.rb
447
- - test/dummy/app/models/mongoid/password_archivable_fields.rb
477
+ - test/dummy/app/models/mongoid/confirmable_fields.rb
448
478
  - test/dummy/app/models/mongoid/password_expirable_fields.rb
449
- - test/dummy/app/models/mongoid/recoverable_fields.rb
450
- - test/dummy/app/models/mongoid/registerable_fields.rb
451
- - test/dummy/app/models/mongoid/rememberable_fields.rb
479
+ - test/dummy/app/models/mongoid/expirable_fields.rb
480
+ - test/dummy/app/models/mongoid/database_authenticable_fields.rb
452
481
  - test/dummy/app/models/mongoid/secure_validatable_fields.rb
482
+ - test/dummy/app/models/mongoid/rememberable_fields.rb
483
+ - test/dummy/app/models/mongoid/lockable_fields.rb
453
484
  - test/dummy/app/models/mongoid/security_questionable_fields.rb
454
- - test/dummy/app/models/mongoid/session_limitable_fields.rb
455
- - test/dummy/app/models/mongoid/timeoutable_fields.rb
456
- - test/dummy/app/models/mongoid/trackable_fields.rb
457
485
  - test/dummy/app/models/mongoid/validatable_fields.rb
458
- - test/dummy/app/models/secure_user.rb
486
+ - test/dummy/app/models/mongoid/trackable_fields.rb
487
+ - test/dummy/app/models/mongoid/recoverable_fields.rb
488
+ - test/dummy/app/models/mongoid/omniauthable_fields.rb
459
489
  - test/dummy/app/models/security_question_user.rb
460
- - test/dummy/app/models/user.rb
490
+ - test/dummy/app/models/application_user_record.rb
461
491
  - test/dummy/app/models/widget.rb
462
- - test/dummy/app/mongoid/admin.rb
463
- - test/dummy/app/mongoid/one_user.rb
464
- - test/dummy/app/mongoid/shim.rb
465
- - test/dummy/app/mongoid/user_on_engine.rb
466
- - test/dummy/app/mongoid/user_on_main_app.rb
467
- - test/dummy/app/mongoid/user_with_validations.rb
468
- - test/dummy/app/mongoid/user_without_email.rb
492
+ - test/dummy/app/models/password_expired_user.rb
493
+ - test/dummy/app/models/paranoid_verification_user.rb
494
+ - test/dummy/app/models/application_record.rb
495
+ - test/dummy/app/models/captcha_user.rb
496
+ - test/dummy/app/models/user.rb
497
+ - test/dummy/app/controllers/overrides/password_expired_controller.rb
498
+ - test/dummy/app/controllers/overrides/paranoid_verification_code_controller.rb
499
+ - test/dummy/app/controllers/application_controller.rb
500
+ - test/dummy/app/controllers/captcha/sessions_controller.rb
501
+ - test/dummy/app/controllers/widgets_controller.rb
502
+ - test/dummy/app/controllers/security_question/unlocks_controller.rb
469
503
  - test/dummy/app/views/foos/index.html.erb
470
- - test/dummy/config.ru
504
+ - test/dummy/app/assets/config/manifest.js
505
+ - test/dummy/config/secrets.yml
506
+ - test/dummy/config/routes.rb
507
+ - test/dummy/config/mongoid.yml
508
+ - test/dummy/config/locales/en.yml
509
+ - test/dummy/config/environments/test.rb
510
+ - test/dummy/config/environment.rb
471
511
  - test/dummy/config/application.rb
472
- - test/dummy/config/boot.rb
473
512
  - test/dummy/config/database.yml
474
- - test/dummy/config/environment.rb
475
- - test/dummy/config/environments/test.rb
476
- - test/dummy/config/initializers/devise.rb
513
+ - test/dummy/config/boot.rb
477
514
  - test/dummy/config/initializers/migration_class.rb
478
- - test/dummy/config/mongoid.yml
479
- - test/dummy/config/routes.rb
480
- - test/dummy/config/secrets.yml
515
+ - test/dummy/config/initializers/devise.rb
516
+ - test/dummy/config.ru
517
+ - test/dummy/Rakefile
518
+ - test/dummy/lib/shared_verification_fields.rb
519
+ - test/dummy/lib/shared_user.rb
520
+ - test/dummy/lib/shared_user_without_omniauth.rb
521
+ - test/dummy/lib/shared_user_with_password_verification.rb
522
+ - test/dummy/lib/shared_expirable_columns.rb
523
+ - test/dummy/lib/shared_security_questions_fields.rb
481
524
  - test/dummy/db/migrate/20120508165529_create_tables.rb
482
525
  - test/dummy/db/migrate/20150402165590_add_verification_columns.rb
483
- - test/dummy/db/migrate/20150407162345_add_verification_attempt_column.rb
526
+ - test/dummy/db/migrate/20180318111336_add_recoverable_columns.rb
527
+ - test/dummy/db/migrate/20180318105732_add_rememberable_columns.rb
484
528
  - test/dummy/db/migrate/20160320162345_add_security_questions_fields.rb
529
+ - test/dummy/db/migrate/20180319114023_add_widget.rb
485
530
  - test/dummy/db/migrate/20180318103603_add_expireable_columns.rb
531
+ - test/dummy/db/migrate/20150407162345_add_verification_attempt_column.rb
486
532
  - test/dummy/db/migrate/20180318105329_add_confirmable_columns.rb
487
- - test/dummy/db/migrate/20180318105732_add_rememberable_columns.rb
488
- - test/dummy/db/migrate/20180318111336_add_recoverable_columns.rb
489
- - test/dummy/db/migrate/20180319114023_add_widget.rb
490
- - test/dummy/lib/shared_expirable_columns.rb
491
- - test/dummy/lib/shared_security_questions_fields.rb
492
- - test/dummy/lib/shared_user.rb
493
- - test/dummy/lib/shared_user_with_password_verification.rb
494
- - test/dummy/lib/shared_user_without_email.rb
495
- - test/dummy/lib/shared_user_without_omniauth.rb
496
- - test/dummy/lib/shared_verification_fields.rb
497
- - test/orm/active_record.rb
498
- - test/orm/mongoid.rb
499
- - test/support/mongoid.yml
500
- - test/test_captcha_controller.rb
501
- - test/test_complexity_validator.rb
502
- - test/test_helper.rb
533
+ - test/dummy/log/test.log
503
534
  - test/test_install_generator.rb
535
+ - test/test_secure_validatable_overrides.rb
536
+ - test/i18n_test.rb
504
537
  - test/test_paranoid_verification.rb
505
- - test/test_password_archivable.rb
506
- - test/test_password_expirable.rb
507
- - test/test_password_expired_controller.rb
538
+ - test/integration/test_session_limitable_workflow.rb
539
+ - test/integration/test_password_expirable_workflow.rb
540
+ - test/integration/test_paranoid_verification_code_workflow.rb
541
+ - test/test_database_authenticatable_patch.rb
508
542
  - test/test_secure_validatable.rb
509
- - test/test_security_question_controller.rb
543
+ - test/test_session_limitable.rb
544
+ - test/support/mongoid.yml
545
+ - test/support/integration_helpers.rb
546
+ - test/test_helper.rb
547
+ - test/orm/mongoid.rb
548
+ - test/orm/active_record.rb
549
+ - test/test_compatibility.rb
550
+ - test/test_password_expirable.rb
551
+ - test/controllers/test_security_question_controller.rb
552
+ - test/controllers/test_paranoid_verification_code_controller.rb
553
+ - test/controllers/test_captcha_controller.rb
554
+ - test/controllers/test_password_expired_controller.rb
555
+ - test/tmp/config/locales/devise.security_extension.by.yml
556
+ - test/tmp/config/locales/devise.security_extension.nl.yml
557
+ - test/tmp/config/locales/devise.security_extension.tr.yml
558
+ - test/tmp/config/locales/devise.security_extension.ru.yml
559
+ - test/tmp/config/locales/devise.security_extension.fr.yml
560
+ - test/tmp/config/locales/devise.security_extension.fa.yml
561
+ - test/tmp/config/locales/devise.security_extension.hi.yml
562
+ - test/tmp/config/locales/devise.security_extension.ja.yml
563
+ - test/tmp/config/locales/devise.security_extension.en.yml
564
+ - test/tmp/config/locales/devise.security_extension.pt.yml
565
+ - test/tmp/config/locales/devise.security_extension.it.yml
566
+ - test/tmp/config/locales/devise.security_extension.de.yml
567
+ - test/tmp/config/locales/devise.security_extension.es.yml
568
+ - test/tmp/config/locales/devise.security_extension.zh_CN.yml
569
+ - test/tmp/config/locales/devise.security_extension.uk.yml
570
+ - test/tmp/config/locales/devise.security_extension.zh_TW.yml
571
+ - test/tmp/config/locales/devise.security_extension.cs.yml
572
+ - test/tmp/config/initializers/devise_security.rb
573
+ - test/test_complexity_validator.rb
data/.codeclimate.yml DELETED
@@ -1,63 +0,0 @@
1
- version: "2"
2
- checks:
3
- argument-count:
4
- enabled: true
5
- config:
6
- threshold: 4
7
- complex-logic:
8
- enabled: true
9
- config:
10
- threshold: 4
11
- file-lines:
12
- enabled: true
13
- config:
14
- threshold: 250
15
- method-complexity:
16
- enabled: true
17
- config:
18
- threshold: 5
19
- method-count:
20
- enabled: true
21
- config:
22
- threshold: 20
23
- method-lines:
24
- enabled: true
25
- config:
26
- threshold: 25
27
- nested-control-flow:
28
- enabled: true
29
- config:
30
- threshold: 4
31
- return-statements:
32
- enabled: true
33
- config:
34
- threshold: 4
35
- similar-code:
36
- enabled: true
37
- config:
38
- threshold: #language-specific defaults. overrides affect all languages.
39
- identical-code:
40
- enabled: true
41
- config:
42
- threshold: #language-specific defaults. overrides affect all languages.
43
- plugins:
44
- rubocop:
45
- enabled: true
46
- channel: rubocop-0-66
47
- markdownlint:
48
- enabled: true
49
- brakeman:
50
- enabled: true
51
- exclude_patterns:
52
- - "config/"
53
- - "db/"
54
- - "dist/"
55
- - "features/"
56
- - "**/node_modules/"
57
- - "script/"
58
- - "**/spec/"
59
- - "**/test/"
60
- - "**/tests/"
61
- - "**/vendor/"
62
- - "**/*.d.ts"
63
- - "gemfiles/"
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.gitignore DELETED
@@ -1,43 +0,0 @@
1
- test/rails_app/log/*
2
- test/rails_app/tmp/*
3
- *~
4
- coverage/*
5
- *.sqlite3
6
- .bundle
7
- rdoc/*
8
- pkg
9
- # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
10
- #
11
- # * Create a file at ~/.gitignore
12
- # * Include files you want ignored
13
- # * Run: git config --global core.excludesfile ~/.gitignore
14
- #
15
- # After doing this, these files will be ignored in all your git projects,
16
- # saving you from having to 'pollute' every project you touch with them
17
- #
18
- # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
19
- #
20
- # For MacOS:
21
- #
22
- #.DS_Store
23
- #
24
- # For TextMate
25
- #*.tmproj
26
- #tmtags
27
- #
28
- # For emacs:
29
- #*~
30
- #\#*
31
- #.\#*
32
- #
33
- # For vim:
34
- #*.swp
35
-
36
- log
37
- test/tmp/*
38
- *.gem
39
- Gemfile.lock
40
- *.lock
41
- bin/*
42
- .yardoc
43
- .idea
data/.mdlrc DELETED
@@ -1 +0,0 @@
1
- rules "~MD013"