Commit e65814561b427161cf3476e101efc3423aae4d30

Authored by Aurélio A. Heckert
Committed by Rodrigo Souto
1 parent 2249be1c

Do not redirect gest from restricted pages

ActionItem2540
app/controllers/public/content_viewer_controller.rb
... ... @@ -25,24 +25,26 @@ class ContentViewerController < ApplicationController
25 25 return
26 26 end
27 27 end
28   -
29   - # page not found, give error
30   - if @page.nil?
31   - render_not_found(@path)
32   - return
33   - end
34 28 end
35 29  
36   - if !@page.display_to?(user)
37   - if profile.display_info_to?(user) || !profile.visible?
38   - message = _('You are not allowed to view this content. You can contact the owner of this profile to request access then.')
  30 + if !@page.nil? && !@page.display_to?(user)
  31 + if !profile.public?
  32 + private_profile_partial_parameters
  33 + render :template => 'profile/_private_profile.rhtml', :status => 403
  34 + else #if !profile.visible?
  35 + message = _('You are not allowed to view this content.')
  36 + message += ' ' + _('You can contact the owner of this profile to request access then.')
39 37 render_access_denied(message)
40   - elsif !profile.public?
41   - redirect_to :controller => 'profile', :action => 'index', :profile => profile.identifier
42 38 end
43 39 return
44 40 end
45 41  
  42 + # page not found, give error
  43 + if @page.nil?
  44 + render_not_found(@path)
  45 + return
  46 + end
  47 +
46 48 if request.xhr? && params[:toolbar]
47 49 render :partial => 'article_toolbar'
48 50 return
... ...
app/controllers/public/profile_controller.rb
... ... @@ -368,14 +368,7 @@ class ProfileController < PublicController
368 368 end
369 369  
370 370 def private_profile
371   - if profile.person?
372   - @action = :add_friend
373   - @message = _("The content here is available to %s's friends only.") % profile.short_name
374   - else
375   - @action = :join
376   - @message = _('The contents in this community is available to members only.')
377   - end
378   - @no_design_blocks = true
  371 + private_profile_partial_parameters
379 372 end
380 373  
381 374 def invisible_profile
... ...
app/helpers/application_helper.rb
... ... @@ -1411,4 +1411,16 @@ module ApplicationHelper
1411 1411 options[:class] = "comment-footer comment-footer-link comment-footer-hide"
1412 1412 expirable_content_reference content, action, text, url, options
1413 1413 end
  1414 +
  1415 + def private_profile_partial_parameters
  1416 + if profile.person?
  1417 + @action = :add_friend
  1418 + @message = _("The content here is available to %s's friends only.") % profile.short_name
  1419 + else
  1420 + @action = :join
  1421 + @message = _('The contents in this community is available to members only.')
  1422 + end
  1423 + @no_design_blocks = true
  1424 + end
  1425 +
1414 1426 end
... ...