Sha256: e19dec76527e9c1eefaef539ecb823ddfb5288a80af39b111204144357d7e7a2
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true module NoPassword class SessionConfirmationsController < ApplicationController include NoPassword::ControllerHelpers include NoPassword::WebTokens def edit if params[:token].present? token = verify_token(params[:token]) sign_in_session(token, true) end end def update result = sign_in_session(params[:token]) return result if result.present? response.status = :unprocessable_entity render turbo_stream: turbo_stream.update("notifications", partial: "notification") end private def sign_in_session(token, by_url = false) current_session = SessionManager.new.claim(token) flash.now.alert = t("flash.update.invalid_code.alert") if current_session.blank? result = if respond_to?(:after_sign_in!) after_sign_in!(current_session.present?, by_url, current_session&.return_url) elsif current_session.present? save_session_to_cookie(current_session) redirect_to(current_session.return_url || main_app.root_path) end result if result.present? end def save_session_to_cookie(current_session, key = nil, data = nil) session[session_key] = current_session.id session[session_key(key)] = data if key.present? && data.present? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
no_password_auth-0.2.1 | app/controllers/no_password/session_confirmations_controller.rb |