devise-security 0.14.3 → 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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +123 -59
  3. data/app/controllers/devise/password_expired_controller.rb +11 -6
  4. data/app/views/devise/paranoid_verification_code/show.html.erb +3 -3
  5. data/app/views/devise/password_expired/show.html.erb +5 -5
  6. data/config/locales/by.yml +49 -0
  7. data/config/locales/cs.yml +41 -0
  8. data/config/locales/de.yml +13 -2
  9. data/config/locales/en.yml +13 -1
  10. data/config/locales/es.yml +10 -9
  11. data/config/locales/fa.yml +41 -0
  12. data/config/locales/fr.yml +1 -0
  13. data/config/locales/hi.yml +42 -0
  14. data/config/locales/it.yml +35 -4
  15. data/config/locales/ja.yml +2 -1
  16. data/config/locales/nl.yml +41 -0
  17. data/config/locales/pt.yml +41 -0
  18. data/config/locales/ru.yml +49 -0
  19. data/config/locales/tr.yml +1 -0
  20. data/config/locales/uk.yml +49 -0
  21. data/config/locales/zh_CN.yml +41 -0
  22. data/config/locales/zh_TW.yml +41 -0
  23. data/lib/devise-security.rb +6 -3
  24. data/lib/devise-security/controllers/helpers.rb +59 -50
  25. data/lib/devise-security/hooks/password_expirable.rb +2 -0
  26. data/lib/devise-security/hooks/session_limitable.rb +21 -11
  27. data/lib/devise-security/models/password_expirable.rb +5 -1
  28. data/lib/devise-security/models/secure_validatable.rb +15 -1
  29. data/lib/devise-security/models/session_limitable.rb +8 -1
  30. data/lib/devise-security/validators/password_complexity_validator.rb +4 -2
  31. data/lib/devise-security/version.rb +1 -1
  32. data/lib/generators/devise_security/install_generator.rb +3 -3
  33. data/lib/generators/templates/devise_security.rb +47 -0
  34. data/test/controllers/test_password_expired_controller.rb +83 -19
  35. data/test/controllers/test_security_question_controller.rb +16 -40
  36. data/test/dummy/app/assets/config/manifest.js +3 -0
  37. data/test/dummy/config/environments/test.rb +3 -13
  38. data/test/dummy/config/initializers/migration_class.rb +1 -8
  39. data/test/dummy/config/mongoid.yml +1 -1
  40. data/test/dummy/config/routes.rb +3 -3
  41. data/test/dummy/log/development.log +883 -0
  42. data/test/dummy/log/test.log +21689 -0
  43. data/test/integration/test_password_expirable_workflow.rb +53 -0
  44. data/test/orm/active_record.rb +4 -1
  45. data/test/orm/mongoid.rb +2 -1
  46. data/test/support/integration_helpers.rb +15 -33
  47. data/test/support/mongoid.yml +1 -1
  48. data/test/test_complexity_validator.rb +12 -0
  49. data/test/test_helper.rb +10 -3
  50. data/test/test_install_generator.rb +11 -1
  51. data/test/test_secure_validatable.rb +76 -0
  52. data/test/test_session_limitable.rb +17 -0
  53. data/{lib/generators/templates → test/tmp/config/initializers}/devise-security.rb +3 -0
  54. data/test/tmp/config/locales/devise.security_extension.by.yml +49 -0
  55. data/test/tmp/config/locales/devise.security_extension.cs.yml +41 -0
  56. data/test/tmp/config/locales/devise.security_extension.de.yml +39 -0
  57. data/test/tmp/config/locales/devise.security_extension.en.yml +41 -0
  58. data/test/tmp/config/locales/devise.security_extension.es.yml +30 -0
  59. data/test/tmp/config/locales/devise.security_extension.fa.yml +41 -0
  60. data/test/tmp/config/locales/devise.security_extension.fr.yml +30 -0
  61. data/test/tmp/config/locales/devise.security_extension.hi.yml +42 -0
  62. data/test/tmp/config/locales/devise.security_extension.it.yml +41 -0
  63. data/test/tmp/config/locales/devise.security_extension.ja.yml +30 -0
  64. data/test/tmp/config/locales/devise.security_extension.nl.yml +41 -0
  65. data/test/tmp/config/locales/devise.security_extension.pt.yml +41 -0
  66. data/test/tmp/config/locales/devise.security_extension.ru.yml +49 -0
  67. data/test/tmp/config/locales/devise.security_extension.tr.yml +18 -0
  68. data/test/tmp/config/locales/devise.security_extension.uk.yml +49 -0
  69. data/test/tmp/config/locales/devise.security_extension.zh_CN.yml +41 -0
  70. data/test/tmp/config/locales/devise.security_extension.zh_TW.yml +41 -0
  71. metadata +145 -132
  72. data/.codeclimate.yml +0 -63
  73. data/.document +0 -5
  74. data/.gitignore +0 -43
  75. data/.mdlrc +0 -1
  76. data/.rubocop.yml +0 -64
  77. data/.ruby-version +0 -1
  78. data/.travis.yml +0 -39
  79. data/Appraisals +0 -35
  80. data/Gemfile +0 -10
  81. data/Rakefile +0 -27
  82. data/devise-security.gemspec +0 -50
  83. data/gemfiles/rails_4.2_stable.gemfile +0 -16
  84. data/gemfiles/rails_5.0_stable.gemfile +0 -15
  85. data/gemfiles/rails_5.1_stable.gemfile +0 -15
  86. data/gemfiles/rails_5.2_stable.gemfile +0 -15
  87. data/gemfiles/rails_6.0_beta.gemfile +0 -15
  88. data/lib/devise-security/orm/active_record.rb +0 -20
  89. data/lib/devise-security/schema.rb +0 -66
  90. data/test/dummy/app/models/.gitkeep +0 -0
@@ -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
File without changes