diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 21653b3e4..33902ccc4 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -577,19 +577,19 @@ class ApplicationController < ActionController::Base end def redirect_back_or_default(default, options={}) - back_url = '' #params[:back_url].to_s + back_url = params[:back_url].to_s if back_url.present? begin uri = URI.parse(back_url) # do not redirect user to another host or to the login or register page if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)}) - back_url = back_url.gsub(%r{\/users\/(\d+)},"/users/"+default.id.to_s) if default.is_a?(:User) + back_url = back_url.gsub(%r{\/users\/(\d+)},"/users/"+default.id.to_s) if default.is_a?(User) redirect_to(back_url) return end rescue URI::InvalidURIError logger.warn("Could not redirect to invalid URL #{back_url}") - # redirect to default + redirect to default end elsif options[:referer] redirect_to_referer_or default