diff options
-rw-r--r-- | app/models/issue.rb | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb index 9ccf310e9..7da5c9fc7 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -152,20 +152,21 @@ class Issue < ActiveRecord::Base # 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) do |role, user| - visible = if user.logged? - case role.issues_visibility - when 'all' - true - when 'default' - !self.is_private? || (self.author == user || user.is_or_belongs_to?(assigned_to)) - when 'own' - self.author == user || user.is_or_belongs_to?(assigned_to) + visible = + if user.logged? + case role.issues_visibility + when 'all' + true + when 'default' + !self.is_private? || (self.author == user || user.is_or_belongs_to?(assigned_to)) + when 'own' + self.author == user || user.is_or_belongs_to?(assigned_to) + else + false + end else - false + !self.is_private? end - else - !self.is_private? - end unless role.permissions_all_trackers?(:view_issues) visible &&= role.permissions_tracker_ids?(:view_issues, tracker_id) end |