def login(request): if request.method == 'POST': redirect_to = request.POST.get('redirect_to') if redirect_to: is_redirect_safe = is_safe_url( url=redirect_to, host=request.get_host()) if not is_redirect_safe and is_ember_cli_request(request): is_redirect_safe = is_safe_url( url=redirect_to, host=get_embercli_host()) if is_redirect_safe: redirect_to_path = urlparse(redirect_to).path return redirect(redirect_to_path) return redirect(settings.LOGIN_REDIRECT_URL)
def login(request): if request.method == 'POST': redirect_to = request.POST.get('redirect_to') if redirect_to: is_redirect_safe = is_safe_url(url=redirect_to, host=request.get_host()) if not is_redirect_safe and is_ember_cli_request(request): is_redirect_safe = is_safe_url(url=redirect_to, host=get_embercli_host()) if is_redirect_safe: redirect_to_path = urlparse(redirect_to).path return redirect(redirect_to_path) return redirect(settings.LOGIN_REDIRECT_URL)
def site_address(request): if request.is_secure(): site_protocol = 'https' address_template = 'https://%s' else: site_protocol = 'http' address_template = 'http://%s' if is_ember_cli_request(request): host = get_embercli_host() else: host = request.get_host() return { 'SITE_PROTOCOL': site_protocol, 'SITE_HOST': host, 'SITE_ADDRESS': address_template % host }
def test_is_ember_cli_request(self): """is_ember_cli_request test works""" with self.settings(DEBUG=True): valid_request = MockRequest(settings.MISAGO_EMBER_CLI_ORIGIN) self.assertTrue(is_ember_cli_request(valid_request)) valid_origin = '%s/page.html' % settings.MISAGO_EMBER_CLI_ORIGIN valid_request = MockRequest(valid_origin) self.assertTrue(is_ember_cli_request(valid_request)) invalid_request = MockRequest('http://somewhere.com/page.html') self.assertFalse(is_ember_cli_request(invalid_request)) with self.settings(DEBUG=False): valid_request = MockRequest(settings.MISAGO_EMBER_CLI_ORIGIN) self.assertFalse(is_ember_cli_request(valid_request)) valid_origin = '%s/page.html' % settings.MISAGO_EMBER_CLI_ORIGIN valid_request = MockRequest(valid_origin) self.assertFalse(is_ember_cli_request(valid_request)) invalid_request = MockRequest('http://somewhere.com/page.html') self.assertFalse(is_ember_cli_request(invalid_request))
def process_response(self, request, response): if (is_ember_cli_request(request) and response.status_code in (301, 302)): return self.rewrite_http_redirect_url(response) return response