
    )JfD                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ  G d
 dej                  Z G d dej                  ZdS )    )import_module)settings)get_user)models)HttpRequest)timezone)gettext_lazy)get_adapter)contextc                       e Zd Zd Zd ZdS )UserSessionManagerc                     g }t           j                            |          }|                                D ]+}|                                s|                    |           ,|S )N)user)UserSessionobjectsfilteriteratorpurgeappend)selfr   retsessionssessions        ^/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/usersessions/models.pypurge_and_listz!UserSessionManager.purge_and_list   sc    &--4-88((** 	$ 	$G==?? $

7###
    c           
         |j         j        r|j        j        st	                      |j                            dd          dt          j        	                    d          j
                 }t          j                            |j        j        t          |j         t                                          |          |t!          j                                         d S )NHTTP_USER_AGENT r   
user_agent)r   ipr    last_seen_at)session_keydefaults)r   is_authenticatedr   r#   
ValueErrorMETAgetr   _meta	get_field
max_lengthr   update_or_createdictr
   get_client_ipr   now)r   requestuas      r   create_from_requestz&UserSessionManager.create_from_request   s    |, 	GO4O 	,,\/44!++L99DD
 	,,3\==..w77%\^^	   	- 	
 	
 	
 	
 	
r   N)__name__
__module____qualname__r   r2    r   r   r   r      s2          
 
 
 
 
r   r   c                   r   e Zd Z e            Z ej        ej        ej	                  Z
 ej        ej                  Z ej                    Z ej        ej                  Z ej         ed          ddd          Z ej        d	          Z ej        e          Zd
 Zd Zd Zd Zd Zd ZdS )r   )	on_delete)defaultzsession key(   TF)r+   uniqueeditable   )r+   c                 &    | j          d| j         dS )Nz ())r!   r    r   s    r   __str__zUserSession.__str__5   s    '//T_////r   c                 H    t          t          j                  } |j        | S N)r   r   SESSION_ENGINESessionStore)r   argsengines      r   _session_storezUserSession._session_store8   s"    x677"v"D))r   c                 Z    |                                                      | j                  S rC   )rH   existsr#   r@   s    r   rJ   zUserSession.exists<   s%    ""$$++D,<===r   c                     |                                   }|sFt                      }|                     | j                  |_        t          |          }| p|j        }|r|                                  dS dS )NTF)rJ   r   rH   r#   r   r   is_anonymousdelete)r   r   r0   r   s       r   r   zUserSession.purge?   sx    KKMM! 	2 "mmG"11$2BCCGOG$$DH1 1E 	KKMMM4ur   c                 @    | j         t          j        j        j         k    S rC   )r#   r   r0   r   r@   s    r   
is_currentzUserSession.is_currentN   s    7?#:#FFFr   c                     t          t          j                  }|                                }|                    | j                   |                                  d S rC   )r   r   rD   rE   rM   r#   )r   rG   stores      r   endzUserSession.endQ   sI    x677##%%T%&&&r   N)r3   r4   r5   r   r   r   
ForeignKeyr   AUTH_USER_MODELCASCADEr   DateTimeFieldr   r/   
created_atGenericIPAddressFieldr!   r"   	CharField_r#   r    	JSONFieldr-   datarA   rH   rJ   r   rO   rR   r6   r   r   r   r   (   s1         ""G6X5PPPD%%hl;;;J	%	%	'	'B'6'===L"&"	-Ru  K "!S111J6D)))D0 0 0* * *> > >  G G G    r   r   N)	importlibr   django.confr   django.contrib.authr   	django.dbr   django.httpr   django.utilsr   django.utils.translationr	   rZ   allauth.account.adapterr
   allauth.corer   Managerr   Modelr   r6   r   r   <module>rh      s	   # # # # # #             ( ( ( ( ( (       # # # # # # ! ! ! ! ! ! 6 6 6 6 6 6 / / / / / /            
 
 
 
 
 
 
 
4- - - - -&, - - - - -r   