Commit 836e487565ed454d02cd3b71d769d3173324cfb6
Committed by
Daniela Feitosa
1 parent
630b8afa
Exists in
master
and in
29 other branches
Redirecting to own domain if profile has one
(ActionItem2052)
Showing
2 changed files
with
18 additions
and
1 deletions
Show diff stats
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 |