
    f~                        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 d d
lmZ d dlmZ ej0                  s ed       G d de	j2                        Z G d de	j6                        Zy)    )import_module)settings)get_user)ImproperlyConfigured)models)HttpRequest)timezone)gettext_lazy)app_settings)get_adapter)contextz@allauth.usersessions not installed, yet its models are imported.c                       e Zd Zd Zd Zy)UserSessionManagerc                     g }t         j                  j                  |      }|j                         D ]$  }|j	                         r|j                  |       & |S )N)user)UserSessionobjectsfilteriteratorpurgeappend)selfr   retsessionssessions        V/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/usersessions/models.pypurge_and_listz!UserSessionManager.purge_and_list   sT    &&--4-8((* 	$G==?

7#	$ 
    c           
         |j                   j                  s
t               |j                  j                  s|j                  j                          |j                  j                  dd      dt        j                  j                  d      j                   }t        j                  j                  |j                  j                  t        |j                   t               j!                  |      |t#        j$                                      y )NHTTP_USER_AGENT r   
user_agent)r   ipr"   last_seen_at)session_keydefaults)r   is_authenticated
ValueErrorr   r%   save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    ||,,,**OO  "\\/4!!++L9DD
 	,,33\\=..w7%\\^	 	- 	
r   N)__name__
__module____qualname__r   r5    r   r   r   r      s    
r   r   c                      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y)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__?   s    ''"T__-Q//r   c                 R    t        t        j                        } |j                  | S N)r   r   SESSION_ENGINESessionStore)r   argsengines      r   _session_storezUserSession._session_storeB   s%    x667"v""D))r   c                 T    | j                         j                  | j                        S rF   )rK   existsr%   rC   s    r   rM   zUserSession.existsF   s"    ""$++D,<,<==r   c                     | j                          }|sFt               }| j                  | j                        |_        t        |      }| xs |j                  }|r| j                          yy)NTF)rM   r   rK   r%   r   r   is_anonymousdelete)r   r   r3   r   s       r   r   zUserSession.purgeI   sb    KKM! "mG"11$2B2BCGOG$DH1 1 1EKKMr   c                 d    | j                   t        j                  j                  j                   k(  S rF   )r%   r   r3   r   rC   s    r   
is_currentzUserSession.is_currentX   s#    7??#:#:#F#FFFr   c                     t        t        j                        }|j                         }|j	                  | j
                         | j	                          y rF   )r   r   rG   rH   rP   r%   )r   rJ   stores      r   endzUserSession.end[   s;    x667##%T%%&r   N)r6   r7   r8   r   r   r   
ForeignKeyr   AUTH_USER_MODELCASCADEr   DateTimeFieldr	   r2   
created_atGenericIPAddressFieldr#   r$   	CharField_r%   r"   	JSONFieldr0   datarD   rK   rM   r   rR   rU   r9   r   r   r   r   2   s     "G6X55PD%%%hll;J	%	%	%	'B'6''=L"&""	-RuK "!!S1J6D)D0*>Gr   r   N)	importlibr   django.confr   django.contrib.authr   django.core.exceptionsr   	django.dbr   django.httpr   django.utilsr	   django.utils.translationr
   r]   allauthr   allauth_settingsallauth.account.adapterr   allauth.corer   USERSESSIONS_ENABLEDManagerr   Modelr   r9   r   r   <module>ro      sa    #   ( 7  # ! 6 4 /   ,,
J 

 
8-&,, -r   