diff --git a/app/models/project.rb b/app/models/project.rb index c9d00e9..c3b5530 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 121300c..552c1f6 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 e08f77b..561896a 100644 --- a/app/views/projects/show.api.rsb +++ b/app/views/projects/show.api.rsb @@ -4,6 +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) if @project.parent && @project.parent.visible? render_api_custom_values @project.visible_custom_field_values, api