
    ag                     f    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dS )    N)MiddlewareMixinc                   @    e Zd Zed             Zed             Zd ZdS )
AuditTrailc                     | j                             d          x}r|                    d          d         }n| j                             dd          }|S )NHTTP_X_FORWARDED_FOR,r   REMOTE_ADDR )METAgetsplit)requestx_forwarded_forips      @D:\Project\DJANGO\BRDWT Project\brdwt\middlewares\audit_trail.pyget_client_ipzAuditTrail.get_client_ip   sV    %l../EFFF? 	5 &&s++A.BB!!-44B	    c                 b   	 | j                             d          }| j        j        }| j        }| j        }t          j                                        }|j        }|j	        }d| d| d}	d|	z   }
d| d| dt          j                     d	| d
| d| d| }t          j                            |
          rd}nd}t          |
|          5 }|                    |dz              d d d            d S # 1 swxY w Y   d S # t          $ r%}t                               |           Y d }~d S 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   s   	l&&~66G|,H<D<D#''))CIM8L@m@@l@@@H08;J hS  h  h  h  h29;;  h  hgp  h  h  @G  h  h  SW  h  h  bf  h  hHw~~j)) j$'' )14((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 	 	 	LLOOOOOOOOO	s<   C
C? C2%C? 2C66C? 9C6:C? ?
D.	D))D.c                 r    |j         dk    r+|                     ||                     |                     d S d S )Nr   )methodr5   r   )selfr   s     r   process_requestzAuditTrail.process_request*   sA    >V##gt'9'9''B'BCCCCC $#r   N)__name__
__module____qualname__staticmethodr   r5   r9    r   r   r   r   
   s\          \   \*D D D D Dr   r   )	r   loggingr"   django.utils.deprecationr   	getLoggerr:   r(   r   r>   r   r   <module>rB      s      				 4 4 4 4 4 4		8	$	$"D "D "D "D "D "D "D "D "D "Dr   