Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. devise_for :users, :controllers => {:registrations => "registrations", sessions: "sessions", passwords: "passwords"}
  2.  
  3. class PasswordsController < Devise::RegistrationsController
  4.  
  5. # binding.pry
  6. # POST /resource/password
  7. def create
  8. if params[:email].blank?
  9. render_error_empty_field and return
  10. end
  11.  
  12. if user = User.find_by_email(params[:email])
  13. user.reset_password_token = SecureRandom.uuid
  14. if user.save
  15. if PasswordMailer.reset_password(user, params[:app_base_url]).deliver_now
  16. user.reset_password_sent_at = Time.now
  17. if user.save
  18. render_success
  19. else
  20. render_error
  21. end
  22. else
  23. render_error
  24. end
  25. else
  26. render_error
  27. end
  28. else
  29. render_error
  30. end
  31. end
  32.  
  33. def update
  34. #check if token match db if token match db then update password
  35. if user = User.where(reset_password_token: params[:reset_password_token])
  36. if params[:password] == params[:password_confirmation]
  37. if user.update(password: params[:password]).encrypted_password
  38. render_success
  39. else
  40. render_error
  41. end
  42. else
  43. render_error
  44. end
  45. else
  46. render_error
  47. end
  48. end
  49.  
  50.  
  51. private
  52.  
  53. # TODO change just one big method render_error with different cases
  54.  
  55. def render_success
  56. render json: { success: "You will receive an email with instructions on how to reset your password in a few minutes." }
  57. end
  58.  
  59. def render_error
  60. render json: { error: "Ce compte n'existe pas." }
  61. end
  62. def render_error_empty_field
  63. render json: { error: "Merci d'entrer un email" }
  64. end
  65. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement