B
    CVvg                 @   s   d dl Z d dlmZ 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mZmZ e	 Ze eZed	d
dZeegef edddZdS )    N)Callable)settings)HttpRequestHttpResponse)get_user_modellogout)info   )nowseconds_until_idle_time_endseconds_until_session_end)requestc             C   s   d}t  }d|kr:t| |d |}||dk O }td| d|krt| |d |}||dk O }td| |rd| jkr| jd= n| | jd< |rtd| j t|  d	|krt	| |d	  d S )
NFZSESSION_TIMEr   z+Check SESSION_TIME: %ss until session ends.Z	IDLE_TIMEz%Check IDLE_TIME: %ss until idle ends.Zdjango_auto_logout_last_requestzLogout user %sZMESSAGE)
r
   r   loggerdebugr   session	isoformatuserr   r   )r   optionsZshould_logoutcurrent_timeZsession_timeZ	idle_time r   M/tmp/pip-install-o3oxmrkh/django-auto-logout/django_auto_logout/middleware.py_auto_logout   s$    
r   )get_responsereturnc                s   t td fdd}|S )N)r   r   c                s&   | j jsttdrt| tj  | S )NAUTO_LOGOUT)r   Zis_anonymoushasattrr   r   r   )r   )r   r   r   
middleware*   s    zauto_logout.<locals>.middleware)r   r   )r   r   r   )r   r   auto_logout)   s    r   )loggingtypingr   Zdjango.confr   Zdjango.httpr   r   Zdjango.contrib.authr   r   Zdjango.contrib.messagesr   utilsr
   r   r   Z	UserModel	getLogger__name__r   r   r   r   r   r   r   <module>   s   
