diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-09-11 16:51:26 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2018-09-11 16:51:26 +0200 |
commit | cd99255698354f3b5ec1c0d5d9bc1b4fb9bffdf3 (patch) | |
tree | 0486b73191a98645e0620fefe8743f4a0c44bef5 /app/controllers/auth | |
parent | 65f625cf237feb55a21495606d5e2c258bbe50cc (diff) | |
parent | bda0f7ac7353a63b42ca99b2e7d4e80a3b03b850 (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: app/controllers/oauth/authorizations_controller.rb Just two changes being too close to one another. Took both.
Diffstat (limited to 'app/controllers/auth')
-rw-r--r-- | app/controllers/auth/sessions_controller.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index 7cd46662f..19722364c 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -11,6 +11,7 @@ class Auth::SessionsController < Devise::SessionsController prepend_before_action :set_pack before_action :set_instance_presenter, only: [:new] before_action :set_body_classes + after_action :clear_site_data, only: [:destroy] def new Devise.omniauth_configs.each do |provider, config| @@ -28,8 +29,10 @@ class Auth::SessionsController < Devise::SessionsController end def destroy + tmp_stored_location = stored_location_for(:user) super flash.delete(:notice) + store_location_for(:user, tmp_stored_location) if continue_after? end protected @@ -126,4 +129,16 @@ class Auth::SessionsController < Devise::SessionsController end paths end + + def clear_site_data + return if continue_after? + + # Should be '"*"' but that doen't work in Chrome (neither does '"executionContexts"') + # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Clear-Site-Data + response.headers['Clear-Site-Data'] = '"cache", "cookies", "storage"' + end + + def continue_after? + truthy_param?(:continue) + end end |