Fix referer params for welcome page

This commit is contained in:
John Firebaugh 2013-08-08 16:34:10 -07:00
parent 3ca642271a
commit b825f4826a
2 changed files with 20 additions and 3 deletions

View file

@ -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"

View file

@ -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