Advertisement
Guest User

Untitled

a guest
Jul 31st, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. LOGIN CONTROLLER
  2. ----------------
  3.  
  4. class LoginController < ApplicationController
  5. def index
  6. if @session[:valid]
  7. redirect_to :controller => "Admin"
  8. end
  9. end
  10.  
  11. def validate_login(username, password)
  12. return true
  13. end
  14.  
  15. def authenticate(username=params[:user][:username], password=params[:user][:password])
  16. if @session[:valid]
  17. redirect_to :controller => "Admin"
  18. return false
  19. end
  20.  
  21. if @user = User.authenticate(username, password)
  22. @session[:valid] = true
  23. @session[:user_id] = @user.id
  24. @session[:username] = @user.username
  25. if @session[:return_to]
  26. redirect_to_path($session[:return_to])
  27. @session[:return_to] = nil
  28. else
  29. redirect_to :controller => "Admin"
  30. end
  31. else
  32. render :action => "index"
  33. end
  34. end
  35.  
  36.  
  37. def logout
  38. reset_session
  39. end
  40. end
  41.  
  42.  
  43.  
  44. LOGIN MODEL
  45. -----------
  46.  
  47. require 'digest/sha1'
  48.  
  49. class User < ActiveRecord::Base
  50. validates_presence_of :username, :password
  51. def self.authenticate(username, password)
  52. if password
  53. sha1password = Digest::SHA1.hexdigest(password)
  54. else
  55. sha1password = ''
  56. end
  57. return find(:first, :conditions => [ "username = ? AND password = ?", username, sha1password ])
  58. end
  59. end
  60.  
  61.  
  62.  
  63. LOGIN VIEW
  64. ----------
  65.  
  66. <h1>Log In</h1>
  67.  
  68. <% if flash[:alert] %>
  69. <div id="alert"><%= flash[:alert] %></div>
  70. <% end %>
  71.  
  72. <%= start_form_tag :action => 'authenticate' %>
  73. <%= error_messages_for :user %>
  74.  
  75. <!--[form:user]-->
  76. <p>
  77. <b>Username</b><br />
  78. <% if params[:user] %>
  79. <%= text_field "user", "username", :size => '20', :value => params[:user][:username] %>
  80. <% else %>
  81. <%= text_field "user", "username", :size => '20' %>
  82. <% end %>
  83. </p>
  84. <p>
  85. <b>Password</b><br />
  86. <%= password_field "user", "password", :size => "20" %>
  87. </p>
  88. <!--[eoform:login]-->
  89. <%= submit_tag "Login" %>
  90. <% end_form_tag %>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement