o
    hT                     @   s   d dl mZ d dl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 d dlmZ d dlmZmZ d	d
 Zdd Zdd ZdS )    )settings)Http404HttpResponse)get_object_or_404redirect)reverse)url_has_allowed_host_and_scheme)hooks)PasswordViewRestrictionForm)PagePageViewRestrictionc                 C   s   | j |g|R i |S )N)serve)pagerequestargskwargs r   M/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/views.pyserve_chain   s   r   c           	      C   s   t | |}|d u rt|\}}}t}ttdD ]}||}qtdD ]}||| ||}t|tr8|  S q&||| ||S )Non_serve_pagebefore_serve_page)	r   route_for_requestr   r   reversedr	   	get_hooks
isinstancer   )	r   pathroute_resultr   r   r   on_serve_chainfnresultr   r   r   r      s   


r   c                 C   s   t t|d}t t|dj}| jdkr9t| j|d}| r8|jd }t	|| 
 |  s/tj}||  t|S nt|d}td|j|jgd}|| ||S )z
    Handle a submission of PasswordViewRestrictionForm to grant view access over a
    subtree that is protected by a PageViewRestriction
    )idPOST)instance
return_url&wagtailcore_authenticate_with_password)r   )r   r   r   specificmethodr
   r!   is_validcleaned_datar   get_host	is_securer   LOGIN_REDIRECT_URLmark_as_passedr   r   r     serve_password_required_response)r   page_view_restriction_idpage_idrestrictionr   formr#   
action_urlr   r   r   authenticate_with_password#   s$   



r3   N)django.confr   django.httpr   r   django.shortcutsr   r   django.urlsr   django.utils.httpr   wagtailr	   wagtail.formsr
   wagtail.modelsr   r   r   r   r3   r   r   r   r   <module>   s    