Sha256: 1f36cf0f5a69d96b659bcec51962f51593d956b5d6c0cfff85b618b834ca09fd

Contents?: true

Size: 1.26 KB

Versions: 6

Compression:

Stored size: 1.26 KB

Contents

module Caboose
  class LoginController < Caboose::ApplicationController
    layout 'caboose/modal'
    
    # GET /login
    def index
      @return_url = params[:return_url].nil? ? "/" : params[:return_url];
      redirect_to @return_url if logged_in?
    end
    
    # POST /login
    def login
      
      @resp = StdClass.new('error' => '', 'redirect' => '')
      @return_url = params[:return_url].nil? ? "/" : params[:return_url]
      
      if (logged_in?)
        @resp.error = "Already logged in"
      else
        @username = params[:username]
        @password = params[:password]
                           
        if (@username.nil? || @password.nil? || @password.strip.length == 0)
          @resp.error = "Invalid credentials"
        else
          
          @password = Digest::SHA1.hexdigest(Caboose::salt + @password)
          user = User.where(:username => @username, :password => @password).first
          if (user.nil?)
            user = User.where(:email => @username, :password => @password).first
          end
          
          if (user.nil?)
            @resp.error = "Invalid credentials"
          else
            login_user(user)
            @resp.redirect = @return_url
          end
        end
      end
      render json: @resp
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
caboose-cms-0.2.6 app/controllers/caboose/login_controller.rb
caboose-cms-0.2.5 app/controllers/caboose/login_controller.rb
caboose-cms-0.2.4 app/controllers/caboose/login_controller.rb
caboose-cms-0.2.2 app/controllers/caboose/login_controller.rb
caboose-cms-0.2.1 app/controllers/caboose/login_controller.rb
caboose-cms-0.1.102 app/controllers/caboose/login_controller.rb