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.
- checksums.yaml +4 -4
- data/README.md +27 -19
- data/app/controllers/devise/password_expired_controller.rb +1 -5
- data/config/locales/by.yml +1 -0
- data/config/locales/cs.yml +1 -0
- data/config/locales/de.yml +1 -0
- data/config/locales/en.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/fa.yml +1 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/hi.yml +21 -20
- data/config/locales/it.yml +1 -0
- data/config/locales/ja.yml +1 -0
- data/config/locales/nl.yml +1 -0
- data/config/locales/pt.yml +1 -0
- data/config/locales/ru.yml +1 -0
- data/config/locales/tr.yml +1 -0
- data/config/locales/uk.yml +1 -0
- data/config/locales/zh_CN.yml +1 -0
- data/config/locales/zh_TW.yml +1 -0
- data/lib/devise-security.rb +6 -3
- data/lib/devise-security/controllers/helpers.rb +2 -2
- data/lib/devise-security/hooks/session_limitable.rb +10 -6
- data/lib/devise-security/models/secure_validatable.rb +15 -1
- 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 → devise_security.rb} +3 -0
- data/test/controllers/test_password_expired_controller.rb +67 -98
- data/test/controllers/test_security_question_controller.rb +16 -40
- 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/log/development.log +883 -0
- data/test/dummy/log/test.log +19890 -0
- data/test/integration/test_password_expirable_workflow.rb +0 -4
- data/test/orm/mongoid.rb +2 -1
- data/test/support/integration_helpers.rb +14 -32
- data/test/support/mongoid.yml +1 -1
- data/test/test_helper.rb +4 -4
- data/test/test_install_generator.rb +1 -1
- data/test/test_secure_validatable.rb +76 -0
- data/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 +1 -0
- data/test/tmp/config/locales/devise.security_extension.en.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.es.yml +10 -9
- data/test/tmp/config/locales/devise.security_extension.fa.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.fr.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.hi.yml +42 -0
- data/test/tmp/config/locales/devise.security_extension.it.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.ja.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.nl.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.pt.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.ru.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.tr.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.uk.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.zh_CN.yml +1 -0
- data/test/tmp/config/locales/devise.security_extension.zh_TW.yml +41 -0
- metadata +19 -40
- data/lib/devise-security/orm/active_record.rb +0 -20
- data/lib/devise-security/schema.rb +0 -66
@@ -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ı."
|
@@ -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
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2021-
|
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:
|
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:
|
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/
|
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:
|
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.
|
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
|