Advertisement
Guest User

Untitled

a guest
Jul 30th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. Model :
  2.  
  3. require "digest/sha1"
  4. class User < ActiveRecord::Base
  5. attr_accessor :password
  6. attr_accessible :name, :password
  7. validates_uniqueness_of :name
  8. validates_presence_of :name , :password
  9. def before_create
  10. self.hashed_password = User.hash_password(self.password)
  11. end
  12. def after_create
  13. @password = nil
  14. end
  15. private
  16. def self.hash_password(password)
  17. Digest::SHA1.hexdigest(password)
  18. end
  19. def self.login(name, password)
  20. hashed_password = hash_password(password || "")
  21. find(:first,
  22. :conditions => ["name = ? and hashed_password = ?",name, hashed_password])
  23. end
  24. def try_to_login
  25. User.login(self.name,self.password) ||
  26. User.find_by_name_and_hashed_password(name, "")
  27. end
  28.  
  29.  
  30. controller :
  31. class LoginController < ApplicationController
  32. layout "admin"
  33. def add_user
  34. if request.get?
  35. @user = User.new
  36. else
  37. @user = User.new(params[:user])
  38. if @user.save
  39. redirect_to_index("User #{@user.name} created")
  40. end
  41. end
  42. end
  43.  
  44. def login
  45. if request.get?
  46. session[:user_id] = nil
  47. @user = User.new
  48. else
  49. @user = User.new(params[:user])
  50. logged_in_user = @user.try_to_login
  51. if logged_in_user
  52. session[:user_id] = logged_in_user.id
  53. redirect_to(:action => index)
  54. else
  55. flash[:notice] = "Nom d'utilisateur ou mot de passe invalide"
  56. end
  57. end
  58. end
  59.  
  60. def index
  61. end
  62.  
  63. def logout
  64. end
  65.  
  66. def delete_user
  67. end
  68.  
  69. def list_users
  70. end
  71. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement