
    Wwg/                         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_addrr   )userr   F)senderdispatch_uidweakN)r   r   )timer   setr   
_set_actorr   connectr   get
disconnectLookupError)actorr   context_datar   auditlogs        G/var/www/horilla/myenv/lib/python3.12/site-packages/auditlog/context.pyr   r      s     
 $TYY[1"L |$ 
L<WXI!-0	W	W%))+H xh}>UV  			W%))+H xh}>UV  		s`   A$C5'B. ,B  C5	B+(C5*B++C5.C20C#C2#	C/,C2.C//C22C5c                     	 t         j                         }||d   k7  ryt               }|t        k(  rt	        | |      r|j
                  | |_        |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   Nr   )r   r   r   r   
isinstancer   r   r   )r   r   instancer   kwargsr   auth_user_models          r   r   r   -   ss    
7!%%' (=11(*h41&!HN'6  s   A 	A('A(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&   D   sg     !!$'E	##E* 			##E* 		sX   A-A 4 A-	A A-A  A-A*AA*	A'$A*&A''A**A-)N)
contextlibr   contextvarsr   	functoolsr   django.contrib.authr   django.db.models.signalsr   auditlog.modelsr   r   r	   contextmanagerr   r   r&        r   <module>r0      sn      "  . - $,-2EB  W W:7.  r/   