This repository has been archived on 2024-08-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
redstoner.com/app/controllers/sessions_controller.rb
2013-10-09 22:06:36 +02:00

48 lines
1.2 KiB
Ruby

class SessionsController < ApplicationController
require 'resolv'
def new
if current_user
redirect_to current_user
flash[:alert] = "You are already logged in!"
end
end
def create
unless current_user
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
hostname = ""
begin
hostname = Resolv.getname(request.remote_ip)
rescue
hostname = ""
end
user.last_ip = "#{request.remote_ip} | #{hostname}"
user.last_login = Time.now
user.save
if user.disabled?
flash[:alert] = "This user has been disabled!"
redirect_to login_path
elsif user.banned?
flash[:alert] = "You are banned!"
redirect_to user
else
session[:user_id] = user.id
redirect_to root_path, :notice => "Logged in!"
end
else
flash[:alert] = "You're doing it wrong!"
render action: 'new'
end
else
redirect_to current_user
flash[:alert] = "You are already logged in!"
end
end
def destroy
session.delete(:user_id)
redirect_to login_path, :notice => "Logged out!"
end
end