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.
- checksums.yaml +4 -4
- data/README.md +124 -60
- data/app/controllers/devise/password_expired_controller.rb +11 -6
- data/app/views/devise/paranoid_verification_code/show.html.erb +3 -3
- data/app/views/devise/password_expired/show.html.erb +5 -5
- data/config/locales/by.yml +49 -0
- data/config/locales/cs.yml +41 -0
- data/config/locales/de.yml +13 -2
- data/config/locales/en.yml +13 -1
- data/config/locales/es.yml +10 -9
- data/config/locales/fa.yml +41 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/hi.yml +42 -0
- data/config/locales/it.yml +35 -4
- data/config/locales/ja.yml +2 -1
- data/config/locales/nl.yml +41 -0
- data/config/locales/pt.yml +41 -0
- data/config/locales/ru.yml +49 -0
- data/config/locales/tr.yml +1 -0
- data/config/locales/uk.yml +49 -0
- data/config/locales/zh_CN.yml +41 -0
- data/config/locales/zh_TW.yml +41 -0
- data/lib/devise-security.rb +7 -3
- data/lib/devise-security/controllers/helpers.rb +59 -50
- data/lib/devise-security/hooks/password_expirable.rb +2 -0
- data/lib/devise-security/hooks/session_limitable.rb +29 -14
- data/lib/devise-security/models/compatibility.rb +2 -2
- data/lib/devise-security/models/compatibility/{active_record.rb → active_record_patch.rb} +12 -1
- data/lib/devise-security/models/compatibility/{mongoid.rb → mongoid_patch.rb} +11 -1
- data/lib/devise-security/models/password_expirable.rb +5 -1
- data/lib/devise-security/models/secure_validatable.rb +15 -1
- data/lib/devise-security/models/session_limitable.rb +17 -2
- data/lib/devise-security/validators/password_complexity_validator.rb +4 -2
- data/lib/devise-security/version.rb +1 -1
- data/lib/generators/devise_security/install_generator.rb +3 -3
- data/lib/generators/templates/devise_security.rb +47 -0
- data/test/{test_captcha_controller.rb → controllers/test_captcha_controller.rb} +0 -0
- data/test/controllers/test_password_expired_controller.rb +110 -0
- data/test/{test_security_question_controller.rb → controllers/test_security_question_controller.rb} +16 -40
- data/test/dummy/app/assets/config/manifest.js +3 -0
- data/test/dummy/app/controllers/widgets_controller.rb +6 -0
- data/test/dummy/app/models/user.rb +8 -0
- data/test/dummy/config/application.rb +1 -0
- data/test/dummy/config/environments/test.rb +3 -13
- data/test/dummy/config/initializers/migration_class.rb +1 -8
- data/test/dummy/config/mongoid.yml +1 -1
- data/test/dummy/config/routes.rb +4 -3
- data/test/dummy/db/migrate/20120508165529_create_tables.rb +10 -1
- data/test/dummy/log/development.log +883 -0
- data/test/dummy/log/test.log +21689 -0
- data/test/integration/test_password_expirable_workflow.rb +53 -0
- data/test/integration/test_session_limitable_workflow.rb +67 -0
- data/test/orm/active_record.rb +4 -1
- data/test/orm/mongoid.rb +2 -1
- data/test/support/integration_helpers.rb +29 -0
- data/test/support/mongoid.yml +1 -1
- data/test/test_compatibility.rb +13 -0
- data/test/test_complexity_validator.rb +12 -0
- data/test/test_helper.rb +21 -6
- data/test/test_install_generator.rb +11 -1
- data/test/test_secure_validatable.rb +76 -0
- data/test/test_session_limitable.rb +57 -0
- data/{lib/generators/templates → test/tmp/config/initializers}/devise-security.rb +3 -0
- data/test/tmp/config/locales/devise.security_extension.by.yml +49 -0
- data/test/tmp/config/locales/devise.security_extension.cs.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.de.yml +39 -0
- data/test/tmp/config/locales/devise.security_extension.en.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.es.yml +30 -0
- data/test/tmp/config/locales/devise.security_extension.fa.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.fr.yml +30 -0
- data/test/tmp/config/locales/devise.security_extension.hi.yml +42 -0
- data/test/tmp/config/locales/devise.security_extension.it.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.ja.yml +30 -0
- data/test/tmp/config/locales/devise.security_extension.nl.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.pt.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.ru.yml +49 -0
- data/test/tmp/config/locales/devise.security_extension.tr.yml +18 -0
- data/test/tmp/config/locales/devise.security_extension.uk.yml +49 -0
- data/test/tmp/config/locales/devise.security_extension.zh_CN.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.zh_TW.yml +41 -0
- metadata +156 -133
- data/.codeclimate.yml +0 -63
- data/.document +0 -5
- data/.gitignore +0 -43
- data/.mdlrc +0 -1
- data/.rubocop.yml +0 -64
- data/.ruby-version +0 -1
- data/.travis.yml +0 -41
- data/Appraisals +0 -35
- data/Gemfile +0 -10
- data/Rakefile +0 -27
- data/devise-security.gemspec +0 -50
- data/gemfiles/rails_4.2_stable.gemfile +0 -16
- data/gemfiles/rails_5.0_stable.gemfile +0 -15
- data/gemfiles/rails_5.1_stable.gemfile +0 -15
- data/gemfiles/rails_5.2_stable.gemfile +0 -15
- data/gemfiles/rails_6.0_beta.gemfile +0 -15
- data/lib/devise-security/orm/active_record.rb +0 -20
- data/lib/devise-security/schema.rb +0 -66
- data/test/dummy/app/models/.gitkeep +0 -0
- 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.
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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.
|
|
190
|
+
version: 0.80.0
|
|
225
191
|
- !ruby/object:Gem::Dependency
|
|
226
|
-
name:
|
|
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:
|
|
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
|
-
-
|
|
283
|
-
-
|
|
284
|
-
-
|
|
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/
|
|
297
|
-
- lib/devise-security/models/compatibility/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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
|
-
|
|
426
|
-
|
|
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/
|
|
432
|
-
- test/dummy/app/
|
|
433
|
-
- test/dummy/app/
|
|
434
|
-
- test/dummy/app/
|
|
435
|
-
- test/dummy/app/
|
|
436
|
-
- test/dummy/app/
|
|
437
|
-
- test/dummy/app/
|
|
438
|
-
- test/dummy/app/
|
|
439
|
-
- test/dummy/app/models/
|
|
440
|
-
- test/dummy/app/models/mongoid/
|
|
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/
|
|
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/
|
|
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/
|
|
450
|
-
- test/dummy/app/models/mongoid/
|
|
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/
|
|
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/
|
|
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/
|
|
463
|
-
- test/dummy/app/
|
|
464
|
-
- test/dummy/app/
|
|
465
|
-
- test/dummy/app/
|
|
466
|
-
- test/dummy/app/
|
|
467
|
-
- test/dummy/app/
|
|
468
|
-
- test/dummy/app/
|
|
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.
|
|
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/
|
|
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/
|
|
479
|
-
- test/dummy/config
|
|
480
|
-
- test/dummy/
|
|
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/
|
|
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/
|
|
488
|
-
- test/dummy/
|
|
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/
|
|
506
|
-
- test/
|
|
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/
|
|
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
|