
vÅÏ^  ã               @   s8   d  d l  m Z d d „  Z d d „  Z d d „  Z d S)	é    )Úwrapsc                s"   ‡  f d d †  } t  ˆ  ƒ | ƒ S)zñ
    Modify 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. Usage:

    @xframe_options_deny
    def some_view(request):
        ...
    c                 s2   ˆ  |  | Ž  } | j  d ƒ d  k r. d | d <| S)NzX-Frame-OptionsZDENY)Úget)ÚargsÚkwargsÚresp)Ú	view_func© úF/tmp/pip-build-8lau8j11/django/django/views/decorators/clickjacking.pyÚwrapped_view   s    
z)xframe_options_deny.<locals>.wrapped_view)r   )r   r
   r   )r   r	   Úxframe_options_deny   s    
r   c                s"   ‡  f d d †  } t  ˆ  ƒ | ƒ S)zý
    Modify 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. Usage:

    @xframe_options_sameorigin
    def some_view(request):
        ...
    c                 s2   ˆ  |  | Ž  } | j  d ƒ d  k r. d | d <| S)NzX-Frame-OptionsZ
SAMEORIGIN)r   )r   r   r   )r   r   r	   r
       s    
z/xframe_options_sameorigin.<locals>.wrapped_view)r   )r   r
   r   )r   r	   Úxframe_options_sameorigin   s    
r   c                s"   ‡  f d d †  } t  ˆ  ƒ | ƒ S)zá
    Modify a view function by setting a response variable that instructs
    XFrameOptionsMiddleware to NOT set the X-Frame-Options HTTP header. Usage:

    @xframe_options_exempt
    def some_view(request):
        ...
    c                 s   ˆ  |  | Ž  } d | _  | S)NT)Úxframe_options_exempt)r   r   r   )r   r   r	   r
   1   s    	z+xframe_options_exempt.<locals>.wrapped_view)r   )r   r
   r   )r   r	   r   (   s    	r   N)Ú	functoolsr   r   r   r   r   r   r   r	   Ú<module>   s   