Guest User

Untitled

a guest
Mar 1st, 2018
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. ## Model
  2. #Change a Users Password after they forgot it.
  3. def self.reset_pass ( username , user_email)
  4. user = User.find(:first, :conditions => ['username = ? and email = ?', username, user_email])
  5. if user.nil?
  6. return nil
  7. else
  8. #Send Reset Pass Email
  9. new_pass = User.random_string(10)
  10. user.password = new_pass
  11. user.password_confirmation = new_pass
  12. if user.save
  13. Notifications.deliver_reset_password( user )
  14. else
  15. return nil
  16. end
  17. end
  18. end
  19.  
  20. ## Mailer
  21. #Notifies the user of their new password when it is changed.
  22. def reset_password( c_user )
  23. @subject = '[Kollaborate] Your password has been reset'
  24. @body["username"] = c_user.username || ""
  25. @body["email"] = c_user.email || ""
  26. @body["password"] = c_user.password || "email support"
  27. @recipients = c_user.email || "sutto@sutto.net"
  28. @from = 'kollaborate@ninjahideout.com'
  29. @sent_on = Time.now
  30. @headers = {}
  31. end
  32.  
  33. ##Test
  34. #Check Reset Password
  35. def test_reset_password
  36. #First, try a false user
  37. assert_nil User.reset_pass( "asoihj", "eropwuir" )
  38. #Next, one which *should* work
  39. user = users(:admin_user)
  40. old_pass = user.password_hashed
  41. assert User.reset_pass( "sutto", "sutto@sutto.net" )
  42. user = User.find(:first, :conditions => ['username = ?', "sutto"])
  43. assert_not_equal old_pass, user.password_hashed
  44. end
  45.  
  46. ##Rake output:
  47. 1) Error:
  48. test_reset_password(NotificationsTest):
  49. NoMethodError: undefined method `username' for Mon Feb 05 22:12:31 +0900 2007:Ti
  50. me
  51. C:/ks/Kollaborate/site/trunk/config/../app/models/notifications.rb:6:in `res
  52. et_password'
  53. c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.1/lib/action_mailer/base.rb:
  54. 372:in `send'
  55. c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.1/lib/action_mailer/base.rb:
  56. 372:in `create!'
  57. c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.1/lib/action_mailer/base.rb:
  58. 365:in `initialize'
  59. c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.1/lib/action_mailer/base.rb:
  60. 324:in `new'
  61. c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.1/lib/action_mailer/base.rb:
  62. 324:in `method_missing'
  63. ./test/unit/notifications_test.rb:24:in `test_reset_password'
Add Comment
Please, Sign In to add comment