if @project
return number_of_rows_on_project(@project)
else
- Project.roots.inject(0) do |total, project|
+ Project.roots.visible.inject(0) do |total, project|
total += number_of_rows_on_project(project)
end
end
end
# Subprojects
- project.children.each do |subproject|
+ project.children.visible.each do |subproject|
count += number_of_rows_on_project(subproject)
end
if @project
output << render_project(@project, options)
else
- Project.roots.each do |project|
+ Project.roots.visible.each do |project|
output << render_project(project, options)
end
end
if @project
output << render_project(@project, options)
else
- Project.roots.each do |project|
+ Project.roots.visible.each do |project|
output << render_project(project, options)
end
end
end
# Fourth, subprojects
- project.children.each do |project|
+ project.children.visible.each do |project|
subproject_rendering = render_project(project, options)
output << subproject_rendering if options[:format] == :html
end
assert_nil assigns(:gantt).project
end
+ should "not disclose private projects" do
+ get :show
+ assert_response :success
+ assert_template 'show.html.erb'
+
+ assert_tag 'a', :content => /eCookbook/
+ # Root private project
+ assert_no_tag 'a', {:content => /OnlineStore/}
+ # Private children of a public project
+ assert_no_tag 'a', :content => /Private child of eCookbook/
+ end
+
should "export to pdf" do
get :show, :project_id => 1, :format => 'pdf'
assert_response :success