Sha256: 54a91676bb41fed0cf4f7773fa9a11af149b00381675cc9f9d417e2d07add5c2

Contents?: true

Size: 1.3 KB

Versions: 4

Compression:

Stored size: 1.3 KB

Contents

require_dependency "cally/application_controller"

module Cally
  class SessionController < ApplicationController
    def create
      user = User.find_by(email: params[:session][:email].downcase)
      
      # checks if the parameter email is connected to a user in the database
      # and the given password is correct
      # When this is all true then create a session variable with the user's id
      # and then returns to the page which you were on before the login form
      if user && user.authenticate(params[:session][:password]) 
        if user.update(last_logged_in_time: user.logged_in_time, logged_in_time: DateTime.current())
          session[:user_id] = user.id
          flash[:success] = "Welcome #{user.username}"
          
          if session[:return_to]
            redirect_to session[:return_to]
            session[:return_to] = nil
          else
            redirect_to user_path(user)
          end
        else 
          flash.now[:error] = "Error saving logged in time" 
          redirect_to login_path
        end
      else
        flash[:error] = "Error logging in"
        redirect_to login_path
      end
    end
 
    def destroy
      session[:user_id] = nil   
      reset_session     
      flash[:success] = "Successfully logged out"
      redirect_to login_path
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cally-1.0.3 app/controllers/cally/session_controller.rb
cally-1.0.2 app/controllers/cally/session_controller.rb
cally-1.0.1 app/controllers/cally/session_controller.rb
cally-1.0.0 app/controllers/cally/session_controller.rb