<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ó
¿öYc           @@  s  d  Z  d d l m Z d d l m Z d d l m Z d d l m Z m	 Z	 m
 Z
 d d l m Z d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z d „  Z d „  Z d „  Z e e d d d g ƒ e e d d „ ƒ ƒ ƒ ƒ Z d S(   s±   
raven.contrib.django.views
~~~~~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
i    (   t   absolute_import(   t   wraps(   t   settings(   t   HttpResponset   HttpResponseForbiddent   HttpResponseBadRequest(   t   never_cache(   t   csrf_exempt(   t   require_http_methods(   t   string_types(   t   client(   t   jsonc         C@  s‰   t  j s t St  j d k r  t S|  s* t S|  j ƒ  }  xL t  j D]A } t | t ƒ rn | j ƒ  |  k r t Sq@ | j |  ƒ r@ t Sq@ Wt S(   Nt   *(   R   t   SENTRY_ALLOW_ORIGINt   Falset   Truet   lowert
   isinstanceR	   t   match(   t   origint   value(    (    sK   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/views.pyt   is_valid_origin   s    	c         @  s   t  ˆ  ƒ ‡  f d †  ƒ } | S(   Nc         @  sO   |  j  j d ƒ } t | ƒ s% t ƒ  Sˆ  |  | | Ž } | | d <d | d <| S(   Nt   HTTP_ORIGINs   Access-Control-Allow-Origins   GET, POST, OPTIONSs   Access-Control-Allow-Methods(   t   METAt   getR   R   (   t   requestt   argst   kwargsR   t   response(   t   func(    sK   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/views.pyt   wrapped.   s    

(   R   (   R   R   (    (   R   sK   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/views.pyt   with_origin-   s    c         C@  s¶   |  j  j d d ƒ j d ƒ r) |  j  d S|  j  j d d ƒ j d ƒ rR |  j  d Sg  |  j j ƒ  D]3 } | d j d ƒ rb | d d k rb d | ^ qb } | r² d	 d
 j | ƒ Sd S(   sy   
    raven-js will pass both Authorization and X-Sentry-Auth depending on the browser
    and server configurations.
    t   HTTP_X_SENTRY_AUTHt    t   Sentryt   HTTP_AUTHORIZATIONi    t   sentry_t   sentry_datas   %s=%ss	   Sentry %ss   , N(   R   R   t
   startswitht   GETt   itemst   joint   None(   R   t   iR   (    (    sK   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/views.pyt   extract_auth_vars=   s    3R'   t   POSTt   OPTIONSc         C@  sÂ   |  j  d k r t ƒ  S|  j  d k rL t |  d ƒ r@ |  j } q^ |  j } n |  j j d ƒ } | sk t ƒ  Sy t j	 | j
 d ƒ ƒ } Wn t j k
 r¡ t ƒ  SXt j d t |  ƒ |  t ƒ  S(   NR.   R-   t   bodyR%   t   utf8t   auth_header(   t   methodR   t   hasattrR/   t   raw_post_dataR'   R   R   R   t   loadst   decodet   JSONDecodeErrorR
   t   sendR,   (   R   t
   project_idt   datat   decoded(    (    sK   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/views.pyt   reportR   s    N(   t   __doc__t
   __future__R    t	   functoolsR   t   django.confR   t   django.httpR   R   R   t   django.views.decorators.cacheR   t   django.views.decorators.csrfR   t   django.views.decorators.httpR   t   raven.utils.compatR	   t   raven.contrib.django.modelsR
   t   raven.utilsR   R   R   R,   R*   R<   (    (    (    sK   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/views.pyt   <module>   s$   			