quo_vadis 2.1.8 → 2.1.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/README.md +11 -9
- data/app/controllers/quo_vadis/confirmations_controller.rb +1 -1
- data/app/mailers/quo_vadis/mailer.rb +1 -1
- data/lib/quo_vadis/controller.rb +7 -0
- data/lib/quo_vadis/defaults.rb +1 -0
- data/lib/quo_vadis/version.rb +1 -1
- data/lib/quo_vadis.rb +1 -0
- data/test/dummy/app/controllers/sign_ups_controller.rb +5 -0
- data/test/dummy/app/mailers/application_mailer.rb +2 -0
- data/test/dummy/config/routes.rb +1 -0
- data/test/integration/account_confirmation_test.rb +4 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f75e1f5d40a86773e5cec5133d3822431d8ed76e581d7e712912481ae56ec29a
|
4
|
+
data.tar.gz: 3789a04b43d20d1c3b4e4aaf6e5c8b88f53c4bc97fce5ee4b546063e1bfa9801
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac21c181a2339c6d515ae2c7defe20ced03c103ac9e144ca4edcf3169d0ea4bafa18f4a2011912c611310e0adf5736285f7d8b2dff5b031468e735940bcbc3b0
|
7
|
+
data.tar.gz: 432bb81c9d8de26a659a718a533579bdd982c4565ae5df96511dc5ec60bf84c4d4665c694e1db9b0837434b6a9d5d43a9db7006b6e278a1b9d1c9d8cf2f54c2e
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,16 @@
|
|
4
4
|
## HEAD
|
5
5
|
|
6
6
|
|
7
|
+
## 2.1.10 (14 September 2022)
|
8
|
+
|
9
|
+
* Enable configuration of mailer superclass.
|
10
|
+
|
11
|
+
|
12
|
+
## 2.1.9 (13 September 2022)
|
13
|
+
|
14
|
+
* Enable code to be run after sign up.
|
15
|
+
|
16
|
+
|
7
17
|
## 2.1.8 (18 June 2022)
|
8
18
|
|
9
19
|
* Extract convenience method for has authentication account.
|
@@ -35,7 +45,7 @@
|
|
35
45
|
|
36
46
|
## 2.1.3 (30 September 2021)
|
37
47
|
|
38
|
-
* Pass IP and timestamp as
|
48
|
+
* Pass IP and timestamp as parameters to mailer.
|
39
49
|
|
40
50
|
|
41
51
|
## 2.1.2 (30 September 2021)
|
data/README.md
CHANGED
@@ -177,7 +177,7 @@ Your new user sign-up form ([example](https://github.com/airblade/quo_vadis/blob
|
|
177
177
|
|
178
178
|
In your controller, use the `#login` method to log in your new user. The optional second argument sets the length of the session (defaults to the browser session) - see the description above in the Controllers section).
|
179
179
|
|
180
|
-
After logging in the user, redirect them
|
180
|
+
After logging in the user, redirect them wherever you like. You can use `qv.path_after_signup` which resolves to the first of these routes that exists: `:after_signup`, `:after_login`, the root route.
|
181
181
|
|
182
182
|
```ruby
|
183
183
|
class UsersController < ApplicationController
|
@@ -185,7 +185,7 @@ class UsersController < ApplicationController
|
|
185
185
|
@user = User.new user_params
|
186
186
|
if @user.save
|
187
187
|
login @user
|
188
|
-
redirect_to qv.
|
188
|
+
redirect_to qv.path_after_signup
|
189
189
|
else
|
190
190
|
# ...
|
191
191
|
end
|
@@ -258,10 +258,7 @@ Next, write the page where the user can amend their email address if they made a
|
|
258
258
|
|
259
259
|
Finally, write the page where people can put in their identifier (not their email, unless the identifier is email) again to request another confirmation email ([example](https://github.com/airblade/quo_vadis/blob/master/app/views/quo_vadis/confirmations/new.html.erb)). It must be in `app/views/quo_vadis/confirmations/new.html.:format`.
|
260
260
|
|
261
|
-
After the user has confirmed their account, they will be logged in and redirected to the first of these that exists:
|
262
|
-
|
263
|
-
- a route named `:after_login`;
|
264
|
-
- your root route.
|
261
|
+
After the user has confirmed their account, they will be logged in and redirected to `qv.path_after_signup` which resolves to the first of these routes that exists: `:after_signup`, `:after_login`, the root route.
|
265
262
|
|
266
263
|
So add whichever works best for you.
|
267
264
|
|
@@ -469,6 +466,10 @@ __`account_confirmation_token_lifetime`__ (`ActiveSupport::Duration` | integer)
|
|
469
466
|
|
470
467
|
The `Duration` or number of seconds for which an account-confirmation token is valid.
|
471
468
|
|
469
|
+
__`mailer_superclass`__ (string)
|
470
|
+
|
471
|
+
The class from which QuoVadis's mailer inherits.
|
472
|
+
|
472
473
|
__`mail_headers`__ (hash)
|
473
474
|
|
474
475
|
Mail headers which QuoVadis' emails should have.
|
@@ -518,12 +519,13 @@ end
|
|
518
519
|
|
519
520
|
__Routes__
|
520
521
|
|
521
|
-
You can set up your post-authentication and post-password-change routes. If you don't, you must have a root route. For example:
|
522
|
+
You can set up your post-signup, post-authentication, and post-password-change routes. If you don't, you must have a root route. For example:
|
522
523
|
|
523
524
|
```ruby
|
524
525
|
# config/routes.rb
|
525
|
-
get '/
|
526
|
-
get '/
|
526
|
+
get '/signups/confirmed', to: 'dashboards#show', as: 'after_signup'
|
527
|
+
get '/dashboard', to: 'dashboards#show', as: 'after_login'
|
528
|
+
get '/profile', to: 'profiles#show', as: 'after_password_change'
|
527
529
|
```
|
528
530
|
|
529
531
|
### I18n
|
@@ -51,7 +51,7 @@ module QuoVadis
|
|
51
51
|
session.delete :account_pending_confirmation
|
52
52
|
|
53
53
|
login account.model, true
|
54
|
-
redirect_to qv.
|
54
|
+
redirect_to qv.path_after_signup, notice: QuoVadis.translate('flash.confirmation.confirmed')
|
55
55
|
end
|
56
56
|
|
57
57
|
|
data/lib/quo_vadis/controller.rb
CHANGED
@@ -192,6 +192,13 @@ module QuoVadis
|
|
192
192
|
Log.create account: account, action: action, ip: request.remote_ip, metadata: metadata
|
193
193
|
end
|
194
194
|
|
195
|
+
def path_after_signup
|
196
|
+
return main_app.after_signup_path if main_app.respond_to?(:after_signup_path)
|
197
|
+
return main_app.after_login_path if main_app.respond_to?(:after_login_path)
|
198
|
+
return main_app.root_path if main_app.respond_to?(:root_path)
|
199
|
+
raise RuntimeError, 'Missing routes: after_signup_path, after_login_path, root_path; define at least one of them.'
|
200
|
+
end
|
201
|
+
|
195
202
|
def path_after_authentication
|
196
203
|
if (bookmark = rails_session[:qv_bookmark])
|
197
204
|
rails_session.delete :qv_bookmark
|
data/lib/quo_vadis/defaults.rb
CHANGED
@@ -10,6 +10,7 @@ QuoVadis.configure do
|
|
10
10
|
password_reset_token_lifetime 10.minutes
|
11
11
|
accounts_require_confirmation false
|
12
12
|
account_confirmation_token_lifetime 10.minutes
|
13
|
+
mailer_superclass 'ApplicationMailer'
|
13
14
|
mail_headers ({ from: 'Example App <support@example.com>' })
|
14
15
|
enqueue_transactional_emails true
|
15
16
|
app_name Rails.app_class.to_s.deconstantize # for the TOTP QR code
|
data/lib/quo_vadis/version.rb
CHANGED
data/lib/quo_vadis.rb
CHANGED
@@ -25,6 +25,7 @@ module QuoVadis
|
|
25
25
|
:session_lifetime_extend_to_end_of_day,# true | false
|
26
26
|
:session_idle_timeout, # :lifetime | ActiveSupport::Duration | [integer] seconds
|
27
27
|
:password_reset_token_lifetime, # ActiveSupport::Duration | [integer] seconds
|
28
|
+
:mailer_superclass, # string
|
28
29
|
:mail_headers, # hash
|
29
30
|
:accounts_require_confirmation, # true | false
|
30
31
|
:account_confirmation_token_lifetime, # ActiveSupport::Duration | [integer] seconds
|
data/test/dummy/config/routes.rb
CHANGED
@@ -33,6 +33,8 @@ class AccountConfirmationTest < IntegrationTest
|
|
33
33
|
put action_path
|
34
34
|
|
35
35
|
# verify logged in
|
36
|
+
assert_redirected_to '/sign_ups/confirmed'
|
37
|
+
follow_redirect!
|
36
38
|
assert_redirected_to '/articles/secret'
|
37
39
|
assert_equal 'Thanks for confirming your account. You are now logged in.', flash[:notice]
|
38
40
|
assert controller.logged_in?
|
@@ -101,6 +103,8 @@ class AccountConfirmationTest < IntegrationTest
|
|
101
103
|
|
102
104
|
put extract_path_from_email
|
103
105
|
|
106
|
+
assert_redirected_to '/sign_ups/confirmed'
|
107
|
+
follow_redirect!
|
104
108
|
assert_redirected_to '/articles/secret'
|
105
109
|
assert_equal 'Thanks for confirming your account. You are now logged in.', flash[:notice]
|
106
110
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quo_vadis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Stewart
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- test/dummy/app/controllers/articles_controller.rb
|
149
149
|
- test/dummy/app/controllers/sign_ups_controller.rb
|
150
150
|
- test/dummy/app/controllers/users_controller.rb
|
151
|
+
- test/dummy/app/mailers/application_mailer.rb
|
151
152
|
- test/dummy/app/models/application_record.rb
|
152
153
|
- test/dummy/app/models/article.rb
|
153
154
|
- test/dummy/app/models/person.rb
|
@@ -224,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
225
|
- !ruby/object:Gem::Version
|
225
226
|
version: '0'
|
226
227
|
requirements: []
|
227
|
-
rubygems_version: 3.2.
|
228
|
+
rubygems_version: 3.2.33
|
228
229
|
signing_key:
|
229
230
|
specification_version: 4
|
230
231
|
summary: Multifactor authentication for Rails 6 and 7.
|