summaryrefslogtreecommitdiffstats
path: root/app/models/issue_custom_field.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2013-07-13 09:20:11 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2013-07-13 09:20:11 +0000
commit628d05629b734371d3e850a95dadf0be30c5ef20 (patch)
tree58a9da4e8266ee45a0800996f9228e9d2a45108c /app/models/issue_custom_field.rb
parenta74d55edd99a4bae23e7d9cbd76136ffa7707ccf (diff)
downloadredmine-628d05629b734371d3e850a95dadf0be30c5ef20.tar.gz
redmine-628d05629b734371d3e850a95dadf0be30c5ef20.zip
Role-based issue custom field visibility (#5037).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12012 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/issue_custom_field.rb')
-rw-r--r--app/models/issue_custom_field.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/models/issue_custom_field.rb b/app/models/issue_custom_field.rb
index e7ea9c0b3..9ddedc882 100644
--- a/app/models/issue_custom_field.rb
+++ b/app/models/issue_custom_field.rb
@@ -23,5 +23,13 @@ class IssueCustomField < CustomField
def type_name
:label_issue_plural
end
-end
+ def visible_by?(project, user=User.current)
+ visible? || user.admin? || (roles & user.roles_for_project(project)).present?
+ end
+
+ def validate_custom_field
+ super
+ errors.add(:base, l(:label_role_plural) + ' ' + l('activerecord.errors.messages.blank')) unless visible? || roles.present?
+ end
+end