summaryrefslogtreecommitdiffstats
path: root/app/models/role.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/role.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/role.rb')
-rw-r--r--app/models/role.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/models/role.rb b/app/models/role.rb
index e0b18434e..38edd360d 100644
--- a/app/models/role.rb
+++ b/app/models/role.rb
@@ -19,6 +19,11 @@ class Role < ActiveRecord::Base
# Built-in roles
BUILTIN_NON_MEMBER = 1
BUILTIN_ANONYMOUS = 2
+
+ ISSUES_VISIBILITY_OPTIONS = [
+ ['default', :label_issues_visibility_all],
+ ['own', :label_issues_visibility_own]
+ ]
named_scope :givable, { :conditions => "builtin = 0", :order => 'position' }
named_scope :builtin, lambda { |*args|
@@ -43,7 +48,10 @@ class Role < ActiveRecord::Base
validates_presence_of :name
validates_uniqueness_of :name
validates_length_of :name, :maximum => 30
-
+ validates_inclusion_of :issues_visibility,
+ :in => ISSUES_VISIBILITY_OPTIONS.collect(&:first),
+ :if => lambda {|role| role.respond_to?(:issues_visibility)}
+
def permissions
read_attribute(:permissions) || []
end