Fixed that relations to issues that are not visible are displayed in the issue history (#1005).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12014 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
5fbc7f8f1f
commit
7509dda1ff
|
@ -53,12 +53,15 @@ class Journal < ActiveRecord::Base
|
|||
(details.empty? && notes.blank?) ? false : super
|
||||
end
|
||||
|
||||
# Returns journal details that are visible to user
|
||||
def visible_details(user=User.current)
|
||||
details.select do |detail|
|
||||
if detail.property == 'cf'
|
||||
field_id = detail.prop_key
|
||||
field = CustomField.find_by_id(field_id)
|
||||
field && field.visible_by?(project, user)
|
||||
elsif detail.property == 'relation'
|
||||
Issue.find_by_id(detail.value || detail.old_value).try(:visible?, user)
|
||||
else
|
||||
true
|
||||
end
|
||||
|
|
|
@ -175,4 +175,23 @@ class JournalTest < ActiveSupport::TestCase
|
|||
assert_equal '0', j.old_value
|
||||
assert_equal '0', j.value
|
||||
end
|
||||
|
||||
def test_visible_details_should_include_relations_to_visible_issues_only
|
||||
issue = Issue.generate!
|
||||
visible_issue = Issue.generate!
|
||||
IssueRelation.create!(:issue_from => issue, :issue_to => visible_issue, :relation_type => 'relates')
|
||||
hidden_issue = Issue.generate!(:is_private => true)
|
||||
IssueRelation.create!(:issue_from => issue, :issue_to => hidden_issue, :relation_type => 'relates')
|
||||
issue.reload
|
||||
assert_equal 1, issue.journals.size
|
||||
journal = issue.journals.first
|
||||
assert_equal 2, journal.details.size
|
||||
|
||||
visible_details = journal.visible_details(User.anonymous)
|
||||
assert_equal 1, visible_details.size
|
||||
assert_equal visible_issue.id.to_s, visible_details.first.value
|
||||
|
||||
visible_details = journal.visible_details(User.find(2))
|
||||
assert_equal 2, visible_details.size
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue