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r�t| |d |ƒ}||dk O }t d|¡ |r‚d| jkr‚| jd= n| ¡ | jd< |rÀt d| j¡ t| ƒ d	|krÀt	| |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   
