
    Bh                         d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ ddZd Zd Zd Zd Zy
)    )settings)Http404HttpResponseRedirect)TemplateResponse)Resolver404resolvereverse)__version__	constants)set_page_cache)EmptyPageContent)user_can_change_pageuser_can_view_page)admin_reverseNc                    |j                   j                  ||j                  |            }i }||d<   ||d<   ||d<   t        | j                  |      |d<   t        | j                  |      |d<   t        |d    t        |t              g      }|rt        |       S |j                         }|sddlm}  || ||      S t        | ||      }	|	j                  t               |j!                         }
|
t"        j$                  k(  s|
|	S d|	_        |
t"        j(                  k(  r|	S |
t"        j*                  k(  rd	|	d
<   |	S |
t"        j,                  k(  rd|	d
<   |	S )z
    Renders a page
    langcurrent_pagecurrent_pagecontenthas_change_permissionshas_view_permissionsr   )render_placeholder_contentT
SAMEORIGINzX-Frame-OptionsDENY)page_content_cachegetget_content_objr   userr   any
isinstancer   _handle_no_pageget_template	cms.viewsr   r   add_post_render_callbackr   get_xframe_optionsr   X_FRAME_OPTIONS_INHERITxframe_options_exemptX_FRAME_OPTIONS_ALLOWX_FRAME_OPTIONS_SAMEORIGINX_FRAME_OPTIONS_DENY)requestpagecurrent_languageslugpage_contentcontextcant_view_pagetemplater   responsexframe_optionss              B/home/dcms/DCMS/lib/python3.12/site-packages/cms/page_rendering.pyrender_pager5      sv    **../?AUAUVfAghLG&GFO"GN%1G!"(<W\\4(PG$%&8t&LG"#*++<!12 N w''((*H 	9)'<II7;H%%n5 ,,.N :::n>T &*H"888	9??	?&2"# O 
999	9&,"#O    c                 P   	 t        | j                        }|j                  dk(  rt        d      }t        |      S t        t	        | j                  |j                              # t        $ r6}t        t	        | j                  |j
                  d   d               |d }~ww xY w)Nr   tried)pathr8   
pages-rootcms_pagecontent_changelist)
r   r9   r   r   dictargsurl_namer   r   r8   )r*   matcheredirect_urls       r4   r    r    >   s    P%
 ~~%$%AB#L11
$GLL<
==  PdAFF1Ig4FGHaOPs   A& &	B%/1B  B%c                 L    d| j                   j                  i}t        | d|      S )Nabsolute_urlzcms/noapphook.html)toolbarrequest_pathr   r*   r/   s     r4   _handle_no_apphookrG   K   s*    44G G%97CCr6   c                 ^    t         t        j                  t        d      d}t	        | d|      S )Nr:   )cms_versiondjango_debugnext_urlzcms/welcome.html)r
   r   DEBUGr	   r   rF   s     r4   _render_welcome_pagerM   R   s-    " L)G
 G%7AAr6   c                 x    |j                   }|j                  x| _        }||j                  |<   t	        | ||      S N)languager+   r   r   r5   )r*   pagecontentrP   r+   s       r4   render_pagecontentrR   [   s?    ##H"-"2"22G4(3DH%wh//r6   rO   )django.confr   django.httpr   r   django.template.responser   django.urlsr   r   r	   cmsr
   r   cms.cache.pager   
cms.modelsr   cms.utils.page_permissionsr   r   cms.utils.urlutilsr   r5   r    rG   rM   rR    r6   r4   <module>r]      s?      5 5 5 5 & ) ' O ,.b
>DB0r6   