diff --git a/app/controllers/public/content_viewer_controller.rb b/app/controllers/public/content_viewer_controller.rb index 519d006..e5107b1 100644 --- a/app/controllers/public/content_viewer_controller.rb +++ b/app/controllers/public/content_viewer_controller.rb @@ -93,7 +93,7 @@ class ContentViewerController < ApplicationController end if @page.folder? && @page.gallery? - @images = @page.images + @images = @page.images.select{ |a| a.display_to? user } @images = @images.paginate(:per_page => per_page, :page => params[:npage]) unless params[:slideshow] end diff --git a/test/functional/content_viewer_controller_test.rb b/test/functional/content_viewer_controller_test.rb index f103e79..14b8e87 100644 --- a/test/functional/content_viewer_controller_test.rb +++ b/test/functional/content_viewer_controller_test.rb @@ -587,6 +587,29 @@ class ContentViewerControllerTest < ActionController::TestCase assert_equal 2, assigns(:images).size end + should 'not display private images in the slideshow for unauthorized people' do + owner = create_user('owner').person + unauthorized = create_user('unauthorized').person + folder = Gallery.create!(:name => 'gallery', :profile => owner) + image1 = UploadedFile.create!(:profile => owner, :parent => folder, :uploaded_data => fixture_file_upload('/files/other-pic.jpg', 'image/jpg'), :published => false) + login_as('unauthorized') + get :view_page, :profile => owner.identifier, :page => folder.explode_path, :slideshow => true + assert_response :success + assert_equal 0, assigns(:images).length + end + + should 'not display private images thumbnails for unauthorized people' do + owner = create_user('owner').person + unauthorized = create_user('unauthorized').person + folder = Gallery.create!(:name => 'gallery', :profile => owner) + image1 = UploadedFile.create!(:profile => owner, :parent => folder, :uploaded_data => fixture_file_upload('/files/other-pic.jpg', 'image/jpg'), :published => false) + login_as('unauthorized') + get :view_page, :profile => owner.identifier, :page => folder.explode_path + assert_response :success + assert_select '.image-gallery-item', 0 + end + + should 'display default image in the slideshow if thumbnails were not processed' do @controller.stubs(:per_page).returns(1) folder = Gallery.create!(:name => 'gallery', :profile => profile) -- libgit2 0.21.2