devise-security 0.14.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 (101) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +124 -60
  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 +7 -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 +29 -14
  27. data/lib/devise-security/models/compatibility.rb +2 -2
  28. data/lib/devise-security/models/compatibility/{active_record.rb → active_record_patch.rb} +12 -1
  29. data/lib/devise-security/models/compatibility/{mongoid.rb → mongoid_patch.rb} +11 -1
  30. data/lib/devise-security/models/password_expirable.rb +5 -1
  31. data/lib/devise-security/models/secure_validatable.rb +15 -1
  32. data/lib/devise-security/models/session_limitable.rb +17 -2
  33. data/lib/devise-security/validators/password_complexity_validator.rb +4 -2
  34. data/lib/devise-security/version.rb +1 -1
  35. data/lib/generators/devise_security/install_generator.rb +3 -3
  36. data/lib/generators/templates/devise_security.rb +47 -0
  37. data/test/{test_captcha_controller.rb → controllers/test_captcha_controller.rb} +0 -0
  38. data/test/controllers/test_password_expired_controller.rb +110 -0
  39. data/test/{test_security_question_controller.rb → controllers/test_security_question_controller.rb} +16 -40
  40. data/test/dummy/app/assets/config/manifest.js +3 -0
  41. data/test/dummy/app/controllers/widgets_controller.rb +6 -0
  42. data/test/dummy/app/models/user.rb +8 -0
  43. data/test/dummy/config/application.rb +1 -0
  44. data/test/dummy/config/environments/test.rb +3 -13
  45. data/test/dummy/config/initializers/migration_class.rb +1 -8
  46. data/test/dummy/config/mongoid.yml +1 -1
  47. data/test/dummy/config/routes.rb +4 -3
  48. data/test/dummy/db/migrate/20120508165529_create_tables.rb +10 -1
  49. data/test/dummy/log/development.log +883 -0
  50. data/test/dummy/log/test.log +21689 -0
  51. data/test/integration/test_password_expirable_workflow.rb +53 -0
  52. data/test/integration/test_session_limitable_workflow.rb +67 -0
  53. data/test/orm/active_record.rb +4 -1
  54. data/test/orm/mongoid.rb +2 -1
  55. data/test/support/integration_helpers.rb +29 -0
  56. data/test/support/mongoid.yml +1 -1
  57. data/test/test_compatibility.rb +13 -0
  58. data/test/test_complexity_validator.rb +12 -0
  59. data/test/test_helper.rb +21 -6
  60. data/test/test_install_generator.rb +11 -1
  61. data/test/test_secure_validatable.rb +76 -0
  62. data/test/test_session_limitable.rb +57 -0
  63. data/{lib/generators/templates → test/tmp/config/initializers}/devise-security.rb +3 -0
  64. data/test/tmp/config/locales/devise.security_extension.by.yml +49 -0
  65. data/test/tmp/config/locales/devise.security_extension.cs.yml +41 -0
  66. data/test/tmp/config/locales/devise.security_extension.de.yml +39 -0
  67. data/test/tmp/config/locales/devise.security_extension.en.yml +41 -0
  68. data/test/tmp/config/locales/devise.security_extension.es.yml +30 -0
  69. data/test/tmp/config/locales/devise.security_extension.fa.yml +41 -0
  70. data/test/tmp/config/locales/devise.security_extension.fr.yml +30 -0
  71. data/test/tmp/config/locales/devise.security_extension.hi.yml +42 -0
  72. data/test/tmp/config/locales/devise.security_extension.it.yml +41 -0
  73. data/test/tmp/config/locales/devise.security_extension.ja.yml +30 -0
  74. data/test/tmp/config/locales/devise.security_extension.nl.yml +41 -0
  75. data/test/tmp/config/locales/devise.security_extension.pt.yml +41 -0
  76. data/test/tmp/config/locales/devise.security_extension.ru.yml +49 -0
  77. data/test/tmp/config/locales/devise.security_extension.tr.yml +18 -0
  78. data/test/tmp/config/locales/devise.security_extension.uk.yml +49 -0
  79. data/test/tmp/config/locales/devise.security_extension.zh_CN.yml +41 -0
  80. data/test/tmp/config/locales/devise.security_extension.zh_TW.yml +41 -0
  81. metadata +156 -133
  82. data/.codeclimate.yml +0 -63
  83. data/.document +0 -5
  84. data/.gitignore +0 -43
  85. data/.mdlrc +0 -1
  86. data/.rubocop.yml +0 -64
  87. data/.ruby-version +0 -1
  88. data/.travis.yml +0 -41
  89. data/Appraisals +0 -35
  90. data/Gemfile +0 -10
  91. data/Rakefile +0 -27
  92. data/devise-security.gemspec +0 -50
  93. data/gemfiles/rails_4.2_stable.gemfile +0 -16
  94. data/gemfiles/rails_5.0_stable.gemfile +0 -15
  95. data/gemfiles/rails_5.1_stable.gemfile +0 -15
  96. data/gemfiles/rails_5.2_stable.gemfile +0 -15
  97. data/gemfiles/rails_6.0_beta.gemfile +0 -15
  98. data/lib/devise-security/orm/active_record.rb +0 -20
  99. data/lib/devise-security/schema.rb +0 -66
  100. data/test/dummy/app/models/.gitkeep +0 -0
  101. data/test/test_password_expired_controller.rb +0 -46
@@ -0,0 +1,41 @@
1
+ pt:
2
+ errors:
3
+ messages:
4
+ taken_in_past: 'foi usada anteriormente.'
5
+ equal_to_current_password: 'deve ser diferente da senha atual.'
6
+ equal_to_email: 'deve ser diferente do e-mail.'
7
+ password_complexity:
8
+ digit:
9
+ one: deve conter ao menos um dígito
10
+ other: deve conter ao menos %{count} dígitos
11
+ lower:
12
+ one: deve conter ao menos uma letra minúscula
13
+ other: deve conter ao menos %{count} letras minúsculas
14
+ symbol:
15
+ one: deve conter ao menos um símbolo
16
+ other: deve conter ao menos %{count} símbolos
17
+ upper:
18
+ one: deve conter ao menos uma letra maiúscula
19
+ other: deve conter ao menos %{count} letras maiúsculas
20
+ devise:
21
+ invalid_captcha: 'O captcha está errado.'
22
+ invalid_security_question: 'A resposta da pergunta de segurança está errada.'
23
+ paranoid_verify:
24
+ code_required: 'Por favor entre o código que a equipe de suporte enviou'
25
+ paranoid_verification_code:
26
+ show:
27
+ submit_verification_code: Enviar código de verificação
28
+ verification_code: Código de verificação
29
+ submit: Enviar
30
+ password_expired:
31
+ updated: 'A nova senha foi salva.'
32
+ change_required: 'Sua senha expirou. Renove sua senha por favor.'
33
+ show:
34
+ renew_your_password: Renove sua senha
35
+ current_password: Senha atual
36
+ new_password: Senha nova
37
+ new_password_confirmation: Confirmar senha nova
38
+ change_my_password: Mudar minha senha
39
+ failure:
40
+ session_limited: 'Seu login foi utilizado em outro local. Faça o login novamente para continuar.'
41
+ expired: 'Sua conta expirou por inatividade. Por favor contate o administrador do site.'
@@ -0,0 +1,49 @@
1
+ ru:
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
+ few: 'должен содержать хотя бы %{count} цифры'
11
+ many: 'должен содержать хотя бы %{count} цифр'
12
+ other: 'должен содержать хотя бы %{count} цифры'
13
+ lower:
14
+ one: 'должен содержать хотя бы одну строчную букву'
15
+ few: 'должен содержать хотя бы %{count} строчные буквы'
16
+ many: 'должен содержать хотя бы %{count} строчных букв'
17
+ other: 'должен содержать хотя бы %{count} строчных букв'
18
+ symbol:
19
+ one: 'должен содержать хотя бы один знак пунктуации или символ'
20
+ few: 'должен содержать хотя бы %{count} знака пунктуации или символа'
21
+ many: 'должен содержать хотя бы %{count} знаков пунктуации или символов'
22
+ other: 'должен содержать хотя бы %{count} знаков пунктуации или символов'
23
+ upper:
24
+ one: 'должен содержать хотя бы одну прописную букву'
25
+ few: 'должен содержать хотя бы %{count} прописные буквы'
26
+ many: 'должен содержать хотя бы %{count} прописных букв'
27
+ other: 'должен содержать хотя бы %{count} прописных букв'
28
+ devise:
29
+ invalid_captcha: 'Введен неправильный код капчи.'
30
+ invalid_security_question: 'Ответ на секретный вопрос был неверным.'
31
+ paranoid_verify:
32
+ code_required: 'Пожалуйста введите код, полученный от нашей команды поддержки'
33
+ paranoid_verification_code:
34
+ show:
35
+ submit_verification_code: Ввод кода подтверждения
36
+ verification_code: Код подверждения
37
+ submit: Отправить
38
+ password_expired:
39
+ updated: 'Ваш новый пароль сохранен.'
40
+ change_required: 'Ваш пароль устарел. Пожалуйста, установите новый.'
41
+ show:
42
+ renew_your_password: Смена пароля
43
+ current_password: Текущий пароль
44
+ new_password: Новый пароль
45
+ new_password_confirmation: Подтвердите новый пароль
46
+ change_my_password: Поменять пароль
47
+ failure:
48
+ session_limited: 'Ваши параметры входа используются в другом браузере. Пожалуйста, авторизуйтесь снова, чтобы продолжить в этом браузере.'
49
+ expired: 'Ваш аккаунт устарел из-за неактивности. Пожалуйста, свяжитесь с администратором.'
@@ -0,0 +1,18 @@
1
+ tr:
2
+ errors:
3
+ messages:
4
+ taken_in_past: "daha önce kullanıldı."
5
+ equal_to_current_password: "mevcut paroladan farklı olmalı."
6
+ equal_to_email: "e-postadan farklı olmalı."
7
+ password_format: "büyük, küçük harfler ve sayılar içermeli."
8
+ devise:
9
+ invalid_captcha: "Captcha hatalı."
10
+ invalid_security_question: "Güvenlik sorusunun cevabı yanlış."
11
+ paranoid_verify:
12
+ code_required: "Destek ekibimizden aldığınız kodu girin."
13
+ password_expired:
14
+ updated: "Yeni parolanız kaydedildi."
15
+ change_required: "Parolanızın geçerlilik süresi dolmuş. Lütfen parolanızı yenileyin."
16
+ failure:
17
+ session_limited: 'Hesabınıza başka bir tarayıcıdan giriş yapılmış. Lütfen devam etmek için yeniden giriş yapın.'
18
+ expired: 'Hesabınız aktif olarak kullanılmadığı için artık geçerli değil. Lütfen yönetici ile irtibata geçin.'
@@ -0,0 +1,49 @@
1
+ uk:
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
+ few: 'повинен включати хоча б %{count} цифри'
11
+ many: 'повинен включати хоча б %{count} цифр'
12
+ other: 'повинен включати хоча б %{count} цифри'
13
+ lower:
14
+ one: 'повинен включати хоча б одну малу букву'
15
+ few: 'повинен включати хоча б %{count} малі букви'
16
+ many: 'повинен включати хоча б %{count} малих букв'
17
+ other: 'повинен включати хоча б %{count} малі букви'
18
+ symbol:
19
+ one: 'повинен включати хоча б один розділовий знак або символ'
20
+ few: 'повинен включати хоча б %{count} розділові знаки або символи'
21
+ many: 'повинен включати хоча б %{count} розділових знаків або символів'
22
+ other: 'повинен включати хоча б %{count} розділові знаки або символи'
23
+ upper:
24
+ one: 'повинен включати хоча б одну прописну букву'
25
+ few: 'повинен включати хоча б %{count} прописні букви'
26
+ many: 'повинен включати хоча б %{count} прописних букв'
27
+ other: 'повинен включати хоча б %{count} прописні букви'
28
+ devise:
29
+ invalid_captcha: 'Введення капчі недійсне.'
30
+ invalid_security_question: 'Неправильна відповідь на секретне питання.'
31
+ paranoid_verify:
32
+ code_required: 'Введіть, будь ласка, код від нашої команди підтримки'
33
+ paranoid_verification_code:
34
+ show:
35
+ submit_verification_code: Відправити код підтвердження
36
+ verification_code: Код підтвердження
37
+ submit: Відправити
38
+ password_expired:
39
+ updated: 'Ваш новий пароль збережено.'
40
+ change_required: 'Ваш пароль застарілий. Будь ласка, оновіть пароль.'
41
+ show:
42
+ renew_your_password: Оновити свій пароль
43
+ current_password: Теперішній пароль
44
+ new_password: Новий пароль
45
+ new_password_confirmation: Підтвердити новий пароль
46
+ change_my_password: Змінити пароль
47
+ failure:
48
+ session_limited: 'Ваші облікові дані були використані в іншому браузері. Будь ласка, авторизуйтесь знову щоб продовжити в цьому браузері.'
49
+ expired: "Ваш аккаунт застарів через неактивність. Будь ласка, зв'яжіться з адміністратором."
@@ -0,0 +1,41 @@
1
+ zh_CN:
2
+ errors:
3
+ messages:
4
+ taken_in_past: '曾被使用过。'
5
+ equal_to_current_password: '必须与当前密码不同。'
6
+ equal_to_email: '必须与电子邮件地址不同。'
7
+ password_complexity:
8
+ digit:
9
+ one: 必须包含至少1个数字
10
+ other: 必须包含至少%{count}个数字
11
+ lower:
12
+ one: 必须包含至少1个小写字母
13
+ other: 必须包含至少%{count}个小写字母
14
+ symbol:
15
+ one: 必须包含至少1个特殊符号(!"#$%&'()*+,-./:;<=>?@[\]^_‘{|}~)
16
+ other: 必须包含至少%{count}个特殊符号(!"#$%&'()*+,-./:;<=>?@[\]^_‘{|}~)
17
+ upper:
18
+ one: 必须包含至少1个大写字母
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: '由于不活跃,你的账户已过期。请联系站点管理员。'
@@ -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.14.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Scholl
@@ -9,31 +9,11 @@ authors:
9
9
  - Nate Bird
10
10
  - Dillon Welch
11
11
  - Kevin Olbrich
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2019-04-15 00:00:00.000000000 Z
15
+ date: 2021-05-03 00:00:00.000000000 Z
16
16
  dependencies:
17
- - !ruby/object:Gem::Dependency
18
- name: railties
19
- requirement: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 4.2.0
24
- - - "<"
25
- - !ruby/object:Gem::Version
26
- version: '6.0'
27
- type: :runtime
28
- prerelease: false
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 4.2.0
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: '6.0'
37
17
  - !ruby/object:Gem::Dependency
38
18
  name: devise
39
19
  requirement: !ruby/object:Gem::Requirement
@@ -82,20 +62,6 @@ dependencies:
82
62
  - - ">="
83
63
  - !ruby/object:Gem::Version
84
64
  version: '0'
85
- - !ruby/object:Gem::Dependency
86
- name: coveralls
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: '0'
92
- type: :development
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- version: '0'
99
65
  - !ruby/object:Gem::Dependency
100
66
  name: database_cleaner
101
67
  requirement: !ruby/object:Gem::Requirement
@@ -156,16 +122,16 @@ dependencies:
156
122
  name: omniauth
157
123
  requirement: !ruby/object:Gem::Requirement
158
124
  requirements:
159
- - - ">="
125
+ - - "<"
160
126
  - !ruby/object:Gem::Version
161
- version: '0'
127
+ version: 3.0.0
162
128
  type: :development
163
129
  prerelease: false
164
130
  version_requirements: !ruby/object:Gem::Requirement
165
131
  requirements:
166
- - - ">="
132
+ - - "<"
167
133
  - !ruby/object:Gem::Version
168
- version: '0'
134
+ version: 3.0.0
169
135
  - !ruby/object:Gem::Dependency
170
136
  name: pry-byebug
171
137
  requirement: !ruby/object:Gem::Requirement
@@ -214,16 +180,16 @@ dependencies:
214
180
  requirements:
215
181
  - - "~>"
216
182
  - !ruby/object:Gem::Version
217
- version: 0.59.2
183
+ version: 0.80.0
218
184
  type: :development
219
185
  prerelease: false
220
186
  version_requirements: !ruby/object:Gem::Requirement
221
187
  requirements:
222
188
  - - "~>"
223
189
  - !ruby/object:Gem::Version
224
- version: 0.59.2
190
+ version: 0.80.0
225
191
  - !ruby/object:Gem::Dependency
226
- name: sqlite3
192
+ name: rubocop-rails
227
193
  requirement: !ruby/object:Gem::Requirement
228
194
  requirements:
229
195
  - - ">="
@@ -237,7 +203,21 @@ dependencies:
237
203
  - !ruby/object:Gem::Version
238
204
  version: '0'
239
205
  - !ruby/object:Gem::Dependency
240
- name: wwtd
206
+ name: simplecov-lcov
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: '0'
219
+ - !ruby/object:Gem::Dependency
220
+ name: solargraph
241
221
  requirement: !ruby/object:Gem::Requirement
242
222
  requirements:
243
223
  - - ">="
@@ -256,35 +236,29 @@ executables: []
256
236
  extensions: []
257
237
  extra_rdoc_files: []
258
238
  files:
259
- - ".codeclimate.yml"
260
- - ".document"
261
- - ".gitignore"
262
- - ".mdlrc"
263
- - ".rubocop.yml"
264
- - ".ruby-version"
265
- - ".travis.yml"
266
- - Appraisals
267
- - Gemfile
268
239
  - LICENSE.txt
269
240
  - README.md
270
- - Rakefile
271
241
  - app/controllers/devise/paranoid_verification_code_controller.rb
272
242
  - app/controllers/devise/password_expired_controller.rb
273
243
  - app/views/devise/paranoid_verification_code/show.html.erb
274
244
  - app/views/devise/password_expired/show.html.erb
245
+ - config/locales/by.yml
246
+ - config/locales/cs.yml
275
247
  - config/locales/de.yml
276
248
  - config/locales/en.yml
277
249
  - config/locales/es.yml
250
+ - config/locales/fa.yml
278
251
  - config/locales/fr.yml
252
+ - config/locales/hi.yml
279
253
  - config/locales/it.yml
280
254
  - config/locales/ja.yml
255
+ - config/locales/nl.yml
256
+ - config/locales/pt.yml
257
+ - config/locales/ru.yml
281
258
  - 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
259
+ - config/locales/uk.yml
260
+ - config/locales/zh_CN.yml
261
+ - config/locales/zh_TW.yml
288
262
  - lib/devise-security.rb
289
263
  - lib/devise-security/controllers/helpers.rb
290
264
  - lib/devise-security/hooks/expirable.rb
@@ -293,8 +267,8 @@ files:
293
267
  - lib/devise-security/hooks/session_limitable.rb
294
268
  - lib/devise-security/models/active_record/old_password.rb
295
269
  - lib/devise-security/models/compatibility.rb
296
- - lib/devise-security/models/compatibility/active_record.rb
297
- - lib/devise-security/models/compatibility/mongoid.rb
270
+ - lib/devise-security/models/compatibility/active_record_patch.rb
271
+ - lib/devise-security/models/compatibility/mongoid_patch.rb
298
272
  - lib/devise-security/models/database_authenticatable_patch.rb
299
273
  - lib/devise-security/models/expirable.rb
300
274
  - lib/devise-security/models/mongoid/old_password.rb
@@ -304,7 +278,6 @@ files:
304
278
  - lib/devise-security/models/secure_validatable.rb
305
279
  - lib/devise-security/models/security_questionable.rb
306
280
  - lib/devise-security/models/session_limitable.rb
307
- - lib/devise-security/orm/active_record.rb
308
281
  - lib/devise-security/orm/mongoid.rb
309
282
  - lib/devise-security/patches.rb
310
283
  - lib/devise-security/patches/confirmations_controller_captcha.rb
@@ -319,17 +292,20 @@ files:
319
292
  - lib/devise-security/patches/unlocks_controller_security_question.rb
320
293
  - lib/devise-security/rails.rb
321
294
  - lib/devise-security/routes.rb
322
- - lib/devise-security/schema.rb
323
295
  - lib/devise-security/validators/password_complexity_validator.rb
324
296
  - lib/devise-security/version.rb
325
297
  - lib/generators/devise_security/install_generator.rb
326
- - lib/generators/templates/devise-security.rb
298
+ - lib/generators/templates/devise_security.rb
299
+ - test/controllers/test_captcha_controller.rb
300
+ - test/controllers/test_password_expired_controller.rb
301
+ - test/controllers/test_security_question_controller.rb
327
302
  - test/dummy/Rakefile
303
+ - test/dummy/app/assets/config/manifest.js
328
304
  - test/dummy/app/controllers/application_controller.rb
329
305
  - test/dummy/app/controllers/captcha/sessions_controller.rb
330
306
  - test/dummy/app/controllers/foos_controller.rb
331
307
  - test/dummy/app/controllers/security_question/unlocks_controller.rb
332
- - test/dummy/app/models/.gitkeep
308
+ - test/dummy/app/controllers/widgets_controller.rb
333
309
  - test/dummy/app/models/application_record.rb
334
310
  - test/dummy/app/models/application_user_record.rb
335
311
  - test/dummy/app/models/captcha_user.rb
@@ -390,24 +366,46 @@ files:
390
366
  - test/dummy/lib/shared_user_without_email.rb
391
367
  - test/dummy/lib/shared_user_without_omniauth.rb
392
368
  - test/dummy/lib/shared_verification_fields.rb
369
+ - test/dummy/log/development.log
370
+ - test/dummy/log/test.log
371
+ - test/integration/test_password_expirable_workflow.rb
372
+ - test/integration/test_session_limitable_workflow.rb
393
373
  - test/orm/active_record.rb
394
374
  - test/orm/mongoid.rb
375
+ - test/support/integration_helpers.rb
395
376
  - test/support/mongoid.yml
396
- - test/test_captcha_controller.rb
377
+ - test/test_compatibility.rb
397
378
  - test/test_complexity_validator.rb
398
379
  - test/test_helper.rb
399
380
  - test/test_install_generator.rb
400
381
  - test/test_paranoid_verification.rb
401
382
  - test/test_password_archivable.rb
402
383
  - test/test_password_expirable.rb
403
- - test/test_password_expired_controller.rb
404
384
  - test/test_secure_validatable.rb
405
- - test/test_security_question_controller.rb
385
+ - test/test_session_limitable.rb
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
389
+ - test/tmp/config/locales/devise.security_extension.de.yml
390
+ - test/tmp/config/locales/devise.security_extension.en.yml
391
+ - test/tmp/config/locales/devise.security_extension.es.yml
392
+ - test/tmp/config/locales/devise.security_extension.fa.yml
393
+ - test/tmp/config/locales/devise.security_extension.fr.yml
394
+ - test/tmp/config/locales/devise.security_extension.hi.yml
395
+ - test/tmp/config/locales/devise.security_extension.it.yml
396
+ - test/tmp/config/locales/devise.security_extension.ja.yml
397
+ - test/tmp/config/locales/devise.security_extension.nl.yml
398
+ - test/tmp/config/locales/devise.security_extension.pt.yml
399
+ - test/tmp/config/locales/devise.security_extension.ru.yml
400
+ - test/tmp/config/locales/devise.security_extension.tr.yml
401
+ - test/tmp/config/locales/devise.security_extension.uk.yml
402
+ - test/tmp/config/locales/devise.security_extension.zh_CN.yml
403
+ - test/tmp/config/locales/devise.security_extension.zh_TW.yml
406
404
  homepage: https://github.com/devise-security/devise-security
407
405
  licenses:
408
406
  - MIT
409
407
  metadata: {}
410
- post_install_message:
408
+ post_install_message:
411
409
  rdoc_options: []
412
410
  require_paths:
413
411
  - lib
@@ -422,88 +420,113 @@ required_rubygems_version: !ruby/object:Gem::Requirement
422
420
  - !ruby/object:Gem::Version
423
421
  version: '0'
424
422
  requirements: []
425
- rubyforge_project:
426
- rubygems_version: 2.7.8
427
- signing_key:
423
+ rubygems_version: 3.0.9
424
+ signing_key:
428
425
  specification_version: 4
429
426
  summary: Security extension for devise
430
427
  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
428
+ - test/test_password_archivable.rb
429
+ - test/dummy/app/mongoid/shim.rb
430
+ - test/dummy/app/mongoid/user_on_main_app.rb
431
+ - test/dummy/app/mongoid/user_on_engine.rb
432
+ - test/dummy/app/mongoid/one_user.rb
433
+ - test/dummy/app/mongoid/admin.rb
434
+ - test/dummy/app/mongoid/user_with_validations.rb
435
+ - test/dummy/app/mongoid/user_without_email.rb
436
+ - test/dummy/app/models/mongoid/password_archivable_fields.rb
437
+ - test/dummy/app/models/mongoid/registerable_fields.rb
444
438
  - test/dummy/app/models/mongoid/mappings.rb
445
- - test/dummy/app/models/mongoid/omniauthable_fields.rb
439
+ - test/dummy/app/models/mongoid/session_limitable_fields.rb
440
+ - test/dummy/app/models/mongoid/timeoutable_fields.rb
446
441
  - test/dummy/app/models/mongoid/paranoid_verification_fields.rb
447
- - test/dummy/app/models/mongoid/password_archivable_fields.rb
442
+ - test/dummy/app/models/mongoid/confirmable_fields.rb
448
443
  - 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
444
+ - test/dummy/app/models/mongoid/expirable_fields.rb
445
+ - test/dummy/app/models/mongoid/database_authenticable_fields.rb
452
446
  - test/dummy/app/models/mongoid/secure_validatable_fields.rb
447
+ - test/dummy/app/models/mongoid/rememberable_fields.rb
448
+ - test/dummy/app/models/mongoid/lockable_fields.rb
453
449
  - 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
450
  - test/dummy/app/models/mongoid/validatable_fields.rb
458
- - test/dummy/app/models/secure_user.rb
451
+ - test/dummy/app/models/mongoid/trackable_fields.rb
452
+ - test/dummy/app/models/mongoid/recoverable_fields.rb
453
+ - test/dummy/app/models/mongoid/omniauthable_fields.rb
459
454
  - test/dummy/app/models/security_question_user.rb
460
- - test/dummy/app/models/user.rb
455
+ - test/dummy/app/models/application_user_record.rb
456
+ - test/dummy/app/models/secure_user.rb
461
457
  - 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
458
+ - test/dummy/app/models/application_record.rb
459
+ - test/dummy/app/models/captcha_user.rb
460
+ - test/dummy/app/models/user.rb
461
+ - test/dummy/app/controllers/application_controller.rb
462
+ - test/dummy/app/controllers/captcha/sessions_controller.rb
463
+ - test/dummy/app/controllers/foos_controller.rb
464
+ - test/dummy/app/controllers/widgets_controller.rb
465
+ - test/dummy/app/controllers/security_question/unlocks_controller.rb
469
466
  - test/dummy/app/views/foos/index.html.erb
470
- - test/dummy/config.ru
467
+ - test/dummy/app/assets/config/manifest.js
468
+ - test/dummy/config/secrets.yml
469
+ - test/dummy/config/routes.rb
470
+ - test/dummy/config/mongoid.yml
471
+ - test/dummy/config/environments/test.rb
472
+ - test/dummy/config/environment.rb
471
473
  - test/dummy/config/application.rb
472
- - test/dummy/config/boot.rb
473
474
  - 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
475
+ - test/dummy/config/boot.rb
477
476
  - 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
477
+ - test/dummy/config/initializers/devise.rb
478
+ - test/dummy/config.ru
479
+ - test/dummy/Rakefile
480
+ - test/dummy/lib/shared_verification_fields.rb
481
+ - test/dummy/lib/shared_user.rb
482
+ - test/dummy/lib/shared_user_without_email.rb
483
+ - test/dummy/lib/shared_user_without_omniauth.rb
484
+ - test/dummy/lib/shared_user_with_password_verification.rb
485
+ - test/dummy/lib/shared_expirable_columns.rb
486
+ - test/dummy/lib/shared_security_questions_fields.rb
481
487
  - test/dummy/db/migrate/20120508165529_create_tables.rb
482
488
  - test/dummy/db/migrate/20150402165590_add_verification_columns.rb
483
- - test/dummy/db/migrate/20150407162345_add_verification_attempt_column.rb
489
+ - test/dummy/db/migrate/20180318111336_add_recoverable_columns.rb
490
+ - test/dummy/db/migrate/20180318105732_add_rememberable_columns.rb
484
491
  - test/dummy/db/migrate/20160320162345_add_security_questions_fields.rb
492
+ - test/dummy/db/migrate/20180319114023_add_widget.rb
485
493
  - test/dummy/db/migrate/20180318103603_add_expireable_columns.rb
494
+ - test/dummy/db/migrate/20150407162345_add_verification_attempt_column.rb
486
495
  - 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
496
+ - test/dummy/log/test.log
497
+ - test/dummy/log/development.log
503
498
  - test/test_install_generator.rb
504
499
  - test/test_paranoid_verification.rb
505
- - test/test_password_archivable.rb
506
- - test/test_password_expirable.rb
507
- - test/test_password_expired_controller.rb
500
+ - test/integration/test_session_limitable_workflow.rb
501
+ - test/integration/test_password_expirable_workflow.rb
508
502
  - test/test_secure_validatable.rb
509
- - test/test_security_question_controller.rb
503
+ - test/test_session_limitable.rb
504
+ - test/support/mongoid.yml
505
+ - test/support/integration_helpers.rb
506
+ - test/test_helper.rb
507
+ - test/orm/mongoid.rb
508
+ - test/orm/active_record.rb
509
+ - test/test_compatibility.rb
510
+ - test/test_password_expirable.rb
511
+ - test/controllers/test_security_question_controller.rb
512
+ - test/controllers/test_captcha_controller.rb
513
+ - test/controllers/test_password_expired_controller.rb
514
+ - test/tmp/config/locales/devise.security_extension.by.yml
515
+ - test/tmp/config/locales/devise.security_extension.nl.yml
516
+ - test/tmp/config/locales/devise.security_extension.tr.yml
517
+ - test/tmp/config/locales/devise.security_extension.ru.yml
518
+ - test/tmp/config/locales/devise.security_extension.fr.yml
519
+ - test/tmp/config/locales/devise.security_extension.fa.yml
520
+ - test/tmp/config/locales/devise.security_extension.hi.yml
521
+ - test/tmp/config/locales/devise.security_extension.ja.yml
522
+ - test/tmp/config/locales/devise.security_extension.en.yml
523
+ - test/tmp/config/locales/devise.security_extension.pt.yml
524
+ - test/tmp/config/locales/devise.security_extension.it.yml
525
+ - test/tmp/config/locales/devise.security_extension.de.yml
526
+ - test/tmp/config/locales/devise.security_extension.es.yml
527
+ - test/tmp/config/locales/devise.security_extension.zh_CN.yml
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
531
+ - test/tmp/config/initializers/devise-security.rb
532
+ - test/test_complexity_validator.rb