Guest User

Untitled

a guest
Mar 9th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. -- user.rb
  2.  
  3. def password=(pwd)
  4. @password = pwd
  5. return if pwd.blank?
  6. create_new_salt
  7. self.hashed_password = User.encrypted_password(self.password, self.salt)
  8. end
  9.  
  10. private
  11.  
  12. def self.encrypted_password(password, salt)
  13. string_to_hash = password + "somerandomvalue" + salt
  14. Digest::SHA1.hexdigest(string_to_hash)
  15. end
  16.  
  17. def create_new_salt
  18. self.salt = self.object_id.to_s + rand.to_s
  19. end
  20.  
  21. -- account_controller.rb
  22.  
  23. def change_password
  24. @user = User.find_by_id(@login_id.id)
  25. if request.post?
  26. @user.password = params[:user_password]
  27. @user.update
  28. end
  29. end
  30.  
  31. When I access the console, I can generate a new password and save by doing this;
  32.  
  33. @user = User.find_by_id(5)
  34. @user.password = 'newpassword'
  35. @user.update
  36.  
  37. However, it does nothing in my controller. How can I make the new password change?
  38.  
  39. -- Rest of controller
  40.  
  41. class AccountController < ApplicationController
  42.  
  43. before_filter :authorize, :except => [ :login, :signup, :confirmation ]
  44.  
  45. def index
  46. end
  47.  
  48. def login
  49. session[:user_id] = nil
  50. if request.post?
  51. user = User.authenticate(params[:name], params[:password])
  52. if user
  53. session[:user_id] = user.id
  54. uri = session[:original_uri]
  55. session[:original_uri] = nil
  56. redirect_to(uri || { :controller => 'main' })
  57. else
  58. flash.now[:notice] = "Invalid user/password combination"
  59. end
  60. end
  61. end
  62.  
  63. def add_user
  64. check_admin
  65. @user = User.new(params[:user])
  66. if request.post? and @user.save
  67. flash.now[:notice] = "User #{@user.name} created"
  68. @user = User.new
  69. end
  70. end
  71.  
  72. def change_password
  73. @user = User.find_by_id(@login_id.id)
  74. if request.post?
  75. @user.password = params[:user_password]
  76. @user.update
  77. end
  78. end
  79.  
  80. def confirmation
  81. end
  82.  
  83. def delete_user
  84. check_admin
  85. if request.post?
  86. user = User.find(params[:id])
  87. begin
  88. user.destroy
  89. flash[:notice] = "User #{user.name} deleted"
  90. rescue Exception => e
  91. flash[:notice] = e.message
  92. end
  93. end
  94. redirect_to :action => 'list_users'
  95. end
  96.  
  97. def list_users
  98. check_admin
  99. @all_users = User.find(:all)
  100. end
  101.  
  102. def logout
  103. session[:user_id] = nil
  104. flash[:notice] = "Logged out"
  105. redirect_to(:controller => 'main')
  106. end
  107.  
  108. def signup
  109. @user = User.new(params[:user])
  110. if request.post? and @user.save_with_captcha
  111. user = User.find_by_name(@user.name)
  112. Account.deliver_signup_thanks(user)
  113. @user = User.new
  114. redirect_to :action => 'confirmation'
  115. end
  116. end
  117.  
  118. end
Add Comment
Please, Sign In to add comment