Commit 836e487565ed454d02cd3b71d769d3173324cfb6

Authored by Joenio Costa
Committed by Daniela Feitosa
1 parent 630b8afa

Redirecting to own domain if profile has one

(ActionItem2052)
lib/needs_profile.rb
@@ -22,7 +22,15 @@ module NeedsProfile @@ -22,7 +22,15 @@ module NeedsProfile
22 22
23 def load_profile 23 def load_profile
24 @profile ||= environment.profiles.find_by_identifier(params[:profile]) 24 @profile ||= environment.profiles.find_by_identifier(params[:profile])
25 - render_not_found unless @profile 25 + if @profile
  26 + profile_hostname = @profile.hostname
  27 + if profile_hostname && request.host == @environment.default_hostname
  28 + params.delete(:profile)
  29 + redirect_to(Noosfero.url_options.merge(params).merge(:host => profile_hostname))
  30 + end
  31 + else
  32 + render_not_found
  33 + end
26 end 34 end
27 35
28 end 36 end
test/functional/profile_controller_test.rb
@@ -1183,4 +1183,13 @@ class ProfileControllerTest < Test::Unit::TestCase @@ -1183,4 +1183,13 @@ class ProfileControllerTest < Test::Unit::TestCase
1183 end 1183 end
1184 end 1184 end
1185 1185
  1186 + should 'redirect to profile domain if it has one' do
  1187 + community = fast_create(Community, :name => 'community with domain')
  1188 + community.domains << Domain.new(:name => 'community.example.net')
  1189 + @request.stubs(:host).returns(community.environment.default_hostname)
  1190 + get :index, :profile => community.identifier
  1191 + assert_response :redirect
  1192 + assert_redirected_to :host => 'community.example.net'
  1193 + end
  1194 +
1186 end 1195 end