rodauth 1.22.0 → 1.23.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/CHANGELOG +12 -0
- data/README.rdoc +5 -3
- data/doc/email_base.rdoc +1 -0
- data/doc/release_notes/1.23.0.txt +32 -0
- data/lib/rodauth.rb +5 -2
- data/lib/rodauth/features/base.rb +8 -0
- data/lib/rodauth/features/change_password_notify.rb +1 -1
- data/lib/rodauth/features/create_account.rb +1 -1
- data/lib/rodauth/features/email_auth.rb +3 -4
- data/lib/rodauth/features/email_base.rb +7 -2
- data/lib/rodauth/features/lockout.rb +1 -1
- data/lib/rodauth/features/login.rb +6 -2
- data/lib/rodauth/features/otp.rb +6 -3
- data/lib/rodauth/features/password_expiration.rb +1 -1
- data/lib/rodauth/features/recovery_codes.rb +3 -3
- data/lib/rodauth/features/reset_password.rb +2 -2
- data/lib/rodauth/features/sms_codes.rb +5 -5
- data/lib/rodauth/features/verify_account.rb +2 -2
- data/lib/rodauth/features/verify_login_change.rb +1 -1
- data/lib/rodauth/version.rb +1 -1
- data/templates/email-auth-request-form.str +2 -2
- data/templates/reset-password-request.str +3 -3
- data/templates/unlock-account-request.str +3 -3
- data/templates/verify-account-resend.str +3 -3
- metadata +5 -43
- data/Rakefile +0 -179
- data/spec/account_expiration_spec.rb +0 -225
- data/spec/all.rb +0 -1
- data/spec/change_login_spec.rb +0 -156
- data/spec/change_password_notify_spec.rb +0 -33
- data/spec/change_password_spec.rb +0 -202
- data/spec/close_account_spec.rb +0 -162
- data/spec/confirm_password_spec.rb +0 -70
- data/spec/create_account_spec.rb +0 -127
- data/spec/disallow_common_passwords_spec.rb +0 -93
- data/spec/disallow_password_reuse_spec.rb +0 -179
- data/spec/email_auth_spec.rb +0 -285
- data/spec/http_basic_auth_spec.rb +0 -143
- data/spec/jwt_cors_spec.rb +0 -57
- data/spec/jwt_refresh_spec.rb +0 -256
- data/spec/jwt_spec.rb +0 -235
- data/spec/lockout_spec.rb +0 -250
- data/spec/login_spec.rb +0 -328
- data/spec/migrate/001_tables.rb +0 -184
- data/spec/migrate/002_account_password_hash_column.rb +0 -11
- data/spec/migrate_password/001_tables.rb +0 -73
- data/spec/migrate_travis/001_tables.rb +0 -141
- data/spec/password_complexity_spec.rb +0 -109
- data/spec/password_expiration_spec.rb +0 -244
- data/spec/password_grace_period_spec.rb +0 -93
- data/spec/remember_spec.rb +0 -451
- data/spec/reset_password_spec.rb +0 -229
- data/spec/rodauth_spec.rb +0 -343
- data/spec/session_expiration_spec.rb +0 -58
- data/spec/single_session_spec.rb +0 -127
- data/spec/spec_helper.rb +0 -327
- data/spec/two_factor_spec.rb +0 -1462
- data/spec/update_password_hash_spec.rb +0 -40
- data/spec/verify_account_grace_period_spec.rb +0 -171
- data/spec/verify_account_spec.rb +0 -240
- data/spec/verify_change_login_spec.rb +0 -46
- data/spec/verify_login_change_spec.rb +0 -232
- data/spec/views/layout-other.str +0 -11
- data/spec/views/layout.str +0 -11
- data/spec/views/login.str +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4306ff08603b48a95bc543ffe53188d28d71ffdf8bf7427b65f4384eab8f430
|
4
|
+
data.tar.gz: a7319dbdfa10b43743ec76f32453ef0d65f3b1a30945f9c3988c7b87c6a639a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21d00b963f35ce2f356ba139cc07f0e0612484cc55a42efe5502f8401b8c373eeab2b2c71c92f68a2886d523e0b73a5fda80b5137fecec5b26ca9a0f517a3040
|
7
|
+
data.tar.gz: c5947144c88fbe98c31a2a24cd7a349953f8ff1717b9258f39ff58cbd98de85fb36abf6912b51496b6965ed7367f3fc13aad702db9443e587d9bde15dfc7c7c7
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
=== 1.23.0 (2020-03-06)
|
2
|
+
|
3
|
+
* Remove specs from the gem to reduce gem size by over 20% (jeremyevans)
|
4
|
+
|
5
|
+
* Make rodauth.authenticated? return true on OTP setup page (jeremyevans) (#68)
|
6
|
+
|
7
|
+
* Display link to email auth request form when user has entered login and incorrect password if using email_auth feature (janko) (#65)
|
8
|
+
|
9
|
+
* Add *_path and *_url methods for all *_route methods (janko) (#64)
|
10
|
+
|
11
|
+
* Add send_email configuration method for configuring how email is sent (janko) (#63)
|
12
|
+
|
1
13
|
=== 1.22.0 (2019-10-29)
|
2
14
|
|
3
15
|
* Add jwt_cors feature to handle Cross-Origin Resource Sharing when using the jwt feature (jeremyevans)
|
data/README.rdoc
CHANGED
@@ -931,6 +931,10 @@ verified_account? :: (verify_grace_period feature) Whether the account is curren
|
|
931
931
|
login as they are in the grace period.
|
932
932
|
locked_out? :: (lockout feature) Whether the account for the current session has been
|
933
933
|
locked out.
|
934
|
+
*_path :: One of these is added for each of the routes added by Rodauth, giving the
|
935
|
+
relative path to the route.
|
936
|
+
*_url :: One of these is added for each of the routes added by Rodauth, giving the
|
937
|
+
absolute path to the routE.
|
934
938
|
|
935
939
|
=== With Multiple Configurations
|
936
940
|
|
@@ -1100,9 +1104,7 @@ Here are some examples of integrating Rodauth into applications that
|
|
1100
1104
|
don't use Roda:
|
1101
1105
|
|
1102
1106
|
* {Ginatra, a Sinatra-based git repository viewer}[https://github.com/jeremyevans/ginatra/commit/28108ebec96e8d42596ee55b01c3f7b50c155dd1]
|
1103
|
-
* {Rodauth's demo site as a Rails application}[https://github.com/
|
1104
|
-
This uses the {roda-rails gem}[https://github.com/jeremyevans/roda-rails]
|
1105
|
-
so that Rodauth uses Rails' CSRF and flash support)
|
1107
|
+
* {Rodauth's demo site as a Rails 6 application}[https://github.com/janko/rodauth-demo-rails]
|
1106
1108
|
* {Grape application}[https://github.com/davydovanton/grape-rodauth]
|
1107
1109
|
* {Hanami application}[https://github.com/davydovanton/rodauth_hanami]
|
1108
1110
|
|
data/doc/email_base.rdoc
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
= New Features
|
2
|
+
|
3
|
+
* When the email_auth feature is used, the link to request email
|
4
|
+
authentication is now displayed if the user inputs an incorrect
|
5
|
+
password. Previously, it was only shown if the user had not
|
6
|
+
yet entered a password.
|
7
|
+
|
8
|
+
* A send_email configuration method has been added, which can be
|
9
|
+
overridden to customize email delivery (such as logging such
|
10
|
+
email). The configuration method block accepts a Mail::Message
|
11
|
+
argument.
|
12
|
+
|
13
|
+
* All rodauth.*_route methods that return the name of the route
|
14
|
+
segment now have rodauth.*_path and rodauth.*_url equivalents,
|
15
|
+
which return the path and URL for the related routes, respectively.
|
16
|
+
The rodauth.*_path methods are useful when constructing links to
|
17
|
+
the related Rodauth pages on the same site, and the rodauth.*_url
|
18
|
+
methods are useful for constructing link to the Rodauth pages from
|
19
|
+
other sites or in email.
|
20
|
+
|
21
|
+
= Other Improvements
|
22
|
+
|
23
|
+
* Specs have been removed from the gem file, reducing gem size by
|
24
|
+
over 20%.
|
25
|
+
|
26
|
+
* rodauth.authenticated? now returns true on the OTP setup page
|
27
|
+
when using the otp feature. Previously, this method returned
|
28
|
+
false on the OTP setup page. However, as the user has not yet
|
29
|
+
setup OTP when viewing this page, they should be considered
|
30
|
+
fully authenticated, as they would be if they viewed any other
|
31
|
+
page before setting up OTP. This change probably only affects
|
32
|
+
cases where the layout uses rodauth.authenticated?.
|
data/lib/rodauth.rb
CHANGED
@@ -101,11 +101,14 @@ module Rodauth
|
|
101
101
|
attr_accessor :configuration
|
102
102
|
|
103
103
|
def route(name=feature_name, default=name.to_s.tr('_', '-'), &block)
|
104
|
-
|
104
|
+
route_meth = :"#{name}_route"
|
105
|
+
auth_value_method route_meth, default
|
106
|
+
|
107
|
+
define_method(:"#{name}_path") { route_path(send(route_meth)) }
|
108
|
+
define_method(:"#{name}_url") { route_url(send(route_meth)) }
|
105
109
|
|
106
110
|
handle_meth = :"handle_#{name}"
|
107
111
|
internal_handle_meth = :"_#{handle_meth}"
|
108
|
-
route_meth = :"#{name}_route"
|
109
112
|
before route_meth
|
110
113
|
|
111
114
|
unless block.arity == 1
|
@@ -387,6 +387,14 @@ module Rodauth
|
|
387
387
|
request.redirect(path)
|
388
388
|
end
|
389
389
|
|
390
|
+
def route_path(route)
|
391
|
+
"#{prefix}/#{route}"
|
392
|
+
end
|
393
|
+
|
394
|
+
def route_url(route)
|
395
|
+
"#{request.base_url}#{route_path(route)}"
|
396
|
+
end
|
397
|
+
|
390
398
|
def transaction(opts={}, &block)
|
391
399
|
db.transaction(opts, &block)
|
392
400
|
end
|
@@ -135,7 +135,7 @@ module Rodauth
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def send_email_auth_email
|
138
|
-
create_email_auth_email
|
138
|
+
send_email(create_email_auth_email)
|
139
139
|
end
|
140
140
|
|
141
141
|
def email_auth_email_link
|
@@ -150,7 +150,7 @@ module Rodauth
|
|
150
150
|
|
151
151
|
def login_form_footer
|
152
152
|
footer = super
|
153
|
-
footer +=
|
153
|
+
footer += email_auth_request_form if valid_login_entered?
|
154
154
|
footer
|
155
155
|
end
|
156
156
|
|
@@ -166,9 +166,8 @@ module Rodauth
|
|
166
166
|
redirect email_auth_email_sent_redirect
|
167
167
|
else
|
168
168
|
# If the account has a password hash, allow password login, but
|
169
|
-
# show form below to also login via email link.
|
169
|
+
# we will show form below to also login via email link.
|
170
170
|
super
|
171
|
-
@email_auth_request_form = email_auth_request_form
|
172
171
|
end
|
173
172
|
end
|
174
173
|
|
@@ -14,7 +14,8 @@ module Rodauth
|
|
14
14
|
|
15
15
|
auth_methods(
|
16
16
|
:create_email,
|
17
|
-
:email_to
|
17
|
+
:email_to,
|
18
|
+
:send_email
|
18
19
|
)
|
19
20
|
|
20
21
|
def post_configure
|
@@ -24,6 +25,10 @@ module Rodauth
|
|
24
25
|
|
25
26
|
private
|
26
27
|
|
28
|
+
def send_email(email)
|
29
|
+
email.deliver!
|
30
|
+
end
|
31
|
+
|
27
32
|
def create_email(subject, body)
|
28
33
|
create_email_to(email_to, subject, body)
|
29
34
|
end
|
@@ -46,7 +51,7 @@ module Rodauth
|
|
46
51
|
end
|
47
52
|
|
48
53
|
def token_link(route, param, key)
|
49
|
-
"#{
|
54
|
+
"#{route_url(route)}?#{param}=#{account_id}#{token_separator}#{convert_email_token_key(key)}"
|
50
55
|
end
|
51
56
|
|
52
57
|
def convert_email_token_key(key)
|
@@ -69,12 +69,16 @@ module Rodauth
|
|
69
69
|
|
70
70
|
def skip_login_field_on_login?
|
71
71
|
return false unless use_multi_phase_login?
|
72
|
-
|
72
|
+
valid_login_entered?
|
73
73
|
end
|
74
74
|
|
75
75
|
def skip_password_field_on_login?
|
76
76
|
return false unless use_multi_phase_login?
|
77
|
-
|
77
|
+
!valid_login_entered?
|
78
|
+
end
|
79
|
+
|
80
|
+
def valid_login_entered?
|
81
|
+
@valid_login_entered
|
78
82
|
end
|
79
83
|
|
80
84
|
def login_hidden_field
|
data/lib/rodauth/features/otp.rb
CHANGED
@@ -219,15 +219,17 @@ module Rodauth
|
|
219
219
|
end
|
220
220
|
|
221
221
|
def two_factor_authentication_setup?
|
222
|
-
|
222
|
+
return true if super
|
223
|
+
return false if @otp_tmp_key
|
224
|
+
otp_exists?
|
223
225
|
end
|
224
226
|
|
225
227
|
def two_factor_need_setup_redirect
|
226
|
-
|
228
|
+
otp_setup_path
|
227
229
|
end
|
228
230
|
|
229
231
|
def two_factor_auth_required_redirect
|
230
|
-
|
232
|
+
otp_auth_path
|
231
233
|
end
|
232
234
|
|
233
235
|
def two_factor_remove
|
@@ -388,6 +390,7 @@ module Rodauth
|
|
388
390
|
end
|
389
391
|
|
390
392
|
def _otp_tmp_key(secret)
|
393
|
+
@otp_tmp_key = true
|
391
394
|
@otp_user_key = nil
|
392
395
|
@otp_key = secret
|
393
396
|
end
|
@@ -8,7 +8,7 @@ module Rodauth
|
|
8
8
|
error_flash "Your password cannot be changed yet", 'password_not_changeable_yet'
|
9
9
|
|
10
10
|
redirect :password_not_changeable_yet
|
11
|
-
redirect(:password_change_needed){
|
11
|
+
redirect(:password_change_needed){change_password_path}
|
12
12
|
|
13
13
|
auth_value_method :allow_password_change_after, -86400
|
14
14
|
auth_value_method :require_password_change_after, 90*86400
|
@@ -23,8 +23,8 @@ module Rodauth
|
|
23
23
|
|
24
24
|
notice_flash "Additional authentication recovery codes have been added.", 'recovery_codes_added'
|
25
25
|
|
26
|
-
redirect(:recovery_auth){
|
27
|
-
redirect(:add_recovery_codes){
|
26
|
+
redirect(:recovery_auth){recovery_auth_path}
|
27
|
+
redirect(:add_recovery_codes){recovery_codes_path}
|
28
28
|
|
29
29
|
loaded_templates %w'add-recovery-codes recovery-auth recovery-codes password-field'
|
30
30
|
view 'add-recovery-codes', 'Authentication Recovery Codes', 'add_recovery_codes'
|
@@ -146,7 +146,7 @@ module Rodauth
|
|
146
146
|
end
|
147
147
|
|
148
148
|
def otp_auth_form_footer
|
149
|
-
"#{super if defined?(super)}<p><a href=\"#{
|
149
|
+
"#{super if defined?(super)}<p><a href=\"#{recovery_auth_path}\">Authenticate using recovery code</a></p>"
|
150
150
|
end
|
151
151
|
|
152
152
|
def otp_lockout_redirect
|
@@ -179,7 +179,7 @@ module Rodauth
|
|
179
179
|
end
|
180
180
|
|
181
181
|
def send_reset_password_email
|
182
|
-
create_reset_password_email
|
182
|
+
send_email(create_reset_password_email)
|
183
183
|
end
|
184
184
|
|
185
185
|
def reset_password_email_link
|
@@ -197,7 +197,7 @@ module Rodauth
|
|
197
197
|
end
|
198
198
|
|
199
199
|
def reset_password_request_link
|
200
|
-
"<p><a href=\"#{
|
200
|
+
"<p><a href=\"#{reset_password_request_path}\">Forgot Password?</a></p>"
|
201
201
|
end
|
202
202
|
|
203
203
|
def set_reset_password_email_last_sent
|
@@ -45,10 +45,10 @@ module Rodauth
|
|
45
45
|
redirect :sms_already_setup
|
46
46
|
redirect :sms_confirm
|
47
47
|
redirect :sms_disable
|
48
|
-
redirect(:sms_auth){
|
49
|
-
redirect(:sms_needs_confirmation){
|
50
|
-
redirect(:sms_needs_setup){
|
51
|
-
redirect(:sms_request){
|
48
|
+
redirect(:sms_auth){sms_auth_path}
|
49
|
+
redirect(:sms_needs_confirmation){sms_confirm_path}
|
50
|
+
redirect(:sms_needs_setup){sms_setup_path}
|
51
|
+
redirect(:sms_request){sms_request_path}
|
52
52
|
redirect(:sms_lockout){_two_factor_auth_required_redirect}
|
53
53
|
|
54
54
|
loaded_templates %w'sms-auth sms-confirm sms-disable sms-request sms-setup sms-code-field password-field'
|
@@ -311,7 +311,7 @@ module Rodauth
|
|
311
311
|
end
|
312
312
|
|
313
313
|
def otp_auth_form_footer
|
314
|
-
"#{super if defined?(super)}#{"<p><a href=\"#{
|
314
|
+
"#{super if defined?(super)}#{"<p><a href=\"#{sms_request_path}\">Authenticate using SMS code</a></p>" if sms_available?}"
|
315
315
|
end
|
316
316
|
|
317
317
|
def otp_lockout_redirect
|
@@ -201,7 +201,7 @@ module Rodauth
|
|
201
201
|
end
|
202
202
|
|
203
203
|
def send_verify_account_email
|
204
|
-
create_verify_account_email
|
204
|
+
send_email(create_verify_account_email)
|
205
205
|
end
|
206
206
|
|
207
207
|
def verify_account_email_link
|
@@ -225,7 +225,7 @@ module Rodauth
|
|
225
225
|
end
|
226
226
|
|
227
227
|
def verify_account_resend_link
|
228
|
-
"<p><a href=\"#{
|
228
|
+
"<p><a href=\"#{verify_account_resend_path}\">Resend Verify Account Information</a></p>"
|
229
229
|
end
|
230
230
|
|
231
231
|
def create_account_set_password?
|
data/lib/rodauth/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
<form action="#{rodauth.
|
1
|
+
<form action="#{rodauth.email_auth_request_path}" method="post" class="rodauth form-horizontal" role="form" id="email-auth-request-form">
|
2
2
|
#{rodauth.email_auth_request_additional_form_tags}
|
3
|
-
#{rodauth.csrf_tag(
|
3
|
+
#{rodauth.csrf_tag(rodauth.email_auth_request_path)}
|
4
4
|
#{rodauth.login_hidden_field}
|
5
5
|
#{rodauth.button(rodauth.email_auth_request_button)}
|
6
6
|
</form>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<form action="#{rodauth.
|
1
|
+
<form action="#{rodauth.reset_password_request_path}" method="post" class="rodauth form-horizontal" role="form" id="reset-password-request-form">
|
2
2
|
#{rodauth.reset_password_request_additional_form_tags}
|
3
|
-
#{rodauth.csrf_tag(
|
3
|
+
#{rodauth.csrf_tag(rodauth.reset_password_request_path)}
|
4
4
|
#{rodauth.reset_password_explanatory_text}
|
5
|
-
#{
|
5
|
+
#{rodauth.param_or_nil(rodauth.login_param) ? rodauth.login_hidden_field : rodauth.render('login-field')}
|
6
6
|
#{rodauth.button(rodauth.reset_password_request_button)}
|
7
7
|
</form>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<form action="#{rodauth.
|
1
|
+
<form action="#{rodauth.unlock_account_request_path}" method="post" class="rodauth form-horizontal" role="form" id="unlock-account-request-form">
|
2
2
|
#{rodauth.unlock_account_request_additional_form_tags}
|
3
|
-
#{rodauth.csrf_tag(
|
4
|
-
|
3
|
+
#{rodauth.csrf_tag(rodauth.unlock_account_request_path)}
|
4
|
+
#{rodauth.login_hidden_field}
|
5
5
|
#{rodauth.unlock_account_request_explanatory_text}
|
6
6
|
<input type="submit" class="btn btn-primary inline" value="#{rodauth.unlock_account_request_button}"/>
|
7
7
|
</form>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<form action="#{rodauth.
|
1
|
+
<form action="#{rodauth.verify_account_resend_path}" method="post" class="rodauth form-horizontal" role="form" id="verify-account-resend-form">
|
2
2
|
#{rodauth.verify_account_resend_additional_form_tags}
|
3
|
-
#{rodauth.csrf_tag(
|
3
|
+
#{rodauth.csrf_tag(rodauth.verify_account_resend_path)}
|
4
4
|
#{rodauth.verify_account_resend_explanatory_text}
|
5
|
-
#{
|
5
|
+
#{rodauth.param_or_nil(rodauth.login_param) ? rodauth.login_hidden_field : rodauth.render('login-field')}
|
6
6
|
#{rodauth.button(rodauth.verify_account_resend_button)}
|
7
7
|
</form>
|
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: 1.
|
4
|
+
version: 1.23.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:
|
11
|
+
date: 2020-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -270,11 +270,11 @@ extra_rdoc_files:
|
|
270
270
|
- doc/release_notes/1.20.0.txt
|
271
271
|
- doc/release_notes/1.21.0.txt
|
272
272
|
- doc/release_notes/1.22.0.txt
|
273
|
+
- doc/release_notes/1.23.0.txt
|
273
274
|
files:
|
274
275
|
- CHANGELOG
|
275
276
|
- MIT-LICENSE
|
276
277
|
- README.rdoc
|
277
|
-
- Rakefile
|
278
278
|
- dict/top-10_000-passwords.txt
|
279
279
|
- doc/account_expiration.rdoc
|
280
280
|
- doc/base.rdoc
|
@@ -318,6 +318,7 @@ files:
|
|
318
318
|
- doc/release_notes/1.20.0.txt
|
319
319
|
- doc/release_notes/1.21.0.txt
|
320
320
|
- doc/release_notes/1.22.0.txt
|
321
|
+
- doc/release_notes/1.23.0.txt
|
321
322
|
- doc/release_notes/1.3.0.txt
|
322
323
|
- doc/release_notes/1.4.0.txt
|
323
324
|
- doc/release_notes/1.5.0.txt
|
@@ -376,45 +377,6 @@ files:
|
|
376
377
|
- lib/rodauth/features/verify_login_change.rb
|
377
378
|
- lib/rodauth/migrations.rb
|
378
379
|
- lib/rodauth/version.rb
|
379
|
-
- spec/account_expiration_spec.rb
|
380
|
-
- spec/all.rb
|
381
|
-
- spec/change_login_spec.rb
|
382
|
-
- spec/change_password_notify_spec.rb
|
383
|
-
- spec/change_password_spec.rb
|
384
|
-
- spec/close_account_spec.rb
|
385
|
-
- spec/confirm_password_spec.rb
|
386
|
-
- spec/create_account_spec.rb
|
387
|
-
- spec/disallow_common_passwords_spec.rb
|
388
|
-
- spec/disallow_password_reuse_spec.rb
|
389
|
-
- spec/email_auth_spec.rb
|
390
|
-
- spec/http_basic_auth_spec.rb
|
391
|
-
- spec/jwt_cors_spec.rb
|
392
|
-
- spec/jwt_refresh_spec.rb
|
393
|
-
- spec/jwt_spec.rb
|
394
|
-
- spec/lockout_spec.rb
|
395
|
-
- spec/login_spec.rb
|
396
|
-
- spec/migrate/001_tables.rb
|
397
|
-
- spec/migrate/002_account_password_hash_column.rb
|
398
|
-
- spec/migrate_password/001_tables.rb
|
399
|
-
- spec/migrate_travis/001_tables.rb
|
400
|
-
- spec/password_complexity_spec.rb
|
401
|
-
- spec/password_expiration_spec.rb
|
402
|
-
- spec/password_grace_period_spec.rb
|
403
|
-
- spec/remember_spec.rb
|
404
|
-
- spec/reset_password_spec.rb
|
405
|
-
- spec/rodauth_spec.rb
|
406
|
-
- spec/session_expiration_spec.rb
|
407
|
-
- spec/single_session_spec.rb
|
408
|
-
- spec/spec_helper.rb
|
409
|
-
- spec/two_factor_spec.rb
|
410
|
-
- spec/update_password_hash_spec.rb
|
411
|
-
- spec/verify_account_grace_period_spec.rb
|
412
|
-
- spec/verify_account_spec.rb
|
413
|
-
- spec/verify_change_login_spec.rb
|
414
|
-
- spec/verify_login_change_spec.rb
|
415
|
-
- spec/views/layout-other.str
|
416
|
-
- spec/views/layout.str
|
417
|
-
- spec/views/login.str
|
418
380
|
- templates/add-recovery-codes.str
|
419
381
|
- templates/button.str
|
420
382
|
- templates/change-login.str
|
@@ -488,7 +450,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
488
450
|
- !ruby/object:Gem::Version
|
489
451
|
version: '0'
|
490
452
|
requirements: []
|
491
|
-
rubygems_version: 3.
|
453
|
+
rubygems_version: 3.1.2
|
492
454
|
signing_key:
|
493
455
|
specification_version: 4
|
494
456
|
summary: Authentication and Account Management Framework for Rack Applications
|