Skip to content

Commit 6ff5526

Browse files
committed
Do not show reasons for review team member unavailability outside the team. Fixes ietf-tools#2614. Commit ready for merge.
- Legacy-Id: 15683
1 parent 542a85d commit 6ff5526

2 files changed

Lines changed: 27 additions & 6 deletions

File tree

ietf/group/tests_review.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ def test_reviewer_overview(self):
114114
ReviewerSettingsFactory(person=reviewer,team=team)
115115
review_req1 = ReviewRequestFactory(state_id='completed',team=team,reviewer=reviewer.email())
116116
RoleFactory(name_id='chair',person=reviewer,group=review_req1.doc.group)
117+
PersonFactory(user__username='plain')
117118

118119
ReviewRequest.objects.create(
119120
doc=review_req1.doc,
@@ -146,10 +147,29 @@ def test_reviewer_overview(self):
146147
self.assertTrue(unicode(reviewer) in unicontent(r))
147148
self.assertTrue(review_req1.doc.name in unicontent(r))
148149

150+
r = self.client.get(url)
151+
self.assertEqual(r.status_code, 200)
152+
# without a login, reason for being unavailable should not be seen
153+
self.assertFalse("Availability" in unicontent(r))
154+
155+
self.client.login(username="plain", password="plain+password")
156+
r = self.client.get(url)
157+
self.assertEqual(r.status_code, 200)
158+
# not on review team, should not see reason for being unavailable
159+
self.assertFalse("Availability" in unicontent(r))
160+
161+
self.client.login(username="chair", password="chair+password")
162+
r = self.client.get(url)
163+
self.assertEqual(r.status_code, 200)
164+
# review team members can see reason for being unavailable
165+
self.assertTrue("Availability" in unicontent(r))
166+
149167
self.client.login(username="secretary", password="secretary+password")
150168
r = self.client.get(url)
151169
self.assertEqual(r.status_code, 200)
152-
170+
# secretariat can see reason for being unavailable
171+
self.assertTrue("Availability" in unicontent(r))
172+
153173
def test_manage_review_requests(self):
154174
group = ReviewTeamFactory()
155175
reviewer = RoleFactory(name_id='reviewer',group=group,person__user__username='reviewer').person

ietf/group/views.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1376,11 +1376,12 @@ def reviewer_overview(request, acronym, group_type=None):
13761376
if group_type:
13771377
kwargs["group_type"] = group_type
13781378
person.settings_url = urlreverse("ietf.group.views.change_reviewer_settings", kwargs=kwargs)
1379-
person.unavailable_periods = unavailable_periods.get(person.pk, [])
1380-
person.completely_unavailable = any(p.availability == "unavailable"
1381-
and (p.start_date is None or p.start_date <= today) and (p.end_date is None or today <= p.end_date)
1382-
for p in person.unavailable_periods)
1383-
person.busy = person.id in days_needed
1379+
if can_access_review_stats_for_team(request.user, group):
1380+
person.unavailable_periods = unavailable_periods.get(person.pk, [])
1381+
person.completely_unavailable = any(p.availability == "unavailable"
1382+
and (p.start_date is None or p.start_date <= today) and (p.end_date is None or today <= p.end_date)
1383+
for p in person.unavailable_periods)
1384+
person.busy = person.id in days_needed
13841385

13851386

13861387
MAX_CLOSED_REQS = 10

0 commit comments

Comments
 (0)