rodauth 2.17.0 → 2.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +12 -0
- data/README.rdoc +4 -1
- data/doc/guides/i18n.rdoc +3 -0
- data/doc/release_notes/2.18.0.txt +27 -0
- data/lib/rodauth/features/argon2.rb +13 -1
- data/lib/rodauth/features/json.rb +19 -0
- data/lib/rodauth/features/otp.rb +1 -1
- data/lib/rodauth/version.rb +1 -1
- data/lib/rodauth.rb +3 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60f279e15751f9a0915c72e919726cae392844137ddabd98cb5a973815ada935
|
4
|
+
data.tar.gz: ae841728e69f0fdf1d2c67de55f52ed535971a349ecc6dbddeaf6250e573515f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7490aded0f6e506fff03b445d569709ec77d1dc7e36193d8939c36d706a95f4b9bbd2ad0a05feaa7f4e2c309ce03ceeff302de81546a23f8c26bbd1c62f12c88
|
7
|
+
data.tar.gz: bb437de6fd56ee88a2acdccc6058eefe05c856d3bc0569b473d968aa7c8c2eae64817944dade3987b612322e61c7351808765e7dfa897267e4966a7b4c8c4206
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
=== 2.18.0 (2021-11-23)
|
2
|
+
|
3
|
+
* Allow JSON API access to /multifactor-manage to get links to setup/disable multifactor authentication endpoints (jeremyevans)
|
4
|
+
|
5
|
+
* Allow JSON API access to /multifactor-auth to get links to possible multifactor authentication endpoints (jeremyevans)
|
6
|
+
|
7
|
+
* Set configuration_name on class passed via :auth_class option if not already set (janko, jeremyevans) (#181)
|
8
|
+
|
9
|
+
* Use viewbox: true option when creating QR code in otp feature, displays better and easier to style when using rqrcode 2+ (jeremyevans)
|
10
|
+
|
11
|
+
* Make argon2 feature work with argon2 2.1.0 (jeremyevans)
|
12
|
+
|
1
13
|
=== 2.17.0 (2021-09-24)
|
2
14
|
|
3
15
|
* Make jwt_refresh work correctly with verify_account_grace_period (jeremyevans)
|
data/README.rdoc
CHANGED
@@ -422,9 +422,12 @@ Note that these migrations require Sequel 4.35.0+.
|
|
422
422
|
if db.database_type == :postgres
|
423
423
|
citext :email, :null=>false
|
424
424
|
constraint :valid_email, :email=>/^[^,;@ \r\n]+@[^,@; \r\n]+\.[^,@; \r\n]+$/
|
425
|
-
index :email, :unique=>true, :where=>{:status_id=>[1, 2]}
|
426
425
|
else
|
427
426
|
String :email, :null=>false
|
427
|
+
end
|
428
|
+
if db.supports_partial_indexes?
|
429
|
+
index :email, :unique=>true, :where=>{:status_id=>[1, 2]}
|
430
|
+
else
|
428
431
|
index :email, :unique=>true
|
429
432
|
end
|
430
433
|
end
|
data/doc/guides/i18n.rdoc
CHANGED
@@ -24,3 +24,6 @@ Your translation file may then look something like this:
|
|
24
24
|
require_login_error_flash: "Login is required for accessing this page"
|
25
25
|
no_matching_login_message: "user with this email address doesn't exist"
|
26
26
|
reset_password_email_subject: "Password Reset Instructions"
|
27
|
+
|
28
|
+
Alternatively, you can use the
|
29
|
+
{rodauth-i18n}[https://github.com/janko/rodauth-i18n] gem.
|
@@ -0,0 +1,27 @@
|
|
1
|
+
= New Features
|
2
|
+
|
3
|
+
* When using the json and multifactor auth features, the JSON API can
|
4
|
+
now access the multifactor-manage route to get lists of endpoints
|
5
|
+
for setting up and disabling supported multifactor authentication
|
6
|
+
methods. The JSON API can now also access the multifactor-auth
|
7
|
+
route to get a list of endpoints for multifactor authentication for
|
8
|
+
the currently logged in account.
|
9
|
+
|
10
|
+
= Other Improvements
|
11
|
+
|
12
|
+
* In the otp feature, the viewbox: true rqrcode option is now used
|
13
|
+
when creating the QR code. This results in a QR code that is
|
14
|
+
displayed better and is easier to style. This option only has
|
15
|
+
an effect when using rqrcode 2+.
|
16
|
+
|
17
|
+
* When using the :auth_class option when loading the rodauth plugin,
|
18
|
+
the configuration name is set in the provided auth class, unless the
|
19
|
+
auth class already has a configuration name set.
|
20
|
+
|
21
|
+
* The example migration now recommends using a partial index on the
|
22
|
+
email column in cases where the database supports partial indexes.
|
23
|
+
Previously, it only recommended it on PostgreSQL.
|
24
|
+
|
25
|
+
* The argon2 feature now works with argon2 2.1.0. Older versions of
|
26
|
+
Rodauth work with both earlier and later versions of argon2, but
|
27
|
+
not 2.1.0.
|
@@ -16,6 +16,18 @@ module Rodauth
|
|
16
16
|
|
17
17
|
private
|
18
18
|
|
19
|
+
if Argon2::VERSION != '2.1.0'
|
20
|
+
def argon2_salt_option
|
21
|
+
:salt_do_not_supply
|
22
|
+
end
|
23
|
+
# :nocov:
|
24
|
+
else
|
25
|
+
def argon2_salt_option
|
26
|
+
:salt_for_testing_purposes_only
|
27
|
+
end
|
28
|
+
# :nocov:
|
29
|
+
end
|
30
|
+
|
19
31
|
def password_hash_cost
|
20
32
|
return super unless use_argon2?
|
21
33
|
argon2_hash_cost
|
@@ -35,7 +47,7 @@ module Rodauth
|
|
35
47
|
return super unless argon2_hash_algorithm?(salt)
|
36
48
|
|
37
49
|
argon2_params = Hash[extract_password_hash_cost(salt)]
|
38
|
-
argon2_params[
|
50
|
+
argon2_params[argon2_salt_option] = Base64.decode64(salt.split('$').last)
|
39
51
|
::Argon2::Password.new(argon2_params).create(password)
|
40
52
|
end
|
41
53
|
|
@@ -67,6 +67,25 @@ module Rodauth
|
|
67
67
|
|
68
68
|
private
|
69
69
|
|
70
|
+
def before_two_factor_manage_route
|
71
|
+
super if defined?(super)
|
72
|
+
if use_json?
|
73
|
+
json_response[:setup_links] = two_factor_setup_links.sort.map{|_,link| link}
|
74
|
+
json_response[:remove_links] = two_factor_remove_links.sort.map{|_,link| link}
|
75
|
+
json_response[json_response_success_key] ||= "" if include_success_messages?
|
76
|
+
return_json_response
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def before_two_factor_auth_route
|
81
|
+
super if defined?(super)
|
82
|
+
if use_json?
|
83
|
+
json_response[:auth_links] = two_factor_auth_links.sort.map{|_,link| link}
|
84
|
+
json_response[json_response_success_key] ||= "" if include_success_messages?
|
85
|
+
return_json_response
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
70
89
|
def before_view_recovery_codes
|
71
90
|
super if defined?(super)
|
72
91
|
if use_json?
|
data/lib/rodauth/features/otp.rb
CHANGED
data/lib/rodauth/version.rb
CHANGED
data/lib/rodauth.rb
CHANGED
@@ -50,13 +50,14 @@ module Rodauth
|
|
50
50
|
else
|
51
51
|
json_opt != :only
|
52
52
|
end
|
53
|
-
auth_class = (app.opts[:rodauths] ||= {})[opts[:name]] ||= opts[:auth_class] || Class.new(Auth)
|
53
|
+
auth_class = (app.opts[:rodauths] ||= {})[opts[:name]] ||= opts[:auth_class] || Class.new(Auth)
|
54
54
|
if !auth_class.roda_class
|
55
55
|
auth_class.roda_class = app
|
56
56
|
elsif auth_class.roda_class != app
|
57
|
-
auth_class = app.opts[:rodauths][opts[:name]] = Class.new(auth_class)
|
57
|
+
auth_class = app.opts[:rodauths][opts[:name]] = Class.new(auth_class)
|
58
58
|
auth_class.roda_class = app
|
59
59
|
end
|
60
|
+
auth_class.class_eval{@configuration_name = opts[:name] unless defined?(@configuration_name)}
|
60
61
|
auth_class.configure(&block) if block
|
61
62
|
end
|
62
63
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rodauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -331,6 +331,7 @@ extra_rdoc_files:
|
|
331
331
|
- doc/release_notes/2.15.0.txt
|
332
332
|
- doc/release_notes/2.16.0.txt
|
333
333
|
- doc/release_notes/2.17.0.txt
|
334
|
+
- doc/release_notes/2.18.0.txt
|
334
335
|
- doc/release_notes/2.2.0.txt
|
335
336
|
- doc/release_notes/2.3.0.txt
|
336
337
|
- doc/release_notes/2.4.0.txt
|
@@ -433,6 +434,7 @@ files:
|
|
433
434
|
- doc/release_notes/2.15.0.txt
|
434
435
|
- doc/release_notes/2.16.0.txt
|
435
436
|
- doc/release_notes/2.17.0.txt
|
437
|
+
- doc/release_notes/2.18.0.txt
|
436
438
|
- doc/release_notes/2.2.0.txt
|
437
439
|
- doc/release_notes/2.3.0.txt
|
438
440
|
- doc/release_notes/2.4.0.txt
|