def test_get_request(self): """clean_return_path works for GET requests""" bad_request = MockRequest('GET', { 'HTTP_REFERER': 'http://cookies.com', 'HTTP_HOST': 'misago-project.org' }) self.assertIsNone(clean_return_path(bad_request)) bad_request = MockRequest('GET', { 'HTTP_REFERER': 'https://misago-project.org/', 'HTTP_HOST': 'misago-project.org/' }) self.assertIsNone(clean_return_path(bad_request)) bad_request = MockRequest('GET', { 'HTTP_REFERER': 'https://misago-project.org/', 'HTTP_HOST': 'misago-project.org/assadsa/' }) self.assertIsNone(clean_return_path(bad_request)) ok_request = MockRequest('GET', { 'HTTP_REFERER': 'http://misago-project.org/', 'HTTP_HOST': 'misago-project.org/' }) self.assertEqual(clean_return_path(ok_request), '/') ok_request = MockRequest('GET', { 'HTTP_REFERER': 'http://misago-project.org/login/', 'HTTP_HOST': 'misago-project.org/' }) self.assertEqual(clean_return_path(ok_request), '/login/')
def test_post_request(self): """clean_return_path works for POST requests""" bad_request = MockRequest('POST', { 'HTTP_REFERER': 'http://misago-project.org/', 'HTTP_HOST': 'misago-project.org/' }, {'return_path': '/sdasdsa/'}) self.assertIsNone(clean_return_path(bad_request)) ok_request = MockRequest('POST', { 'HTTP_REFERER': 'http://misago-project.org/', 'HTTP_HOST': 'misago-project.org/' }, {'return_path': '/login/'}) self.assertEqual(clean_return_path(ok_request), '/login/')
def test_post_request(self): """clean_return_path works for POST requests""" bad_request = MockRequest( 'POST', { 'HTTP_REFERER': 'http://misago-project.org/', 'HTTP_HOST': 'misago-project.org/' }, {'return_path': '/sdasdsa/'}) self.assertIsNone(clean_return_path(bad_request)) ok_request = MockRequest( 'POST', { 'HTTP_REFERER': 'http://misago-project.org/', 'HTTP_HOST': 'misago-project.org/' }, {'return_path': '/login/'}) self.assertEqual(clean_return_path(ok_request), '/login/')
def moderation_return_path(request, user): return_path = clean_return_path(request) if not return_path: return reverse(user_profile.get_default_link(), kwargs={ 'user_slug': user.slug, 'user_id': user.pk }) return return_path
def test_get_request(self): """clean_return_path works for GET requests""" bad_request = MockRequest( 'GET', { 'HTTP_REFERER': 'http://cookies.com', 'HTTP_HOST': 'misago-project.org', } ) self.assertIsNone(clean_return_path(bad_request)) bad_request = MockRequest( 'GET', { 'HTTP_REFERER': 'https://misago-project.org/', 'HTTP_HOST': 'misago-project.org/', } ) self.assertIsNone(clean_return_path(bad_request)) bad_request = MockRequest( 'GET', { 'HTTP_REFERER': 'https://misago-project.org/', 'HTTP_HOST': 'misago-project.org/assadsa/', } ) self.assertIsNone(clean_return_path(bad_request)) ok_request = MockRequest( 'GET', { 'HTTP_REFERER': 'http://misago-project.org/', 'HTTP_HOST': 'misago-project.org/', } ) self.assertEqual(clean_return_path(ok_request), '/') ok_request = MockRequest( 'GET', { 'HTTP_REFERER': 'http://misago-project.org/login/', 'HTTP_HOST': 'misago-project.org/', } ) self.assertEqual(clean_return_path(ok_request), '/login/')
def decorator(request, profile): response = f(request, profile.lock()) if request.is_ajax(): response['is_error'] = False return JsonResponse(response) else: messages.success(request, response['message']) return_path = clean_return_path(request) if return_path: return redirect(return_path) else: return redirect(user_profile.get_default_link(), user_slug=profile.slug, user_id=profile.id)
def moderation_return_path(request, user): return_path = clean_return_path(request) if not return_path: return reverse(user_profile.get_default_link(), kwargs={'user_slug': user.slug, 'user_id': user.pk}) return return_path