Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LOGIN CONTROLLER
- ----------------
- class LoginController < ApplicationController
- def index
- if @session[:valid]
- redirect_to :controller => "Admin"
- end
- end
- def validate_login(username, password)
- return true
- end
- def authenticate(username=params[:user][:username], password=params[:user][:password])
- if @session[:valid]
- redirect_to :controller => "Admin"
- return false
- end
- if @user = User.authenticate(username, password)
- @session[:valid] = true
- @session[:user_id] = @user.id
- @session[:username] = @user.username
- if @session[:return_to]
- redirect_to_path($session[:return_to])
- @session[:return_to] = nil
- else
- redirect_to :controller => "Admin"
- end
- else
- render :action => "index"
- end
- end
- def logout
- reset_session
- end
- end
- LOGIN MODEL
- -----------
- require 'digest/sha1'
- class User < ActiveRecord::Base
- validates_presence_of :username, :password
- def self.authenticate(username, password)
- if password
- sha1password = Digest::SHA1.hexdigest(password)
- else
- sha1password = ''
- end
- return find(:first, :conditions => [ "username = ? AND password = ?", username, sha1password ])
- end
- end
- LOGIN VIEW
- ----------
- <h1>Log In</h1>
- <% if flash[:alert] %>
- <div id="alert"><%= flash[:alert] %></div>
- <% end %>
- <%= start_form_tag :action => 'authenticate' %>
- <%= error_messages_for :user %>
- <!--[form:user]-->
- <p>
- <b>Username</b><br />
- <% if params[:user] %>
- <%= text_field "user", "username", :size => '20', :value => params[:user][:username] %>
- <% else %>
- <%= text_field "user", "username", :size => '20' %>
- <% end %>
- </p>
- <p>
- <b>Password</b><br />
- <%= password_field "user", "password", :size => "20" %>
- </p>
- <!--[eoform:login]-->
- <%= submit_tag "Login" %>
- <% end_form_tag %>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement