diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index 19d6965e75..1d6c358ffd 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -997,10 +997,15 @@ class ViewsTestCase(BaseViewsTestCase): ) @ddt.data( ('/financial-assistance/course-v1:test+TestX+Test_Course/apply/', status.HTTP_204_NO_CONTENT), + ('/financial-assistance/course-v1:test+TestX+Test_Course/apply/', status.HTTP_403_FORBIDDEN), ('/financial-assistance/course-v1:invalid+ErrorX+Invalid_Course/apply/', status.HTTP_400_BAD_REQUEST) ) @ddt.unpack def test_submit_financial_assistance_request_v2(self, referrer_url, expected_status, *args): + # We expect a 403 if the user account is not active + if expected_status == status.HTTP_403_FORBIDDEN: + self.user.is_active = False + self.user.save() form_data = { 'username': self.user.username, 'course': 'course-v1:test+TestX+Test_Course', diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index e4fbdb33a8..c8c624b59a 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -2085,6 +2085,9 @@ def financial_assistance_request_v2(request): # submitting an FA request if request.user.username != username: return HttpResponseForbidden() + # Require email verification + if request.user.is_active is not True: + return HttpResponseForbidden() course_id = data['course'] if course_id and course_id not in request.META.get('HTTP_REFERER'):