Don't show hidden notes to non-moderators in the user notes list
Fixes #921
This commit is contained in:
parent
caa1a0128a
commit
5dc3e5b48a
4 changed files with 73 additions and 1 deletions
|
@ -283,7 +283,9 @@ class NotesController < ApplicationController
|
||||||
@description = t "note.mine.subheading", :user => render_to_string(:partial => "user", :object => @this_user)
|
@description = t "note.mine.subheading", :user => render_to_string(:partial => "user", :object => @this_user)
|
||||||
@page = (params[:page] || 1).to_i
|
@page = (params[:page] || 1).to_i
|
||||||
@page_size = 10
|
@page_size = 10
|
||||||
@notes = @this_user.notes.order("updated_at DESC, id").uniq.offset((@page - 1) * @page_size).limit(@page_size).preload(:comments => :author).to_a
|
@notes = @this_user.notes
|
||||||
|
@notes = @notes.visible unless @user && @user.moderator?
|
||||||
|
@notes = @notes.order("updated_at DESC, id").uniq.offset((@page - 1) * @page_size).limit(@page_size).preload(:comments => :author).to_a
|
||||||
else
|
else
|
||||||
@title = t "user.no_such_user.title"
|
@title = t "user.no_such_user.title"
|
||||||
@not_found_user = params[:display_name]
|
@not_found_user = params[:display_name]
|
||||||
|
|
|
@ -872,9 +872,24 @@ class NotesControllerTest < ActionController::TestCase
|
||||||
def test_mine_success
|
def test_mine_success
|
||||||
get :mine, :display_name => "test"
|
get :mine, :display_name => "test"
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_select "table.note_list tr", :count => 2
|
||||||
|
|
||||||
get :mine, :display_name => "pulibc_test2"
|
get :mine, :display_name => "pulibc_test2"
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_select "table.note_list tr", :count => 3
|
||||||
|
|
||||||
|
get :mine, :display_name => "non-existent"
|
||||||
|
assert_response :not_found
|
||||||
|
|
||||||
|
session[:user] = users(:moderator_user).id
|
||||||
|
|
||||||
|
get :mine, :display_name => "test"
|
||||||
|
assert_response :success
|
||||||
|
assert_select "table.note_list tr", :count => 2
|
||||||
|
|
||||||
|
get :mine, :display_name => "pulibc_test2"
|
||||||
|
assert_response :success
|
||||||
|
assert_select "table.note_list tr", :count => 4
|
||||||
|
|
||||||
get :mine, :display_name => "non-existent"
|
get :mine, :display_name => "non-existent"
|
||||||
assert_response :not_found
|
assert_response :not_found
|
||||||
|
|
9
test/fixtures/note_comments.yml
vendored
9
test/fixtures/note_comments.yml
vendored
|
@ -113,3 +113,12 @@ t13:
|
||||||
event: closed
|
event: closed
|
||||||
created_at: 2007-03-01 00:00:00
|
created_at: 2007-03-01 00:00:00
|
||||||
author_id: 4
|
author_id: 4
|
||||||
|
|
||||||
|
t14:
|
||||||
|
id: 14
|
||||||
|
note_id: 8
|
||||||
|
visible: true
|
||||||
|
event: commented
|
||||||
|
created_at: 2007-02-01 00:00:00
|
||||||
|
author_id: 4
|
||||||
|
body: 'A comment description'
|
||||||
|
|
46
test/fixtures/notes.yml
vendored
46
test/fixtures/notes.yml
vendored
|
@ -65,3 +65,49 @@ note_closed_by_user:
|
||||||
created_at: 2007-01-01 00:00:00
|
created_at: 2007-01-01 00:00:00
|
||||||
updated_at: 2007-03-01 00:00:00
|
updated_at: 2007-03-01 00:00:00
|
||||||
closed_at: 2007-03-01 00:00:00
|
closed_at: 2007-03-01 00:00:00
|
||||||
|
|
||||||
|
hidden_note_with_comment:
|
||||||
|
id: 4
|
||||||
|
latitude: <%= 1.3*SCALE %>
|
||||||
|
longitude: <%= 1.3*SCALE %>
|
||||||
|
status: hidden
|
||||||
|
tile: <%= QuadTile.tile_for_point(1.3,1.3) %>
|
||||||
|
created_at: 2007-01-01 00:00:00
|
||||||
|
updated_at: 2007-03-01 00:00:00
|
||||||
|
|
||||||
|
note_with_hidden_comment:
|
||||||
|
id: 5
|
||||||
|
latitude: <%= 1.4*SCALE %>
|
||||||
|
longitude: <%= 1.4*SCALE %>
|
||||||
|
status: open
|
||||||
|
tile: <%= QuadTile.tile_for_point(1.4,1.4) %>
|
||||||
|
created_at: 2007-01-01 00:00:00
|
||||||
|
updated_at: 2007-03-01 00:00:00
|
||||||
|
|
||||||
|
note_with_comments_by_users:
|
||||||
|
id: 6
|
||||||
|
latitude: <%= 1.5*SCALE %>
|
||||||
|
longitude: <%= 1.5*SCALE %>
|
||||||
|
status: open
|
||||||
|
tile: <%= QuadTile.tile_for_point(1.5,1.5) %>
|
||||||
|
created_at: 2007-01-01 00:00:00
|
||||||
|
updated_at: 2007-03-01 00:00:00
|
||||||
|
|
||||||
|
note_closed_by_user:
|
||||||
|
id: 7
|
||||||
|
latitude: <%= 1.6*SCALE %>
|
||||||
|
longitude: <%= 1.6*SCALE %>
|
||||||
|
status: closed
|
||||||
|
tile: <%= QuadTile.tile_for_point(1.6,1.6) %>
|
||||||
|
created_at: 2007-01-01 00:00:00
|
||||||
|
updated_at: 2007-03-01 00:00:00
|
||||||
|
closed_at: 2007-03-01 00:00:00
|
||||||
|
|
||||||
|
hidden_note_with_comment_by_user:
|
||||||
|
id: 8
|
||||||
|
latitude: <%= 1.3*SCALE %>
|
||||||
|
longitude: <%= 1.3*SCALE %>
|
||||||
|
status: hidden
|
||||||
|
tile: <%= QuadTile.tile_for_point(1.3,1.3) %>
|
||||||
|
created_at: 2007-01-01 00:00:00
|
||||||
|
updated_at: 2007-03-01 00:00:00
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue