
    Bsi                         d dl Z d dl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d      Z edd	
      Ze j                  dd       Zd Ze j                  d        Zy)    N)
ContextVar)partial)get_user_model)pre_save)LogEntryauditlog_valueauditlog_disabledF)defaultc              #     K   dt        j                          f||d}t        j                  |       t        t        | |d         }t        j                  |t        |d   d       	 d 	 t        j                         }t        j                  t        |d          y# t        $ r Y yw xY w# 	 t        j                         }t        j                  t        |d          w # t        $ r Y w w xY wxY ww)	z5Connect a signal receiver with current user attached.	set_actor)signal_duidremote_addrremote_portr   )userr   F)senderdispatch_uidweakN)r   r   )timer   setr   
_set_actorr   connectr   get
disconnectLookupError)actorr   r   context_datar   auditlogs         \/var/www/python-projects/worksol/worksolenv/lib/python3.12/site-packages/auditlog/context.pyr   r      s     
 $TYY[1""L
 |$  /I
 !-0	W	W%))+H xh}>UV  			W%))+H xh}>UV  		s`   A%C6(B/ -B  C6 	B,)C6+B,,C6/C31C$C3$	C0-C3/C00C33C6c                    	 t         j                         }||d   k7  ryt               }|t        k(  r1t	        | |      r%|j
                  | |_        t        | dd      |_        |d   |_        |d   |_	        y# t        $ r Y yw xY w)zSignal receiver with extra 'user' and 'signal_duid' kwargs.

    This function becomes a valid signal receiver when it is curried with the actor and a dispatch id.
    r   Nemailr   r   )r   r   r   r   
isinstancer   getattractor_emailr   r   r   )r   r   instancer   kwargsr   auth_user_models          r   r   r   2   s    
7!%%' (=11(*h41&!HN#*4$#?H '6'6  s   A8 8	BBc               #      K   t         j                  d      } 	 d  	 t         j                  |        y # t        $ r Y y w xY w# 	 t         j                  |        w # t        $ r Y w w xY wxY ww)NT)r	   r   resetr   )tokens    r   disable_auditlogr*   K   sg     !!$'E	##E* 			##E* 		sX   A-A 4 A-	A A-A  A-A*AA*	A'$A*&A''A**A-)NN)
contextlibr   contextvarsr   	functoolsr   django.contrib.authr   django.db.models.signalsr   auditlog.modelsr   r   r	   contextmanagerr   r   r*        r   <module>r4      so      "  . - $,-2EB  W WD72  r3   