Sha256: 3774b271a84e209384ae9c738337984ca9cbff05e03091f338731cedb7fa6ec3

Contents?: true

Size: 940 Bytes

Versions: 4

Compression:

Stored size: 940 Bytes

Contents

# frozen_string_literal: true

module Tramway::Auth
  module Web
    class SessionsController < ::Tramway::Auth::Web::ApplicationController
      before_action :redirect_if_signed_in, except: :destroy

      def new
        @session_form = ::Tramway::Auth::SessionForm.new ::Tramway::User::User.new
      end

      def create
        @session_form = ::Tramway::Auth::SessionForm.new ::Tramway::User::User.active.find_or_initialize_by email: params[:user][:email]
        if @session_form.validate params[:user]
          sign_in @session_form.model
          redirect_to ::Tramway::Auth.root_path
        else
          render :new
        end
      end

      def destroy
        sign_out
        redirect_to ::Tramway::Auth.root_path
      end

      private

      def redirect_if_signed_in
        redirect_to ::Tramway::Auth.root_path if signed_in? && request.env['PATH_INFO'] != ::Tramway::Auth.root_path
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tramway-auth-1.2.1 app/controllers/tramway/auth/web/sessions_controller.rb
tramway-auth-1.2 app/controllers/tramway/auth/web/sessions_controller.rb
tramway-auth-1.1.0.3 app/controllers/tramway/auth/web/sessions_controller.rb
tramway-auth-1.1.0.2 app/controllers/tramway/auth/web/sessions_controller.rb