Skip to content
This repository has been archived by the owner on Oct 30, 2018. It is now read-only.

Commit

Permalink
fixes bug 826785 - Redirect back after sign in not working
Browse files Browse the repository at this point in the history
  • Loading branch information
peterbe committed Feb 18, 2014
1 parent d2bc385 commit 4e6b3cc
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 6 deletions.
37 changes: 32 additions & 5 deletions airmozilla/main/tests/test_views.py
Expand Up @@ -158,7 +158,10 @@ def test_view_event_with_pin(self):
url = reverse('main:event', args=(event.slug,))

response = self.client.get(url)
self.assertRedirects(response, reverse('main:login'))
self.assertRedirects(
response,
reverse('main:login') + '?next=%s' % url
)

User.objects.create_user(
'mary', 'mary@mozilla.com', 'secret'
Expand Down Expand Up @@ -206,7 +209,10 @@ def test_view_private_events_with_notices(self):

url = reverse('main:event', args=(event.slug,))
response = self.client.get(url)
self.assertRedirects(response, reverse('main:login'))
self.assertRedirects(
response,
reverse('main:login') + '?next=%s' % url
)

contributor = User.objects.create_user(
'nigel', 'nigel@live.com', 'secret'
Expand Down Expand Up @@ -277,11 +283,17 @@ def test_event(self):
event.privacy = Event.PRIVACY_COMPANY
event.save()
response_fail = self.client.get(event_page)
self.assertRedirects(response_fail, reverse('main:login'))
self.assertRedirects(
response_fail,
reverse('main:login') + '?next=%s' % event_page
)
event.privacy = Event.PRIVACY_CONTRIBUTORS
event.save()
response_fail = self.client.get(event_page)
self.assertRedirects(response_fail, reverse('main:login'))
self.assertRedirects(
response_fail,
reverse('main:login') + '?next=%s' % event_page
)
event.privacy = Event.PRIVACY_PUBLIC
event.status = Event.STATUS_INITIATED
event.save()
Expand All @@ -294,7 +306,10 @@ def test_event(self):
event.status = Event.STATUS_SCHEDULED
event.save()
response_fail = self.client.get(event_page)
self.assertRedirects(response_fail, reverse('main:login'))
self.assertRedirects(
response_fail,
reverse('main:login') + '?next=%s' % event_page
)

nigel = User.objects.create_user('nigel', 'n@live.in', 'secret')
UserProfile.objects.create(user=nigel, contributor=True)
Expand All @@ -311,6 +326,18 @@ def test_event(self):
response_ok = self.client.get(event_page)
eq_(response_ok.status_code, 200)

def test_private_event_redirect(self):
event = Event.objects.get(title='Test event')
event.privacy = Event.PRIVACY_COMPANY
event.save()
url = reverse('main:event', args=(event.slug,))
response = self.client.get(url)
eq_(response.status_code, 302)
self.assertRedirects(
response,
reverse('main:login') + '?next=%s' % url
)

def test_event_upcoming(self):
"""View an upcoming event and it should show the local time"""
event = Event.objects.get(title='Test event')
Expand Down
4 changes: 3 additions & 1 deletion airmozilla/main/views.py
Expand Up @@ -251,7 +251,9 @@ def cant_view_event(self, event, request):
if request.user.is_authenticated():
return redirect('main:permission_denied', event.slug)
else:
return redirect('main:login')
desired_url = reverse('main:event', args=(event.slug,))
url = reverse('main:login')
return redirect('%s?next=%s' % (url, urllib.quote(desired_url)))

def cant_find_event(self, request, slug):
"""return an appropriate response if no event can be found"""
Expand Down

0 comments on commit 4e6b3cc

Please sign in to comment.