Sha256: 1bb1062ec3b97be9fadb9a44324868146a4e57d7a704eb58ac805697730b3914
Contents?: true
Size: 1.44 KB
Versions: 2
Compression:
Stored size: 1.44 KB
Contents
# frozen_string_literal: true module Maquina class SessionsController < ApplicationController allow_unauthenticated_access only: [:new, :create] layout "maquina/sessions" before_action :ensure_user_exists, only: :new def new @user = Maquina::User.new end def create reset_session @user = Maquina::User.authenticate_by(email: params.dig(:email), password: params.dig(:password)) if @user.present? active_session = start_new_session_for(@user) if active_session.present? return redirect_to(calculate_redirect_path(active_session), notice: t("flash.sessions.create.notice"), status: :see_other) end end @user = Maquina::User.new(email: params.dig(:email)) flash.now.alert = t("flash.sessions.create.alert") render :new, status: :unprocessable_entity end def destroy reset_session Maquina::Current.reset flash.notice = t("flash.sessions.destroy.notice") redirect_to main_app.sign_in_path, status: :see_other end private def ensure_user_exists redirect_to maquina.first_run_url if Maquina::User.none? end def calculate_redirect_path(active_session) return maquina.new_multifactor_path if active_session.user.multifactor? return active_session.return_url if active_session.return_url.present? active_session.user.management? ? maquina.root_path : main_app.root_path end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
maquina-0.5.2 | app/controllers/maquina/sessions_controller.rb |
maquina-0.5.1 | app/controllers/maquina/sessions_controller.rb |