
    Vh	                     .    d dl mZ d dlmZ d Zd Zd Zy)    )wraps)iscoroutinefunctionc                 R     t               r fd}n f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                  `   K    | i | d {   }|j                  d      d|d<   |S 7 wNX-Frame-OptionsDENYgetargskwargsresponse	view_funcs      T/home/dcms/DCMS/lib/python3.12/site-packages/django/views/decorators/clickjacking.py_view_wrapperz*xframe_options_deny.<locals>._view_wrapper   s>     &777H||-.6.4*+O 8   .,.c                  D     | i |}|j                  d      d|d<   |S r   r
   r   s      r   r   z*xframe_options_deny.<locals>._view_wrapper   s2     $1&1H||-.6.4*+O    r   r   r   r   s   ` r   xframe_options_denyr      +     9%		 5M**r   c                 R     t               r fd}n f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                  `   K    | i | d {   }|j                  d      d|d<   |S 7 wNr   
SAMEORIGINr
   r   s      r   r   z0xframe_options_sameorigin.<locals>._view_wrapper1   s>     &777H||-.6.:*+O 8r   c                  D     | i |}|j                  d      d|d<   |S r   r
   r   s      r   r   z0xframe_options_sameorigin.<locals>._view_wrapper9   s2     $1&1H||-.6.:*+Or   r   r   s   ` r   xframe_options_sameoriginr   $   r   r   c                 R     t               r fd}n f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                  B   K    | i | d {   }d|_         |S 7 wNTxframe_options_exemptr   s      r   r   z,xframe_options_exempt.<locals>._view_wrapperN   s+     &777H-1H*O 8s   c                  &     | i |}d|_         |S r"   r#   r   s      r   r   z,xframe_options_exempt.<locals>._view_wrapperU   s     $1&1H-1H*Or   r   r   s   ` r   r$   r$   B   s+     9%		
 5M**r   N)	functoolsr   asgiref.syncr   r   r   r$    r   r   <module>r)      s     ,+<+<+r   