summaryrefslogtreecommitdiffstats
path: root/app/models/document.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-12-13 14:26:54 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-12-13 14:26:54 +0000
commitbb477a3a0fe71f0e15b78b6e0fafb017065fba26 (patch)
tree5fe5daa3d87fa80c93b0e77bc95552079a1389c5 /app/models/document.rb
parent6610bb6b6cbb1ef72787542063359de04fbab6be (diff)
downloadredmine-bb477a3a0fe71f0e15b78b6e0fafb017065fba26.tar.gz
redmine-bb477a3a0fe71f0e15b78b6e0fafb017065fba26.zip
Make sure users don't get notified for thing they can not view (#3589).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3169 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/document.rb')
-rw-r--r--app/models/document.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/models/document.rb b/app/models/document.rb
index 1318e823d..d2d20d05d 100644
--- a/app/models/document.rb
+++ b/app/models/document.rb
@@ -29,6 +29,10 @@ class Document < ActiveRecord::Base
validates_presence_of :project, :title, :category
validates_length_of :title, :maximum => 60
+ def visible?(user=User.current)
+ !user.nil? && user.allowed_to?(:view_documents, project)
+ end
+
def after_initialize
if new_record?
self.category ||= DocumentCategory.default
@@ -42,4 +46,11 @@ class Document < ActiveRecord::Base
end
@updated_on
end
+
+ # Returns the mail adresses of users that should be notified
+ def recipients
+ notified = project.notified_users
+ notified.reject! {|user| !visible?(user)}
+ notified.collect(&:mail)
+ end
end