diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-07-06 16:57:04 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-07-06 16:57:04 +0000 |
commit | d48ea908761d6489640e39667034d6e43524aaa7 (patch) | |
tree | 953e0de7e90342502f236fb701d27eb9d8edd353 /app/models/query.rb | |
parent | da69f086e7e0f1cfafc808d0d1174160dc1aa4a9 (diff) | |
download | redmine-d48ea908761d6489640e39667034d6e43524aaa7.tar.gz redmine-d48ea908761d6489640e39667034d6e43524aaa7.zip |
Makes custom queries available through the REST API (#5737).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6186 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/query.rb')
-rw-r--r-- | app/models/query.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/query.rb b/app/models/query.rb index 786751c8c..a6fbe9b94 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -146,6 +146,16 @@ class Query < ActiveRecord::Base ] cattr_reader :available_columns + named_scope :visible, lambda {|*args| + user = args.shift || User.current + base = Project.allowed_to_condition(user, :view_issues, *args) + user_id = user.logged? ? user.id : 0 + { + :conditions => ["(#{table_name}.project_id IS NULL OR (#{base})) AND (#{table_name}.is_public = ? OR #{table_name}.user_id = ?)", true, user_id], + :include => :project + } + } + def initialize(attributes = nil) super attributes self.filters ||= { 'status_id' => {:operator => "o", :values => [""]} } @@ -168,7 +178,7 @@ class Query < ActiveRecord::Base # Returns true if the query is visible to +user+ or the current user. def visible?(user=User.current) - self.is_public? || self.user_id == user.id + (project.nil? || user.allowed_to?(:view_issues, project)) && (self.is_public? || self.user_id == user.id) end def editable_by?(user) |