Module: Merb::AuthenticatedHelper

Defined in:
lib/merb-auth-more/mixins/redirect_back.rb

Instance Method Summary collapse

Instance Method Details

#redirect_back_or(default_url, opts = {}) ⇒ Object

Add a helper to do the redirect_back_or for you. Also tidies up the session afterwards If there has been a failed login attempt on some page using this method you’ll be redirected back to that page. Otherwise redirect to the default_url

To make sure you’re not redirected back to the login page after a failed then successful login, you can include an ignore url. Basically, if the return url == the ignore url go to the default_url

set the ignore url via an :ignore option in the opts hash.



27
28
29
30
31
32
33
34
35
# File 'lib/merb-auth-more/mixins/redirect_back.rb', line 27

def redirect_back_or(default_url, opts = {})
  if !session[:return_to].blank? && ![opts[:ignore]].flatten.include?(session[:return_to].first)
    redirect session[:return_to].first, opts
    session[:return_to] = nil
  else
    redirect default_url, opts
  end
  "Redirecting to <a href='#{default_url}'>#{default_url}</a>"
end