From b825f4826ac1ce3382d168186d0e83ad2eeb0929 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 8 Aug 2013 16:34:10 -0700 Subject: [PATCH] Fix referer params for welcome page --- app/controllers/user_controller.rb | 13 ++++++++++--- test/functional/user_controller_test.rb | 10 ++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index d89d483f2..c3cd9fcf2 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -88,11 +88,18 @@ class UserController < ApplicationController if @user.save flash[:piwik_goal] = PIWIK_SIGNUP_GOAL if defined?(PIWIK_SIGNUP_GOAL) + referer = welcome_path + begin - referer_params = Rack::Utils.parse_query(URI(session[:referer]).query) - referer = welcome_path(referer_params.slice(:lat, :lon, :zoom, :editor)) + uri = URI(session[:referer]) + /map=(.*)\/(.*)\/(.*)/.match(uri.fragment) do |m| + editor = Rack::Utils.parse_query(uri.query).slice('editor') + referer = welcome_path({'zoom' => m[1], + 'lat' => m[2], + 'lon' => m[3]}.merge(editor)) + end rescue - referer = welcome_path + # Use default end if @user.status == "active" diff --git a/test/functional/user_controller_test.rb b/test/functional/user_controller_test.rb index c49073e68..cb40659a7 100644 --- a/test/functional/user_controller_test.rb +++ b/test/functional/user_controller_test.rb @@ -308,6 +308,16 @@ class UserControllerTest < ActionController::TestCase assert_select "form > fieldset > div.form-row > div.field_with_errors > input#user_display_name" end + def test_user_save_referer_params + user = new_user + + post :save, {}, {:new_user => user, + :referer => '/edit?editor=id#map=1/2/3'} + + assert_equal welcome_path(:editor => 'id', :zoom => 1, :lat => 2, :lon => 3), + user.tokens.first.referer + end + def test_user_confirm_expired_token user = users(:inactive_user) token = user.tokens.new -- 2.43.2