ó
;ÏOc           @   s?   d  d l  m Z d  d l m Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   wraps(   t   available_attrsc            s+   ‡  f d †  } t  ˆ  d t ˆ  ƒ ƒ| ƒ S(   s÷   
    Modifies a view function so its response has the X-Frame-Options HTTP
    header set to 'DENY' as long as the response doesn't already have that
    header set.

    e.g.

    @xframe_options_deny
    def some_view(request):
        ...

    c             s8   ˆ  |  | Ž  } | j  d d  ƒ d  k r4 d | d <n  | S(   Ns   X-Frame-Optionst   DENY(   t   gett   None(   t   argst   kwargst   resp(   t	   view_func(    s=   ../Django//lib/python/django/views/decorators/clickjacking.pyt   wrapped_view   s    t   assigned(   R    R   (   R   R	   (    (   R   s=   ../Django//lib/python/django/views/decorators/clickjacking.pyt   xframe_options_deny   s    c            s+   ‡  f d †  } t  ˆ  d t ˆ  ƒ ƒ| ƒ S(   s  
    Modifies a view function so its response has the X-Frame-Options HTTP
    header set to 'SAMEORIGIN' as long as the response doesn't already have
    that header set.

    e.g.

    @xframe_options_sameorigin
    def some_view(request):
        ...

    c             s8   ˆ  |  | Ž  } | j  d d  ƒ d  k r4 d | d <n  | S(   Ns   X-Frame-Optionst
   SAMEORIGIN(   R   R   (   R   R   R   (   R   (    s=   ../Django//lib/python/django/views/decorators/clickjacking.pyR	   (   s    R
   (   R    R   (   R   R	   (    (   R   s=   ../Django//lib/python/django/views/decorators/clickjacking.pyt   xframe_options_sameorigin   s    c            s+   ‡  f d †  } t  ˆ  d t ˆ  ƒ ƒ| ƒ S(   sç   
    Modifies a view function by setting a response variable that instructs
    XFrameOptionsMiddleware to NOT set the X-Frame-Options HTTP header.

    e.g.

    @xframe_options_exempt
    def some_view(request):
        ...

    c             s   ˆ  |  | Ž  } t  | _ | S(   N(   t   Truet   xframe_options_exempt(   R   R   R   (   R   (    s=   ../Django//lib/python/django/views/decorators/clickjacking.pyR	   <   s    	R
   (   R    R   (   R   R	   (    (   R   s=   ../Django//lib/python/django/views/decorators/clickjacking.pyR   0   s    N(   t	   functoolsR    t   django.utils.decoratorsR   R   R   R   (    (    (    s=   ../Django//lib/python/django/views/decorators/clickjacking.pyt   <module>   s   		