| 277 |
277 |
assert_visibility_match user, issues
|
| 278 |
278 |
end
|
| 279 |
279 |
|
|
280 |
def test_visible_scope_for_non_member_with_own_watch_issues_visibility
|
|
281 |
#Role.non_member.add_permission! :view_issues
|
|
282 |
Role.non_member.update_attribute :issues_visibility, 'own_watch'
|
|
283 |
user = User.find(9)
|
|
284 |
assert user.projects.empty?
|
|
285 |
own_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => user.id, :subject => 'Issue by non member')
|
|
286 |
watching_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue watched by non member')
|
|
287 |
watching_issue.add_watcher(user)
|
|
288 |
|
|
289 |
#assert_equal true, own_issue.visible?(user)
|
|
290 |
#assert_equal true, watching_issue.visible?(user)
|
|
291 |
assert_visibility_match user, [own_issue, watching_issue]
|
|
292 |
end
|
|
293 |
|
|
294 |
def test_visible_scope_for_non_member_with_own_watch_contributed_issues_visibility
|
|
295 |
#Role.non_member.add_permission! :view_issues
|
|
296 |
Role.non_member.update_attribute :issues_visibility, 'own_watch_contributed'
|
|
297 |
user = User.find(9)
|
|
298 |
assert user.projects.empty?
|
|
299 |
own_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => user.id, :subject => 'Issue by non member')
|
|
300 |
watching_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue watched by non member')
|
|
301 |
watching_issue.add_watcher(user)
|
|
302 |
watching_issue.reload
|
|
303 |
contributed_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue contributed by non member')
|
|
304 |
journal = contributed_issue.init_journal(user)
|
|
305 |
journal.notes = 'journal notes'
|
|
306 |
journal.save!
|
|
307 |
|
|
308 |
#assert_equal true, own_issue.visible?(user)
|
|
309 |
#assert_equal true, watching_issue.visible?(user)
|
|
310 |
#assert_equal true, contributed_issue.visible?(user)
|
|
311 |
assert_visibility_match user, [own_issue, watching_issue, contributed_issue]
|
|
312 |
end
|
|
313 |
|
| 280 |
314 |
def test_visible_scope_for_non_member_without_view_issues_permissions
|
| 281 |
315 |
# Non member user should not see issues without permission
|
| 282 |
316 |
Role.non_member.remove_permission!(:view_issues)
|
| ... | ... | |
| 331 |
365 |
:assigned_to => user.groups.first,
|
| 332 |
366 |
:is_private => true)
|
| 333 |
367 |
|
| 334 |
|
Role.find(2).update_attribute :issues_visibility, 'default'
|
| 335 |
|
issues = Issue.visible(User.find(8)).to_a
|
| 336 |
|
assert issues.any?
|
| 337 |
|
assert issues.include?(issue)
|
|
368 |
['default', 'own', 'own_watch', 'own_watch_contributed'].each do |issue_visibility|
|
|
369 |
Role.find(2).update_attribute :issues_visibility, issue_visibility
|
|
370 |
issues = Issue.visible(User.find(8)).to_a
|
|
371 |
assert issues.any?
|
|
372 |
assert_include issue, issues
|
|
373 |
end
|
|
374 |
end
|
| 338 |
375 |
|
| 339 |
|
Role.find(2).update_attribute :issues_visibility, 'own'
|
| 340 |
|
issues = Issue.visible(User.find(8)).to_a
|
|
376 |
def test_visible_scope_for_non_member_and_watcher_should_return_watching_issues
|
|
377 |
user = User.find(9)
|
|
378 |
assert user.projects.empty?
|
|
379 |
Role.non_member.add_permission!(:view_issues)
|
|
380 |
|
|
381 |
issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue visible to watcher', :is_private => true)
|
|
382 |
issue.add_watcher(user)
|
|
383 |
|
|
384 |
['own_watch', 'own_watch_contributed'].each do |issue_visibility|
|
|
385 |
Role.non_member.update_attribute :issues_visibility, issue_visibility
|
|
386 |
issues = Issue.visible(user).to_a
|
|
387 |
assert issues.any?
|
|
388 |
assert_include issue, issues
|
|
389 |
end
|
|
390 |
end
|
|
391 |
|
|
392 |
def test_visible_scope_for_non_member_and_contributer_should_return_contributing_issues
|
|
393 |
user = User.find(9)
|
|
394 |
assert user.projects.empty?
|
|
395 |
Role.non_member.add_permission!(:view_issues)
|
|
396 |
|
|
397 |
issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue visible to watcher', :is_private => true)
|
|
398 |
journal = issue.init_journal(user)
|
|
399 |
journal.notes = 'journal notes'
|
|
400 |
journal.save!
|
|
401 |
|
|
402 |
Role.non_member.update_attribute :issues_visibility, 'own_watch_contributed'
|
|
403 |
issues = Issue.visible(user).to_a
|
| 341 |
404 |
assert issues.any?
|
| 342 |
405 |
assert_include issue, issues
|
| 343 |
406 |
end
|