Advertisement
Guest User

Untitled

a guest
Jul 30th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. # login_controller.rb
  2.  
  3. def login
  4. session[:user_id]=nil
  5. user=User.login(params[:email],params[:password])
  6. if user
  7. session[:user_id]=user.id
  8. session[:user_email]=user.email
  9. redirect_to(:controller=>:list)
  10. else
  11. flash[:notice]="Invalid user/password combination"
  12. end
  13. end
  14.  
  15. #user.rb (model)
  16.  
  17. require 'digest/sha1'
  18.  
  19. class User < ActiveRecord::Base
  20. has_many :stores
  21. validates_presence_of :firstname,:lastname, :password, :email
  22. validates_uniqueness_of :email
  23. validates_length_of :password, :minimum=>5, :message=>"should be at least 5 characters long"
  24.  
  25. attr_accessor :password_confirmation
  26. validates_confirmation_of :password
  27.  
  28. def self.login(email, password)
  29. user = self.find_by_email(email)
  30. if user
  31. expected_password = encrypted_password(password, user.salt)
  32. if user.hashed_password != expected_password
  33. user=nil
  34. end
  35. end
  36. user
  37. end
  38.  
  39. def password
  40. @password
  41. end
  42.  
  43. def password=(pwd)
  44. @password=pwd
  45. create_new_salt
  46. self.hashed_password = User.encrypted_password(self.password, self.salt)
  47. end
  48.  
  49. private
  50.  
  51. def create_new_salt
  52. self.salt = self.object_id.to_s rand.to_s
  53. end
  54.  
  55. def self.encrypted_password(password, salt)
  56. string_to_hash = password "arg0rulz" salt
  57. Digest::SHA1.hexdigest(string_to_hash)
  58. end
  59. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement