summaryrefslogtreecommitdiffstats
path: root/app/models/project.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-04-11 17:53:15 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-04-11 17:53:15 +0000
commitaa0d01b3d9f5ae5634eda73e1becd75cc4668f3e (patch)
tree8a2a59ba70b18777cf35940ff01b961709405893 /app/models/project.rb
parent5fd891aa72243e7fff19a05d080c921ae420eeeb (diff)
downloadredmine-aa0d01b3d9f5ae5634eda73e1becd75cc4668f3e.tar.gz
redmine-aa0d01b3d9f5ae5634eda73e1becd75cc4668f3e.zip
Adds an issues visibility level on roles (#7412).
It can be set so that users only see their own issues (created or assigned). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5416 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/project.rb')
-rw-r--r--app/models/project.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 4724b7465..6d1d8eae6 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -174,6 +174,13 @@ class Project < ActiveRecord::Base
if statement_by_role.empty?
"1=0"
else
+ if block_given?
+ statement_by_role.each do |role, statement|
+ if s = yield(role, user)
+ statement_by_role[role] = "(#{statement} AND (#{s}))"
+ end
+ end
+ end
"((#{base_statement}) AND (#{statement_by_role.values.join(' OR ')}))"
end
end