o
    {i^                     @   sP   d Z ddlmZ ddlmZ ddlmZ ddlmZ dedfdd	Z	d
d Z
dS )z!
Custom Decorators for Web Views
    wraps)redirect)REDIRECT_FIELD_NAME)JsonResponseNz/login/c                    s    fdd}| r|| S |S )zv
    Decorator for views that checks that the user is logged in,
    redirecting to the log-in page if necessary.
    c                    s   t   fdd}|S )Nc                    sX   | j jr| g|R i |S | jddkrtddiddS t  d d| j S )	NX-Requested-WithXMLHttpRequesterrorzAuthentication requiredi  status?=)useris_authenticatedheadersgetr   r   pathrequestargskwargs)	login_urlredirect_field_name	view_func 6/var/www/newdalilibackend/backend/config/decorators.pywrapper   s
   z6login_required_web.<locals>.decorator.<locals>.wrapperr   )r   r   r   r   )r   r   	decorator   s   z%login_required_web.<locals>.decoratorr   )functionr   r   r   r   r   r   login_required_web
   s   	r    c                    s   t   fdd}|S )zE
    Decorator to ensure that a view only receives AJAX requests
    c                    s6   | j ddkstddiddS  | g|R i |S )Nr   r   r	   zAJAX request requiredi  r
   )r   r   r   r   r   r   r   r   !   s   zajax_required.<locals>.wrapperr   )r   r   r   r!   r   ajax_required   s   r"   )__doc__	functoolsr   django.shortcutsr   django.contrib.authr   django.httpr   r    r"   r   r   r   r   <module>   s    