summaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-03-15 16:00:39 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-03-15 16:00:39 +0000
commitfba3d5d327c459486dfaddb296f0e0673df0de66 (patch)
tree15b2bf630b68cdda949977bf8f36aeae63ce0e09 /app/models
parent5f889932b6ce810707867e3c55cf9da438fe3518 (diff)
downloadredmine-fba3d5d327c459486dfaddb296f0e0673df0de66.tar.gz
redmine-fba3d5d327c459486dfaddb296f0e0673df0de66.zip
Adds Issue#visible_condition to build issue visibility statement.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5141 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
-rw-r--r--app/models/issue.rb7
-rw-r--r--app/models/query.rb2
2 files changed, 7 insertions, 2 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 92ab64a8c..08d97bcdf 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -60,7 +60,7 @@ class Issue < ActiveRecord::Base
validates_numericality_of :estimated_hours, :allow_nil => true
named_scope :visible, lambda {|*args| { :include => :project,
- :conditions => Project.allowed_to_condition(args.first || User.current, :view_issues) } }
+ :conditions => Issue.visible_condition(args.first || User.current) } }
named_scope :open, :conditions => ["#{IssueStatus.table_name}.is_closed = ?", false], :include => :status
@@ -86,6 +86,11 @@ class Issue < ActiveRecord::Base
after_save :reschedule_following_issues, :update_nested_set_attributes, :update_parent_attributes, :create_journal
after_destroy :update_parent_attributes
+ # Returns a SQL conditions string used to find all issues visible by the specified user
+ def self.visible_condition(user, options={})
+ Project.allowed_to_condition(user, :view_issues, options)
+ end
+
# Returns true if usr or current user is allowed to view the issue
def visible?(usr=nil)
(usr || User.current).allowed_to?(:view_issues, self.project)
diff --git a/app/models/query.rb b/app/models/query.rb
index 057626885..3b1b53cc2 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -411,7 +411,7 @@ class Query < ActiveRecord::Base
elsif project
project_clauses << "#{Project.table_name}.id = %d" % project.id
end
- project_clauses << Project.allowed_to_condition(User.current, :view_issues)
+ project_clauses << Issue.visible_condition(User.current)
project_clauses.join(' AND ')
end