Sha256: 59a5276ce0c41cc3322731cc7f97ae30c5ce184da94bf6ebe628050851199744
Contents?: true
Size: 1.65 KB
Versions: 2
Compression:
Stored size: 1.65 KB
Contents
# frozen_string_literal: true module Decidim module Suomifi class SessionsController < ::Decidim::Devise::SessionsController def destroy # In case the user is signed in through Suomi.fi, redirect them through # the SPSLO flow. if session.delete("decidim-suomifi.signed_in") # These session variables get destroyed along with the user's active # session. They are needed for the SLO request. saml_uid = session["saml_uid"] saml_session_index = session["saml_session_index"] # End the local user session. signed_out = (::Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name)) # Store the SAML parameters for the SLO request utilized by # omniauth-saml. These are used to generate a valid SLO request. session["saml_uid"] = saml_uid session["saml_session_index"] = saml_session_index # Generate the SLO redirect path and parameters. relay = slo_callback_user_session_path relay += "?success=1" if signed_out params = "?RelayState=#{CGI.escape(relay)}" return redirect_to user_suomifi_omniauth_spslo_path + params end # Otherwise, continue normally super end def slo # This is handled already by omniauth redirect_to decidim.root_path end def spslo # This is handled already by omniauth redirect_to decidim.root_path end def slo_callback set_flash_message! :notice, :signed_out if params[:success] == "1" redirect_to after_sign_out_path_for(resource_name) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decidim-suomifi-0.19.0 | app/controllers/decidim/suomifi/sessions_controller.rb |
decidim-suomifi-0.18.1 | app/controllers/decidim/suomifi/sessions_controller.rb |