Do not show reasons for review team member unavailability outside the team. Fixes #2614. Commit ready for merge.

- Legacy-Id: 15683
This commit is contained in:
Russ Housley 2018-11-03 04:24:32 +00:00
parent 542a85d949
commit 6ff552640e
2 changed files with 27 additions and 6 deletions

View file

@ -114,6 +114,7 @@ class ReviewTests(TestCase):
ReviewerSettingsFactory(person=reviewer,team=team)
review_req1 = ReviewRequestFactory(state_id='completed',team=team,reviewer=reviewer.email())
RoleFactory(name_id='chair',person=reviewer,group=review_req1.doc.group)
PersonFactory(user__username='plain')
ReviewRequest.objects.create(
doc=review_req1.doc,
@ -146,10 +147,29 @@ class ReviewTests(TestCase):
self.assertTrue(unicode(reviewer) in unicontent(r))
self.assertTrue(review_req1.doc.name in unicontent(r))
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
# without a login, reason for being unavailable should not be seen
self.assertFalse("Availability" in unicontent(r))
self.client.login(username="plain", password="plain+password")
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
# not on review team, should not see reason for being unavailable
self.assertFalse("Availability" in unicontent(r))
self.client.login(username="chair", password="chair+password")
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
# review team members can see reason for being unavailable
self.assertTrue("Availability" in unicontent(r))
self.client.login(username="secretary", password="secretary+password")
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
# secretariat can see reason for being unavailable
self.assertTrue("Availability" in unicontent(r))
def test_manage_review_requests(self):
group = ReviewTeamFactory()
reviewer = RoleFactory(name_id='reviewer',group=group,person__user__username='reviewer').person

View file

@ -1376,11 +1376,12 @@ def reviewer_overview(request, acronym, group_type=None):
if group_type:
kwargs["group_type"] = group_type
person.settings_url = urlreverse("ietf.group.views.change_reviewer_settings", kwargs=kwargs)
person.unavailable_periods = unavailable_periods.get(person.pk, [])
person.completely_unavailable = any(p.availability == "unavailable"
and (p.start_date is None or p.start_date <= today) and (p.end_date is None or today <= p.end_date)
for p in person.unavailable_periods)
person.busy = person.id in days_needed
if can_access_review_stats_for_team(request.user, group):
person.unavailable_periods = unavailable_periods.get(person.pk, [])
person.completely_unavailable = any(p.availability == "unavailable"
and (p.start_date is None or p.start_date <= today) and (p.end_date is None or today <= p.end_date)
for p in person.unavailable_periods)
person.busy = person.id in days_needed
MAX_CLOSED_REQS = 10