Skip to content

Commit 98015a6

Browse files
committed
Merged in [15683] and [15699] from housley@vigilsec.com:
Do not show reasons for review team member unavailability outside the team. Fixes ietf-tools#2614. - Legacy-Id: 15732 Note: SVN reference [15683] has been migrated to Git commit 6ff5526 Note: SVN reference [15699] has been migrated to Git commit 895aa0c
2 parents 4049b31 + 895aa0c commit 98015a6

3 files changed

Lines changed: 27 additions & 11 deletions

File tree

hold-for-merge

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# -*- conf-mode -*-
22

3-
/personal/housley/6.87.4.dev0@15683 # Needs test fixed
4-
53
/personal/rcross/6.81.3.dev0@15262 # Secretariat admin access to Document has drawbacks
64
/personal/sbirkholz/mtgreg3@14074 # reviewed with issues; feedback sent
75
/personal/sbirkholz/meeting_registration@13969 # manual branch merge

ietf/group/tests_review.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def test_reviewer_overview(self):
113113
reviewer = RoleFactory(name_id='reviewer',group=team,person__user__username='reviewer').person
114114
ReviewerSettingsFactory(person=reviewer,team=team)
115115
review_req1 = ReviewRequestFactory(state_id='completed',team=team,reviewer=reviewer.email())
116-
RoleFactory(name_id='chair',person=reviewer,group=review_req1.doc.group)
116+
PersonFactory(user__username='plain')
117117

118118
ReviewRequest.objects.create(
119119
doc=review_req1.doc,
@@ -143,13 +143,30 @@ def test_reviewer_overview(self):
143143
urlreverse(ietf.group.views.reviewer_overview, kwargs={ 'acronym': group.acronym, 'group_type': group.type_id })]:
144144
r = self.client.get(url)
145145
self.assertEqual(r.status_code, 200)
146-
self.assertTrue(unicode(reviewer) in unicontent(r))
147-
self.assertTrue(review_req1.doc.name in unicontent(r))
146+
self.assertIn(unicode(reviewer), unicontent(r))
147+
self.assertIn(review_req1.doc.name, unicontent(r))
148+
# without a login, reason for being unavailable should not be seen
149+
self.assertNotIn("Availability", unicontent(r))
150+
151+
url = urlreverse(ietf.group.views.reviewer_overview, kwargs={ 'acronym': group.acronym })
152+
self.client.login(username="plain", password="plain+password")
153+
r = self.client.get(url)
154+
self.assertEqual(r.status_code, 200)
155+
# not on review team, should not see reason for being unavailable
156+
self.assertNotIn("Availability", unicontent(r))
157+
158+
self.client.login(username="reviewer", password="reviewer+password")
159+
r = self.client.get(url)
160+
self.assertEqual(r.status_code, 200)
161+
# review team members can see reason for being unavailable
162+
self.assertIn("Availability", unicontent(r))
148163

149164
self.client.login(username="secretary", password="secretary+password")
150165
r = self.client.get(url)
151166
self.assertEqual(r.status_code, 200)
152-
167+
# secretariat can see reason for being unavailable
168+
self.assertIn("Availability", unicontent(r))
169+
153170
def test_manage_review_requests(self):
154171
group = ReviewTeamFactory()
155172
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)