From fd8af4b6f70edc8814be2cd0cad6d421e8b7bedb Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Thu, 6 Sep 2018 21:39:10 +0000 Subject: [PATCH] Review assignment email includes a link to the review request that ensures the reviewer is logged in. Fixes #2543. Commit ready for merge - Legacy-Id: 15444 --- ietf/doc/tests_review.py | 8 ++++++++ ietf/doc/urls_review.py | 1 + ietf/doc/views_review.py | 5 +++++ ietf/review/utils.py | 2 +- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ietf/doc/tests_review.py b/ietf/doc/tests_review.py index 05e43d8c1..5c2e36629 100644 --- a/ietf/doc/tests_review.py +++ b/ietf/doc/tests_review.py @@ -143,6 +143,14 @@ class ReviewTests(TestCase): self.assertIn(review_req.team.acronym, unicontent(r)) self.assertIn(review_req.team.name, unicontent(r)) + url = urlreverse('ietf.doc.views_review.review_request_forced_login', kwargs={ "name": doc.name, "request_id": review_req.pk }) + r = self.client.get(url) + self.assertEqual(r.status_code, 302) + self.client.login(username='reviewer', password="reviewer+password") + r = self.client.get(url,follow=True) + self.assertEqual(r.status_code, 200) + + def test_close_request(self): doc = WgDraftFactory(group__acronym='mars',rev='01') review_team = ReviewTeamFactory(acronym="reviewteam", name="Review Team", type_id="review", list_email="reviewteam@ietf.org", parent=Group.objects.get(acronym="farfut")) diff --git a/ietf/doc/urls_review.py b/ietf/doc/urls_review.py index 20d8d8923..d3cba6ffa 100644 --- a/ietf/doc/urls_review.py +++ b/ietf/doc/urls_review.py @@ -4,6 +4,7 @@ from ietf.utils.urls import url urlpatterns = [ url(r'^$', views_review.request_review), url(r'^(?P[0-9]+)/$', views_review.review_request), + url(r'^(?P[0-9]+)/login/$', views_review.review_request_forced_login), url(r'^(?P[0-9]+)/close/$', views_review.close_request), url(r'^(?P[0-9]+)/assignreviewer/$', views_review.assign_reviewer), url(r'^(?P[0-9]+)/rejectreviewerassignment/$', views_review.reject_reviewer_assignment), diff --git a/ietf/doc/views_review.py b/ietf/doc/views_review.py index ad5acecb5..fe8bc3dcd 100644 --- a/ietf/doc/views_review.py +++ b/ietf/doc/views_review.py @@ -173,6 +173,11 @@ def request_review(request, name): 'scheduled_for_telechat_days': (scheduled_for_telechat - now.date()).days if scheduled_for_telechat else None, }) +@login_required +def review_request_forced_login(request, name, request_id): + return redirect(urlreverse("ietf.doc.views_review.review_request", kwargs={ "name": name, "request_id": request_id })) + + def review_request(request, name, request_id): doc = get_object_or_404(Document, name=name) review_req = get_object_or_404(ReviewRequest, pk=request_id) diff --git a/ietf/review/utils.py b/ietf/review/utils.py index 313ca63b2..dc0d56289 100644 --- a/ietf/review/utils.py +++ b/ietf/review/utils.py @@ -361,7 +361,7 @@ def email_review_request_change(request, review_req, subject, msg, by, notify_se to = list(to) - url = urlreverse("ietf.doc.views_review.review_request", kwargs={ "name": review_req.doc.name, "request_id": review_req.pk }) + url = urlreverse("ietf.doc.views_review.review_request_forced_login", kwargs={ "name": review_req.doc.name, "request_id": review_req.pk }) url = request.build_absolute_uri(url) send_mail(request, to, request.user.person.formatted_email(), subject, "review/review_request_changed.txt", { "review_req_url": url,