U
    ³xa÷  ã                   @   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   ZsessionÚ	isoformatÚuserr   r	   )r   ÚoptionsZshould_logoutZcurrent_timeZsession_timeZ	idle_time© r   ú}/var/www/html/staging.mfahmagazine.net/magazine_api/magazine_env/lib/python3.8/site-packages/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>.middlewarer   )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   
