def server_error(request, template_name='500.html'): """ 500 error handler. """ urlname = resolve(request.path).url_name submission_urls = [ 'receiver_secure_post', 'receiver_secure_post_with_app_id', 'receiver_post_with_app_id' ] if urlname in submission_urls + ['app_aware_restore']: return HttpResponse(status=500) domain = get_domain_from_url(request.path) or '' # hat tip: http://www.arthurkoziel.com/2009/01/15/passing-mediaurl-djangos-500-error-view/ t = loader.get_template(template_name) type, exc, tb = sys.exc_info() traceback_text = format_traceback_the_way_python_does(type, exc, tb) traceback_key = uuid.uuid4().hex cache.cache.set(traceback_key, traceback_text, 60*60) return HttpResponseServerError(t.render( context={ 'MEDIA_URL': settings.MEDIA_URL, 'STATIC_URL': settings.STATIC_URL, 'domain': domain, '500traceback': traceback_key, }, request=request, ))
def logout(req): referer = req.META.get('HTTP_REFERER') domain = get_domain_from_url(urlparse(referer).path) if referer else None # we don't actually do anything with the response here: django_logout(req, **{"template_name": settings.BASE_TEMPLATE}) if referer and domain: domain_login_url = reverse('domain_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s' % domain_login_url) else: return HttpResponseRedirect(reverse('login'))
def logout(req, default_domain_redirect='domain_login'): referer = req.META.get('HTTP_REFERER') domain = get_domain_from_url(urlparse(referer).path) if referer else None # we don't actually do anything with the response here: LogoutView.as_view(template_name=settings.BASE_TEMPLATE)(req) if referer and domain: domain_login_url = reverse(default_domain_redirect, kwargs={'domain': domain}) return HttpResponseRedirect('%s' % domain_login_url) else: return HttpResponseRedirect(reverse('login'))
def jserror(request): agent = request.META.get('HTTP_USER_AGENT', None) os = browser_name = browser_version = bot = TAG_UNKNOWN if agent: parsed_agent = httpagentparser.detect(agent) bot = parsed_agent.get('bot', False) if 'os' in parsed_agent: os = parsed_agent['os'].get('name', TAG_UNKNOWN) if 'browser' in parsed_agent: browser_version = parsed_agent['browser'].get( 'version', TAG_UNKNOWN) browser_name = parsed_agent['browser'].get('name', TAG_UNKNOWN) url = request.POST.get('page', None) domain = None if url: path = urlparse(url).path if path: domain = get_domain_from_url(path) domain = domain or '_unknown' metrics_counter('commcare.jserror.count', tags={ 'os': os, 'browser_version': browser_version, 'browser_name': browser_name, 'url': sanitize_url(url), 'bot': bot, 'domain': domain, }) notify_error(message=f'[JS] {request.POST.get("message")}', details={ 'message': request.POST.get('message'), 'domain': domain, 'page': url, 'file': request.POST.get('file'), 'line': request.POST.get('line'), 'stack': request.POST.get('stack'), 'meta': { 'os': os, 'browser_version': browser_version, 'browser_name': browser_name, 'bot': bot, } }) return HttpResponse('')
def server_error(request, template_name='500.html'): """ 500 error handler. """ domain = get_domain_from_url(request.path) or '' # hat tip: http://www.arthurkoziel.com/2009/01/15/passing-mediaurl-djangos-500-error-view/ t = loader.get_template(template_name) return HttpResponseServerError(t.render(RequestContext(request, {'MEDIA_URL': settings.MEDIA_URL, 'STATIC_URL': settings.STATIC_URL, 'domain': domain })))
def logout(req): referer = req.META.get('HTTP_REFERER') domain = get_domain_from_url(urlparse(referer).path) if referer else None # we don't actually do anything with the response here: django_logout(req, **{"template_name": settings.BASE_TEMPLATE}) if referer and domain and is_mobile_url(referer): mobile_mainnav_url = reverse('custom_project_report_dispatcher', args=[domain, 'mobile/mainnav']) mobile_login_url = reverse('domain_mobile_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s?next=%s' % (mobile_login_url, mobile_mainnav_url)) elif referer and domain: domain_login_url = reverse('domain_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s' % domain_login_url) else: return HttpResponseRedirect(reverse('login'))
def logout(req, template_name="hqwebapp/loggedout.html"): referer = req.META.get('HTTP_REFERER') domain = get_domain_from_url(urlparse(referer).path) if referer else None req.base_template = settings.BASE_TEMPLATE response = django_logout(req, **{"template_name": template_name}) if referer and domain and is_mobile_url(referer): mobile_mainnav_url = reverse('custom_project_report_dispatcher', args=[domain, 'mobile/mainnav']) mobile_login_url = reverse('domain_mobile_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s?next=%s' % (mobile_login_url, mobile_mainnav_url)) elif referer and domain: domain_login_url = reverse('domain_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s' % domain_login_url) else: return HttpResponseRedirect(reverse('login'))
def server_error(request, template_name='500.html'): """ 500 error handler. """ domain = get_domain_from_url(request.path) or '' # hat tip: http://www.arthurkoziel.com/2009/01/15/passing-mediaurl-djangos-500-error-view/ t = loader.get_template(template_name) return HttpResponseServerError( t.render( RequestContext( request, { 'MEDIA_URL': settings.MEDIA_URL, 'STATIC_URL': settings.STATIC_URL, 'domain': domain })))
def server_error(request, template_name='500.html'): """ 500 error handler. """ domain = get_domain_from_url(request.path) or '' # hat tip: http://www.arthurkoziel.com/2009/01/15/passing-mediaurl-djangos-500-error-view/ t = loader.get_template(template_name) type, exc, tb = sys.exc_info() traceback_text = ''.join(traceback.format_tb(tb)) traceback_key = uuid.uuid4().hex cache.cache.set(traceback_key, traceback_text, 60*60) return HttpResponseServerError(t.render(RequestContext(request, {'MEDIA_URL': settings.MEDIA_URL, 'STATIC_URL': settings.STATIC_URL, 'domain': domain, '500traceback': traceback_key, })))
def server_error(request, template_name='500.html'): """ 500 error handler. """ urlname = resolve(request.path).url_name submission_urls = [ 'receiver_secure_post', 'receiver_secure_post_with_app_id', 'receiver_post_with_app_id' ] if urlname in submission_urls + ['app_aware_restore']: return HttpResponse(status=500) domain = get_domain_from_url(request.path) or '' # hat tip: http://www.arthurkoziel.com/2009/01/15/passing-mediaurl-djangos-500-error-view/ t = loader.get_template(template_name) type, exc, tb = sys.exc_info() traceback_text = format_traceback_the_way_python_does(type, exc, tb) traceback_key = uuid.uuid4().hex cache.cache.set(traceback_key, traceback_text, 60 * 60) if settings.UNIT_TESTING: # Explicitly don't render the 500 page during unit tests to prevent # obfuscating errors in templatetags / context processor. More context here: # https://github.com/dimagi/commcare-hq/pull/25835#discussion_r343997006 return HttpResponse(status=500) return HttpResponseServerError( t.render( context={ 'MEDIA_URL': settings.MEDIA_URL, 'STATIC_URL': settings.STATIC_URL, 'domain': domain, '500traceback': traceback_key, 'sentry_event_id': last_event_id(), }, request=request, ))
def domain(self): from corehq.apps.domain.utils import get_domain_from_url return get_domain_from_url(self.request_path)
def domain(self): return get_domain_from_url(self.path)