
    g                     b    d dl Z d dlZd dlZd dlmZ  ej
                  e      Z G d de      Zy)    N)MiddlewareMixinc                   2    e Zd Zed        Zed        Zd Zy)
AuditTrailc                     | j                   j                  d      x}r|j                  d      d   }|S | j                   j                  dd      }|S )NHTTP_X_FORWARDED_FOR,r   REMOTE_ADDR )METAgetsplit)requestx_forwarded_forips      4/var/www/html/brdwt/brdwt/middlewares/audit_trail.pyget_client_ipzAuditTrail.get_client_ip   sV    %ll../EFF?F &&s+A.B 	 !!-4B	    c                 z   	 | j                   j                  d      }| j                  j                  }| j                  }| j
                  }t        j                  j                         }|j                  }|j                  }d| d| d}	d|	z   }
d| d| dt        j                          d	| d
| d| d| }t        j
                  j                  |
      rd}nd}t        |
|      5 }|j                  |dz          d d d        y # 1 sw Y   y xY w# t        $ r}t         j#                  |       Y d }~y d }~ww xY w)NHTTP_REFERERlog__z.txtz./logs/activity_logs/zTimestamp: z | User Name : z | PID: z | IP Address: z | Referer : z
 | path : z	 | data: za+w
)r   r   userusernamePOSTpathdatetimenowmonthyearosgetpidexistsopenwrite	Exceptionloggererror)r   	client_iprefererr   datar   r   current_monthcurrent_yearfilename
write_pathbody_msgmodefes                  r   activity_logzAuditTrail.activity_log   sL   	ll&&~6G||,,H<<D<<D##'')CIIM88Lm_Al^4@H08;J$SE
(299;-Wfgpfqq~  @G  H  HR  SW  RX  Xa  bf  ag  hHww~~j)j$' )14() ) ) 	LLOO	s6   C&D (D=D DD D 	D:D55D:c                 f    |j                   dk(  r"| j                  || j                  |             y y )Nr   )methodr5   r   )selfr   s     r   process_requestzAuditTrail.process_request*   s.    >>V#gt'9'9''BC $r   N)__name__
__module____qualname__staticmethodr   r5   r9    r   r   r   r   
   s.       *Dr   r   )	r   loggingr"   django.utils.deprecationr   	getLoggerr:   r(   r   r>   r   r   <module>rB      s1      	 4			8	$"D "Dr   