sessions_controller.rb 1015 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. class SessionsController < Devise::SessionsController
  2. after_filter :set_logged_in, only: :create
  3. before_filter :unset_logged_in, only: :destroy
  4. def set_logged_in
  5. if (user_signed_in?)
  6. # Sets a "permanent" cookie (which expires in 20 years from now).
  7. cookies.permanent[:logged_in] = "I <3 EFF"
  8. end
  9. end
  10. def unset_logged_in
  11. cookies.delete(:logged_in)
  12. end
  13. def destroy
  14. super
  15. flash.delete(:notice)
  16. end
  17. def create
  18. super do
  19. if current_user.password_expired?
  20. # thrust the user to a change password page....
  21. # Create a reset token
  22. # redirect to the reset page token... which can't be done because that
  23. # only goes through the mail...
  24. redirect_to "/sessions/password_reset"
  25. end
  26. end
  27. end
  28. def password_reset
  29. if user_signed_in?
  30. @user = current_user
  31. else
  32. # Should never end up here
  33. redirect_to "/", flash: { notice: "You need to be logged in to reset your password!" }
  34. end
  35. end
  36. end