From: Jean-Philippe Lang Date: Sat, 9 Jul 2011 11:41:04 +0000 (+0000) Subject: Adds visibility condition on parent project in API. X-Git-Tag: 1.3.0~1716 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3c2ebd7aa2bd4663b0c4a4ab06906cd1554ed095;p=redmine.git Adds visibility condition on parent project in API. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6204 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/project.rb b/app/models/project.rb index c9d00e9b7..c3b553083 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -118,6 +118,11 @@ class Project < ActiveRecord::Base visible(user).find(:all, :limit => count, :order => "created_on DESC") end + # Returns true if the project is visible to +user+ or to the current user. + def visible?(user=User.current) + user.allowed_to?(:view_project, self) + end + def self.visible_by(user=nil) ActiveSupport::Deprecation.warn "Project.visible_by is deprecated and will be removed in Redmine 1.3.0. Use Project.visible_condition instead." visible_condition(user || User.current) diff --git a/app/views/projects/index.api.rsb b/app/views/projects/index.api.rsb index 121300c12..552c1f65e 100644 --- a/app/views/projects/index.api.rsb +++ b/app/views/projects/index.api.rsb @@ -5,7 +5,7 @@ api.array :projects, api_meta(:total_count => @project_count, :offset => @offset api.name project.name api.identifier project.identifier api.description project.description - api.parent(:id => project.parent_id, :name => project.parent.name) unless project.parent.nil? + api.parent(:id => project.parent.id, :name => project.parent.name) if project.parent && project.parent.visible? render_api_custom_values project.visible_custom_field_values, api diff --git a/app/views/projects/show.api.rsb b/app/views/projects/show.api.rsb index b35ffebbb..561896a64 100644 --- a/app/views/projects/show.api.rsb +++ b/app/views/projects/show.api.rsb @@ -4,7 +4,7 @@ api.project do api.identifier @project.identifier api.description @project.description api.homepage @project.homepage - api.parent(:id => @project.parent_id, :name => @project.parent.name) unless @project.parent.nil? + api.parent(:id => @project.parent.id, :name => @project.parent.name) if @project.parent && @project.parent.visible? render_api_custom_values @project.visible_custom_field_values, api