Guest User

Untitled

a guest
Jun 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. ## user_sessions_controller.rb
  2.  
  3. class UserSessionsController < ApplicationController
  4. before_filter :require_no_user, :only => [:new, :create]
  5. before_filter :require_user, :only => :destroy
  6.  
  7. def new
  8. @user_session = UserSession.new
  9. end
  10.  
  11. def create
  12. @user_session = UserSession.new(params[:user_session])
  13. if @user_session.save
  14. flash[:notice] = "Login successful"
  15. ## FIXME
  16. redirect_to @current_user
  17. else
  18. render :action => :new
  19. end
  20. end
  21.  
  22. def destroy
  23. current_user_session.destroy
  24. flash[:notice] = "Logout successful"
  25. redirect_to root_path
  26. end
  27. end
  28.  
  29. ## application_controller.rb
  30. # Filters added to this controller apply to all controllers in the application.
  31. # Likewise, all the methods added will be available for all controllers.
  32.  
  33. class ApplicationController < ActionController::Base
  34. helper :all # include all helpers, all the time
  35. helper_method :current_user_session, :current_user
  36. filter_parameter_logging :password, :password_confirmation
  37. protect_from_forgery # See ActionController::RequestForgeryProtection for details
  38.  
  39. private
  40. def current_user_session
  41. return @current_user_session if defined?(@current_user_session)
  42. @current_user_session = UserSession.find
  43. end
  44.  
  45. def current_user
  46. return @current_user if defined?(@current_user)
  47. @current_user = current_user_session && current_user_session.record
  48. end
  49.  
  50. def require_user
  51. unless current_user
  52. store_location
  53. flash[:notice] = "You must be logged in to access that page"
  54. redirect_to login_path
  55. end
  56. end
  57.  
  58. def require_no_user
  59. if current_user
  60. store_location
  61. flash[:notice] = "You must be logged out to access that page"
  62. redirect_to current_user
  63. return false
  64. end
  65. end
  66.  
  67. def store_location
  68. session[:return_to] = request.request_uri
  69. end
  70.  
  71. def redirect_back_or_default(default)
  72. redirect_to(session[:return_to] || default)
  73. session[:return_to] = nil
  74. end
  75. end
Add Comment
Please, Sign In to add comment