devise-security 0.15.0 → 0.16.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +27 -19
  3. data/app/controllers/devise/password_expired_controller.rb +1 -5
  4. data/config/locales/by.yml +1 -0
  5. data/config/locales/cs.yml +1 -0
  6. data/config/locales/de.yml +1 -0
  7. data/config/locales/en.yml +1 -0
  8. data/config/locales/es.yml +1 -0
  9. data/config/locales/fa.yml +1 -0
  10. data/config/locales/fr.yml +1 -0
  11. data/config/locales/hi.yml +21 -20
  12. data/config/locales/it.yml +1 -0
  13. data/config/locales/ja.yml +1 -0
  14. data/config/locales/nl.yml +1 -0
  15. data/config/locales/pt.yml +1 -0
  16. data/config/locales/ru.yml +1 -0
  17. data/config/locales/tr.yml +1 -0
  18. data/config/locales/uk.yml +1 -0
  19. data/config/locales/zh_CN.yml +1 -0
  20. data/config/locales/zh_TW.yml +1 -0
  21. data/lib/devise-security.rb +6 -3
  22. data/lib/devise-security/controllers/helpers.rb +2 -2
  23. data/lib/devise-security/hooks/session_limitable.rb +10 -6
  24. data/lib/devise-security/models/secure_validatable.rb +15 -1
  25. data/lib/devise-security/version.rb +1 -1
  26. data/lib/generators/devise_security/install_generator.rb +3 -3
  27. data/lib/generators/templates/{devise-security.rb → devise_security.rb} +3 -0
  28. data/test/controllers/test_password_expired_controller.rb +67 -98
  29. data/test/controllers/test_security_question_controller.rb +16 -40
  30. data/test/dummy/config/environments/test.rb +3 -13
  31. data/test/dummy/config/initializers/migration_class.rb +1 -8
  32. data/test/dummy/config/mongoid.yml +1 -1
  33. data/test/dummy/log/development.log +883 -0
  34. data/test/dummy/log/test.log +19890 -0
  35. data/test/integration/test_password_expirable_workflow.rb +0 -4
  36. data/test/orm/mongoid.rb +2 -1
  37. data/test/support/integration_helpers.rb +14 -32
  38. data/test/support/mongoid.yml +1 -1
  39. data/test/test_helper.rb +4 -4
  40. data/test/test_install_generator.rb +1 -1
  41. data/test/test_secure_validatable.rb +76 -0
  42. data/test/tmp/config/initializers/devise-security.rb +3 -0
  43. data/test/tmp/config/locales/devise.security_extension.by.yml +49 -0
  44. data/test/tmp/config/locales/devise.security_extension.cs.yml +41 -0
  45. data/test/tmp/config/locales/devise.security_extension.de.yml +1 -0
  46. data/test/tmp/config/locales/devise.security_extension.en.yml +1 -0
  47. data/test/tmp/config/locales/devise.security_extension.es.yml +10 -9
  48. data/test/tmp/config/locales/devise.security_extension.fa.yml +1 -0
  49. data/test/tmp/config/locales/devise.security_extension.fr.yml +1 -0
  50. data/test/tmp/config/locales/devise.security_extension.hi.yml +42 -0
  51. data/test/tmp/config/locales/devise.security_extension.it.yml +1 -0
  52. data/test/tmp/config/locales/devise.security_extension.ja.yml +1 -0
  53. data/test/tmp/config/locales/devise.security_extension.nl.yml +1 -0
  54. data/test/tmp/config/locales/devise.security_extension.pt.yml +1 -0
  55. data/test/tmp/config/locales/devise.security_extension.ru.yml +1 -0
  56. data/test/tmp/config/locales/devise.security_extension.tr.yml +1 -0
  57. data/test/tmp/config/locales/devise.security_extension.uk.yml +1 -0
  58. data/test/tmp/config/locales/devise.security_extension.zh_CN.yml +1 -0
  59. data/test/tmp/config/locales/devise.security_extension.zh_TW.yml +41 -0
  60. metadata +19 -40
  61. data/lib/devise-security/orm/active_record.rb +0 -20
  62. data/lib/devise-security/schema.rb +0 -66
@@ -3,6 +3,7 @@ nl:
3
3
  messages:
4
4
  taken_in_past: is eerder gebruikt.
5
5
  equal_to_current_password: moet verschillen van het huidige wachtwoord.
6
+ equal_to_email: moet anders zijn dan de e-mail
6
7
  password_complexity:
7
8
  digit:
8
9
  one: moet minimaal 1 cijfer bevatten
@@ -3,6 +3,7 @@ pt:
3
3
  messages:
4
4
  taken_in_past: 'foi usada anteriormente.'
5
5
  equal_to_current_password: 'deve ser diferente da senha atual.'
6
+ equal_to_email: 'deve ser diferente do e-mail.'
6
7
  password_complexity:
7
8
  digit:
8
9
  one: deve conter ao menos um dígito
@@ -3,6 +3,7 @@ ru:
3
3
  messages:
4
4
  taken_in_past: 'уже ранее использовался.'
5
5
  equal_to_current_password: 'должен отличаться от текущего пароля.'
6
+ equal_to_email: 'должно отличаться от адреса электронной почты.'
6
7
  password_complexity:
7
8
  digit:
8
9
  one: 'должен содержать хотя бы одну цифру'
@@ -3,6 +3,7 @@ tr:
3
3
  messages:
4
4
  taken_in_past: "daha önce kullanıldı."
5
5
  equal_to_current_password: "mevcut paroladan farklı olmalı."
6
+ equal_to_email: "e-postadan farklı olmalı."
6
7
  password_format: "büyük, küçük harfler ve sayılar içermeli."
7
8
  devise:
8
9
  invalid_captcha: "Captcha hatalı."
@@ -3,6 +3,7 @@ uk:
3
3
  messages:
4
4
  taken_in_past: 'раніше використовувався.'
5
5
  equal_to_current_password: 'має відрізнятися від поточного паролю.'
6
+ equal_to_email: 'має відрізнятися від електронної пошти.'
6
7
  password_complexity:
7
8
  digit:
8
9
  one: 'повинен включати хоча б одну цифру'
@@ -3,6 +3,7 @@ zh_CN:
3
3
  messages:
4
4
  taken_in_past: '曾被使用过。'
5
5
  equal_to_current_password: '必须与当前密码不同。'
6
+ equal_to_email: '必须与电子邮件地址不同。'
6
7
  password_complexity:
7
8
  digit:
8
9
  one: 必须包含至少1个数字
@@ -0,0 +1,41 @@
1
+ zh_TW:
2
+ errors:
3
+ messages:
4
+ taken_in_past: '曾被使用過。'
5
+ equal_to_current_password: '必須與目前密碼不同。'
6
+ equal_to_email: '必須與電子郵件地址不同。'
7
+ password_complexity:
8
+ digit:
9
+ one: 必須包含至少一個數字
10
+ other: 必須包含至少 %{count} 個數字
11
+ lower:
12
+ one: 必須包含至少一個小寫字母
13
+ other: 必須包含至少 %{count} 個小寫字母
14
+ symbol:
15
+ one: 必須包含至少一個特殊符號
16
+ other: 必須包含至少 %{count} 個特殊符號
17
+ upper:
18
+ one: 必須包含至少一個大寫字母
19
+ other: 必須包含至少 %{count} 個大寫字母
20
+ devise:
21
+ invalid_captcha: '輸入的驗證碼無效。'
22
+ invalid_security_question: '安全問題答案無效。'
23
+ paranoid_verify:
24
+ code_required: '請輸入由我們客服團隊提供的代碼'
25
+ paranoid_verification_code:
26
+ show:
27
+ submit_verification_code: 送出驗證碼
28
+ verification_code: 驗證碼
29
+ submit: 送出
30
+ password_expired:
31
+ updated: '你的新密碼已儲存'
32
+ change_required: '你的密碼已經過期,請更新密碼。'
33
+ show:
34
+ renew_your_password: 更新你的密碼
35
+ current_password: 目前密碼
36
+ new_password: 新密碼
37
+ new_password_confirmation: 確認新密碼
38
+ change_my_password: 更改我的密碼
39
+ failure:
40
+ session_limited: '你的登入憑證已在另一個瀏覽器上被使用,請重新登入以在此瀏覽器繼續使用。'
41
+ expired: '你的帳號因過久沒使用而已經過期,請洽網站管理員。'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-security
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Scholl
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2021-01-13 00:00:00.000000000 Z
15
+ date: 2021-05-03 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: devise
@@ -122,16 +122,16 @@ dependencies:
122
122
  name: omniauth
123
123
  requirement: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - ">="
125
+ - - "<"
126
126
  - !ruby/object:Gem::Version
127
- version: '0'
127
+ version: 3.0.0
128
128
  type: :development
129
129
  prerelease: false
130
130
  version_requirements: !ruby/object:Gem::Requirement
131
131
  requirements:
132
- - - ">="
132
+ - - "<"
133
133
  - !ruby/object:Gem::Version
134
- version: '0'
134
+ version: 3.0.0
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: pry-byebug
137
137
  requirement: !ruby/object:Gem::Requirement
@@ -230,34 +230,6 @@ dependencies:
230
230
  - - ">="
231
231
  - !ruby/object:Gem::Version
232
232
  version: '0'
233
- - !ruby/object:Gem::Dependency
234
- name: sqlite3
235
- requirement: !ruby/object:Gem::Requirement
236
- requirements:
237
- - - ">="
238
- - !ruby/object:Gem::Version
239
- version: '0'
240
- type: :development
241
- prerelease: false
242
- version_requirements: !ruby/object:Gem::Requirement
243
- requirements:
244
- - - ">="
245
- - !ruby/object:Gem::Version
246
- version: '0'
247
- - !ruby/object:Gem::Dependency
248
- name: wwtd
249
- requirement: !ruby/object:Gem::Requirement
250
- requirements:
251
- - - ">="
252
- - !ruby/object:Gem::Version
253
- version: '0'
254
- type: :development
255
- prerelease: false
256
- version_requirements: !ruby/object:Gem::Requirement
257
- requirements:
258
- - - ">="
259
- - !ruby/object:Gem::Version
260
- version: '0'
261
233
  description: An enterprise security extension for devise.
262
234
  email: natebird@gmail.com
263
235
  executables: []
@@ -306,7 +278,6 @@ files:
306
278
  - lib/devise-security/models/secure_validatable.rb
307
279
  - lib/devise-security/models/security_questionable.rb
308
280
  - lib/devise-security/models/session_limitable.rb
309
- - lib/devise-security/orm/active_record.rb
310
281
  - lib/devise-security/orm/mongoid.rb
311
282
  - lib/devise-security/patches.rb
312
283
  - lib/devise-security/patches/confirmations_controller_captcha.rb
@@ -321,11 +292,10 @@ files:
321
292
  - lib/devise-security/patches/unlocks_controller_security_question.rb
322
293
  - lib/devise-security/rails.rb
323
294
  - lib/devise-security/routes.rb
324
- - lib/devise-security/schema.rb
325
295
  - lib/devise-security/validators/password_complexity_validator.rb
326
296
  - lib/devise-security/version.rb
327
297
  - lib/generators/devise_security/install_generator.rb
328
- - lib/generators/templates/devise-security.rb
298
+ - lib/generators/templates/devise_security.rb
329
299
  - test/controllers/test_captcha_controller.rb
330
300
  - test/controllers/test_password_expired_controller.rb
331
301
  - test/controllers/test_security_question_controller.rb
@@ -396,6 +366,7 @@ files:
396
366
  - test/dummy/lib/shared_user_without_email.rb
397
367
  - test/dummy/lib/shared_user_without_omniauth.rb
398
368
  - test/dummy/lib/shared_verification_fields.rb
369
+ - test/dummy/log/development.log
399
370
  - test/dummy/log/test.log
400
371
  - test/integration/test_password_expirable_workflow.rb
401
372
  - test/integration/test_session_limitable_workflow.rb
@@ -413,11 +384,14 @@ files:
413
384
  - test/test_secure_validatable.rb
414
385
  - test/test_session_limitable.rb
415
386
  - test/tmp/config/initializers/devise-security.rb
387
+ - test/tmp/config/locales/devise.security_extension.by.yml
388
+ - test/tmp/config/locales/devise.security_extension.cs.yml
416
389
  - test/tmp/config/locales/devise.security_extension.de.yml
417
390
  - test/tmp/config/locales/devise.security_extension.en.yml
418
391
  - test/tmp/config/locales/devise.security_extension.es.yml
419
392
  - test/tmp/config/locales/devise.security_extension.fa.yml
420
393
  - test/tmp/config/locales/devise.security_extension.fr.yml
394
+ - test/tmp/config/locales/devise.security_extension.hi.yml
421
395
  - test/tmp/config/locales/devise.security_extension.it.yml
422
396
  - test/tmp/config/locales/devise.security_extension.ja.yml
423
397
  - test/tmp/config/locales/devise.security_extension.nl.yml
@@ -426,12 +400,12 @@ files:
426
400
  - test/tmp/config/locales/devise.security_extension.tr.yml
427
401
  - test/tmp/config/locales/devise.security_extension.uk.yml
428
402
  - test/tmp/config/locales/devise.security_extension.zh_CN.yml
403
+ - test/tmp/config/locales/devise.security_extension.zh_TW.yml
429
404
  homepage: https://github.com/devise-security/devise-security
430
405
  licenses:
431
406
  - MIT
432
407
  metadata: {}
433
- post_install_message: 'WARNING: devise-security will drop support for Rails 4.2 in
434
- version 0.16.0'
408
+ post_install_message:
435
409
  rdoc_options: []
436
410
  require_paths:
437
411
  - lib
@@ -446,7 +420,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
446
420
  - !ruby/object:Gem::Version
447
421
  version: '0'
448
422
  requirements: []
449
- rubygems_version: 3.0.8
423
+ rubygems_version: 3.0.9
450
424
  signing_key:
451
425
  specification_version: 4
452
426
  summary: Security extension for devise
@@ -520,6 +494,7 @@ test_files:
520
494
  - test/dummy/db/migrate/20150407162345_add_verification_attempt_column.rb
521
495
  - test/dummy/db/migrate/20180318105329_add_confirmable_columns.rb
522
496
  - test/dummy/log/test.log
497
+ - test/dummy/log/development.log
523
498
  - test/test_install_generator.rb
524
499
  - test/test_paranoid_verification.rb
525
500
  - test/integration/test_session_limitable_workflow.rb
@@ -536,11 +511,13 @@ test_files:
536
511
  - test/controllers/test_security_question_controller.rb
537
512
  - test/controllers/test_captcha_controller.rb
538
513
  - test/controllers/test_password_expired_controller.rb
514
+ - test/tmp/config/locales/devise.security_extension.by.yml
539
515
  - test/tmp/config/locales/devise.security_extension.nl.yml
540
516
  - test/tmp/config/locales/devise.security_extension.tr.yml
541
517
  - test/tmp/config/locales/devise.security_extension.ru.yml
542
518
  - test/tmp/config/locales/devise.security_extension.fr.yml
543
519
  - test/tmp/config/locales/devise.security_extension.fa.yml
520
+ - test/tmp/config/locales/devise.security_extension.hi.yml
544
521
  - test/tmp/config/locales/devise.security_extension.ja.yml
545
522
  - test/tmp/config/locales/devise.security_extension.en.yml
546
523
  - test/tmp/config/locales/devise.security_extension.pt.yml
@@ -549,5 +526,7 @@ test_files:
549
526
  - test/tmp/config/locales/devise.security_extension.es.yml
550
527
  - test/tmp/config/locales/devise.security_extension.zh_CN.yml
551
528
  - test/tmp/config/locales/devise.security_extension.uk.yml
529
+ - test/tmp/config/locales/devise.security_extension.zh_TW.yml
530
+ - test/tmp/config/locales/devise.security_extension.cs.yml
552
531
  - test/tmp/config/initializers/devise-security.rb
553
532
  - test/test_complexity_validator.rb
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DeviseSecurity
4
- module Orm
5
- # This module contains some helpers and handle schema (migrations):
6
- #
7
- # create_table :accounts do |t|
8
- # t.password_expirable
9
- # end
10
- #
11
- module ActiveRecord
12
- module Schema
13
- include DeviseSecurity::Schema
14
- end
15
- end
16
- end
17
- end
18
-
19
- ActiveRecord::ConnectionAdapters::Table.send :include, DeviseSecurity::Orm::ActiveRecord::Schema
20
- ActiveRecord::ConnectionAdapters::TableDefinition.send :include, DeviseSecurity::Orm::ActiveRecord::Schema
@@ -1,66 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DeviseSecurity
4
- # add schema helper for migrations
5
- module Schema
6
- # Add password_changed_at columns in the resource's database table.
7
- #
8
- # Examples
9
- #
10
- # # For a new resource migration:
11
- # create_table :the_resources do |t|
12
- # t.password_expirable
13
- # ...
14
- # end
15
- #
16
- # # or if the resource's table already exists, define a migration and put this in:
17
- # change_table :the_resources do |t|
18
- # t.datetime :password_changed_at
19
- # end
20
- #
21
- def password_expirable
22
- apply_devise_schema :password_changed_at, DateTime
23
- end
24
-
25
- # Add password_archivable columns
26
- #
27
- # Examples
28
- #
29
- # create_table :old_passwords do
30
- # t.password_archivable
31
- # end
32
- # add_index :old_passwords, [:password_archivable_type, :password_archivable_id], name: 'index_password_archivable'
33
- #
34
- def password_archivable
35
- apply_devise_schema :encrypted_password, String, limit: 128, null: false
36
- apply_devise_schema :password_salt, String
37
- apply_devise_schema :password_archivable_id, Integer, null: false
38
- apply_devise_schema :password_archivable_type, String, null: false
39
- apply_devise_schema :created_at, DateTime
40
- end
41
-
42
- # Add session_limitable columns in the resource's database table.
43
- #
44
- # Examples
45
- #
46
- # # For a new resource migration:
47
- # create_table :the_resources do |t|
48
- # t.session_limitable
49
- # ...
50
- # end
51
- #
52
- # # or if the resource's table already exists, define a migration and put this in:
53
- # change_table :the_resources do |t|
54
- # t.string :unique_session_id, limit: 20
55
- # end
56
- #
57
- def session_limitable
58
- apply_devise_schema :unique_session_id, String, limit: 20
59
- end
60
-
61
- def expirable
62
- apply_devise_schema :expired_at, DateTime
63
- apply_devise_schema :last_activity_at, DateTime
64
- end
65
- end
66
- end