Skip to content

Commit 3abcbe8

Browse files
authored
remove access guards on new sponsorship application (#1685)
1 parent f93f52e commit 3abcbe8

File tree

2 files changed

+21
-46
lines changed

2 files changed

+21
-46
lines changed

sponsors/tests/test_views.py

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -70,34 +70,6 @@ def test_display_form_with_errors_if_invalid_post(self):
7070
self.assertIsInstance(form, SponsorshiptBenefitsForm)
7171
self.assertTrue(form.errors)
7272

73-
def test_login_required(self):
74-
redirect_url = f"{settings.LOGIN_URL}?next={self.url}"
75-
self.client.logout()
76-
77-
r = self.client.get(self.url)
78-
79-
self.assertRedirects(r, redirect_url)
80-
81-
def test_not_staff_no_group_not_allowed(self):
82-
redirect_url = f"{settings.LOGIN_URL}?next={self.url}"
83-
self.user.is_staff = False
84-
self.user.save()
85-
self.client.force_login(self.user)
86-
87-
r = self.client.get(self.url)
88-
89-
self.assertRedirects(r, redirect_url, fetch_redirect_response=False)
90-
91-
def test_group_allowed(self):
92-
redirect_url = f"{settings.LOGIN_URL}?next={self.url}"
93-
self.user.groups.add(self.group)
94-
self.user.save()
95-
self.client.force_login(self.user)
96-
97-
r = self.client.get(self.url)
98-
99-
self.assertEqual(r.status_code, 200, "user in group should have access")
100-
10173
def test_valid_post_redirect_user_to_next_form_step_and_save_info_in_cookies(self):
10274
package = baker.make("sponsors.SponsorshipPackage")
10375
for benefit in self.program_1_benefits:
@@ -141,6 +113,24 @@ def test_capacity_flag_when_needed(self):
141113
r = self.client.get(self.url)
142114
self.assertEqual(True, r.context["capacities_met"])
143115

116+
def test_redirect_to_login(self):
117+
redirect_url = (
118+
f"{settings.LOGIN_URL}?next={reverse('new_sponsorship_application')}"
119+
)
120+
package = baker.make("sponsors.SponsorshipPackage")
121+
for benefit in self.program_1_benefits:
122+
benefit.packages.add(package)
123+
124+
data = {
125+
"benefits_psf": [b.id for b in self.program_1_benefits],
126+
"benefits_working_group": [b.id for b in self.program_2_benefits],
127+
"package": package.id,
128+
}
129+
self.client.logout()
130+
response = self.client.post(self.url, data=data)
131+
132+
self.assertRedirects(response, redirect_url, fetch_redirect_response=False)
133+
144134

145135
class NewSponsorshipApplicationViewTests(TestCase):
146136
url = reverse_lazy("new_sponsorship_application")

sponsors/views.py

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from django.conf import settings
44
from django.contrib import messages
55
from django.contrib.auth.decorators import login_required
6-
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
6+
from django.contrib.auth.mixins import LoginRequiredMixin
77
from django.db import transaction
88
from django.utils.decorators import method_decorator
99
from django.http import JsonResponse
@@ -24,24 +24,10 @@
2424
from sponsors.forms import SponsorshiptBenefitsForm, SponsorshipApplicationForm
2525

2626

27-
class SelectSponsorshipApplicationBenefitsView(UserPassesTestMixin, FormView):
27+
class SelectSponsorshipApplicationBenefitsView(FormView):
2828
form_class = SponsorshiptBenefitsForm
2929
template_name = "sponsors/sponsorship_benefits_form.html"
3030

31-
# TODO: Remove UserPassesTestMixin when launched, also remove following methods
32-
def test_func(self):
33-
return (
34-
self.request.user.is_staff
35-
or self.request.user.groups.filter(name="Sponsorship Preview").exists()
36-
)
37-
38-
def permission_denied_message(self):
39-
msg = "New Sponsorship Application is not yet generally available, check back soon!"
40-
messages.add_message(self.request, messages.INFO, msg)
41-
return msg
42-
43-
# END TODO
44-
4531
def get_context_data(self, *args, **kwargs):
4632
programs = SponsorshipProgram.objects.all()
4733
packages = SponsorshipPackage.objects.all()
@@ -65,8 +51,7 @@ def get_success_url(self):
6551
if self.request.user.is_authenticated:
6652
return reverse_lazy("new_sponsorship_application")
6753
else:
68-
# TODO unit test this scenario after removing UserPassesTestMixin
69-
return settings.LOGIN_URL
54+
return f"{settings.LOGIN_URL}?next={reverse('new_sponsorship_application')}"
7055

7156
def get_initial(self):
7257
return cookies.get_sponsorship_selected_benefits(self.request)

0 commit comments

Comments
 (0)