Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## page controller
- def save_article
- # TODO: validate the HTML coming in with hpricot
- # validate that the user is logged in
- unless logged_in?
- # save this request in the session for after login
- session[:r_request] = request
- session[:r_controller] = params[:controller]
- session[:r_action] = params[:action]
- # raise the NotLoggedIn exception to capture the login
- return raise(NotLoggedIn)
- end
- # (article revision saved here)
- end
- ## account controller
- def login
- session[:user] = User.first(:email=>params[:email], :password=>params[:password])
- if logged_in?
- flash[:notice] = "Welcome back, " + session[:user].name[/(\w\w\w+)/,1] + '!'
- # was this called from a NotLoggedIn exception?
- # if so, pick up where we left off
- unless session[:r_request].nil?
- r_request = session[:r_request]
- r_controller = session[:r_controller]
- r_action = session[:r_action]
- session[:r_request] = nil
- session[:r_controller] = nil
- session[:r_action] = nil
- # copy merb's dispather to run the original request
- controller = Object.full_const_get(r_controller.to_const_string).new(r_request, 200)
- controller._dispatch(r_action.to_sym)
- return controller.body#.to_yaml #(debuging)
- else
- return redirect(url(:home))
- end
- end
- flash[:error] = "Your login did not succeed, please try again."
- redirect url(:home)
- end
Add Comment
Please, Sign In to add comment