a
    acy                     @   s.   d dl mZ ddlmZmZ G dd dZdS )    )Session   )UserLoginInUserc                   @   s   e Zd Zdd Zdd ZdS )OneSessionPerUserMiddlewarec                 C   s
   || _ d S )N)get_response)selfr    r	   XC:\Users\brahi\OneDrive\Desktop\New folder (10)\UseVoice\src\apps\accounts\middleware.py__init__   s    z$OneSessionPerUserMiddleware.__init__c              
   C   s   t |jtr|jjrzx|jjj}|r\||jjkr\ztjj	|d
  W n tjyZ   Y n0 |jj|jj_|j	dd|jj_|jj  W n2 tjy   tjj|jt|j	ddd Y n0 | |}|S )N)session_keyREMOTE_ADDR )userr   
ip_address)
isinstancer   r   is_authenticatedlogin_in_userr   sessionr   objectsgetdeleteDoesNotExistMETAr   saver   creater   )r   requestZstored_session_keyresponser	   r	   r
   __call__
   s    
$
z$OneSessionPerUserMiddleware.__call__N)__name__
__module____qualname__r   r   r	   r	   r	   r
   r      s   r   N)Zdjango.contrib.sessions.modelsr   modelsr   r   r   r	   r	   r	   r
   <module>   s   