Sha256: 4e7e51cd6798e495853b1756cb749e4c8f545db8046aa85f4ef518afdf994910

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

if defined?(ApplicationController)
  class SessionsController < ApplicationController
    if respond_to?(:before_action)
      # Rails >= 4.0
      before_action :destroy_session, except: :create
    else
      # Rails <= 3.2
      before_filter :destroy_session, except: :create
    end

    unloadable

    # GET /login
    # GET /sign-in
    def new
      @session = Challah::Session.new(request)
    end

    # POST /login
    # POST /sign-in
    def create
      @session = Challah::Session.new(request, params[:session])
      @session.ip = request.remote_ip

      if @session.save
        redirect_to return_to_path
      else
        redirect_to signin_path, alert: I18n.translate('sessions.create.failed_login')
      end
    end

    # GET /logout
    # GET /sign-out
    def destroy
      redirect_to signin_path
    end

    protected

    def destroy_session
      current_user_session.destroy
    end

    def return_to_path(default_path = '/')
      result = session[:return_to]
      result = nil if result and result == "http://#{request.domain}/"
      result || default_path
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
challah-1.3.0 app/controllers/sessions_controller.rb