§
    ‚wg_  ã                   ó®   — d dl m Z mZ d dlmZ d dlmZ d dlmZ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  G d„ de¦  «        ZdS )é    )ÚdatetimeÚ	timedelta)ÚAny)Úsettings)ÚHttpRequestÚHttpResponse)Únow)Úget_user_session_service)ÚSessionInterface)Úcreate_user_activity_logs)Úget_user_active_settings)Úcreate_user_log)ÚBaseSessionMiddlewarec                   ó¤   — e Zd ZU g Zeeeef                  ed<   dZ	e
j        Z e¦   «         Zdd„Zdefd„Zdedefd	„Zdedefd
„Zdedefd„ZdS )ÚUserActivityMiddlewareÚlogsé   ÚreturnNc                 ó¤   — || _         t          ¦   «         j        | _        t          ¦   «         j        | _        t          ¦   «         j        | _        d S )N)Úget_responser   Úexclude_urlsÚenable_adressesÚenabled_adressesÚ!disable_user_session_urls_to_logg)Úselfr   s     úA/var/www/html/cms/web/site_statistics/user_activity_middleware.pyÚ__init__zUserActivityMiddleware.__init__   sC   € Ø(ˆÔÝ4Ñ6Ô6ÔCˆÔÝ 8Ñ :Ô :Ô JˆÔÝ1IÑ1KÔ1KÔ1mˆÔ.Ð.Ð.ó    Úrequestc           	      óº  — |j         r|                      |¦  «        S |                     ¦   «         }d|v r|                      |¦  «        S |j         r|                      |¦  «        S | j                             ¦   «         j        }|sd}|j        }|j        |k     r.|j        }||z   }|j	        j
        r|j	        j        nd }t          j        ¦   «         t          d¬¦  «        z   }|j                             | j        ¦  «        }	d }
|	rd|	vr"| j                             ||j        ¬¦  «        }
n—t)          |	                     d¦  «        d         ¦  «        }| j                             |¬¦  «        }
|
s!| j                             ||j        ¬¦  «        }
|r/|
j        s(d	|
_        ||
_        | j                             |
¦  «        }
|
j        |_        |                      |¦  «        }|                     | j        |
j        › d|
j        › |¬
¦  «         |                      |¦  «        sQ|                      |¦  «        r<| j                             t?          |
j        |dtA          ¦   «         ¬¦  «        ¦  «         tC          | j        ¦  «        | j"        k    r2tG          j$        | j        ¦  «         | j         %                    ¦   «          |S |j                             | j        ¦  «        }	|	rd|	vrnBt)          |	                     d¦  «        d         ¦  «        }| j         &                    |¦  «         tO          d¬¦  «        }| (                    | j        ¦  «         |S )Nzget-user-infol    d(	 iB  )Údaysú/)Úuser_idÚ
session_idé   )ÚidÚauth)Úexpiresu$   ÐŸÐµÑ€ÐµÑˆÑ‘Ð» Ð½Ð° ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñƒ)Útimei÷  )Ústatus))Úsearcherr   Úget_full_pathÚuser_session_repositoryÚget_session_filtersÚ	ban_limitÚraw_sessionÚban_rateÚsiteÚuserÚis_authenticatedr&   r   Úutcnowr   ÚCOOKIESÚgetÚcookie_nameÚuser_activity_serviceÚcreateÚintÚsplitr#   r'   ÚupdateÚuser_session_idÚ
set_cookieÚis_disable_url_to_logÚis_enable_url_to_logr   Úappendr   r	   ÚlenÚlogs_array_lengthr   ÚdelayÚclearÚdelete_user_sessionr   Údelete_cookie)r   r   Úpathr/   r0   r2   Úpage_adressr#   r(   ÚcookieÚsession_datar$   Úresponses                r   Ú__call__zUserActivityMiddleware.__call__   sz  € ØÔð 	.Ø×$Ò$ WÑ-Ô-Ð-à×$Ò$Ñ&Ô&ˆØ˜dÐ"Ð"Ø×$Ò$ WÑ-Ô-Ð-àÔð 	.Ø×$Ò$ WÑ-Ô-Ð-àÔ0×DÒDÑFÔFÔPˆ	Øð 	ØˆIà(/Ô(;ˆàÔ )Ò+Ñ+ØÔ#ˆDØ ™+ˆKà)0¬Ô)FÐPg”l”ooÈDˆGå”oÑ'Ô'­)¸Ð*BÑ*BÔ*BÑBˆGà”_×(Ò(¨Ô)9Ñ:Ô:ˆFàˆLàð U˜c¨Ð/Ð/Ø#Ô9×@Ò@Ø#Ø*œ~ð  Añ  ô  õ
 ! §¢¨cÑ!2Ô!2°1Ô!5Ñ6Ô6
Ø#Ô;×?Ò?À:Ð?ÑNÔNà#ð qØ#'Ô#=×#DÒ#DÈWÐalÔaoÐ#DÑ#pÔ#pLàð U <Ô#7ð UØ(.LÔ%Ø+2LÔ(Ø#'Ô#?×#FÒ#FÀ|Ñ#TÔ#TLà&2¤oˆGÔ#Ø×(Ò(¨Ñ1Ô1ˆHà×Ò Ô 0°\´_Ð2XÐ2XÀ|ÄÐ2XÐ2XÐbiÐÑjÔjÐjà×-Ò-¨dÑ3Ô3ð D¸×8QÒ8QÐRVÑ8WÔ8Wð DØ”	× Ò ¥°´À+ÐOuÕ|ñ  }Bô  }Bð  "Cñ  "Cô  "Cñ  Dô  Dð  Då4”9‰~Œ~ Ô 6Ò6Ð6Ý)Ô/°´	Ñ:Ô:Ð:Ø”	—’Ñ!Ô!Ð!àˆOà”_×(Ò(¨Ô)9Ñ:Ô:ˆFàð M˜c¨Ð/Ð/Øõ ! §¢¨cÑ!2Ô!2°1Ô!5Ñ6Ô6
ØÔ,×@Ò@ÀÑLÔLÐLå#¨3Ð/Ñ/Ô/ˆHØ×"Ò" 4Ô#3Ñ4Ô4Ð4àˆr   rI   c                 ó(   — | j         D ]	}||v r dS Œ
dS ©NTF)r   ©r   rI   Úurls      r   r@   z,UserActivityMiddleware.is_disable_url_to_logf   s0   € ØÔ9ð 	ð 	ˆCØdˆ{ˆ{Øttð ð ˆur   c                 ó(   — | j         D ]	}||v r dS Œ
dS )NFT)r   rQ   s      r   rA   z+UserActivityMiddleware.is_enable_url_to_logm   s0   € ØÔ$ð 	ð 	ˆCØdˆ{ˆ{Øuuð ð ˆtr   c                 ó(   — | j         D ]	}||v r dS Œ
dS rP   )r   )r   rI   Úenable_adresss      r   Úis_enable_adress_to_logz.UserActivityMiddleware.is_enable_adress_to_logt   s2   € Ø!Ô2ð 	ð 	ˆMØ Ð$Ð$Øttð %ð ˆur   )r   N)Ú__name__Ú
__module__Ú__qualname__r   ÚlistÚdictÚstrr   Ú__annotations__rD   r   ÚUSER_ACTIVITY_COOKIE_NAMEr8   r
   r9   r   r   rN   Úboolr@   rA   rV   © r   r   r   r      sï   € € € € € € Ø!#€Dˆ$ˆtC˜HŒ~Ô
Ð#Ð#Ñ#ØÐØÔ4€KØ4Ð4Ñ6Ô6Ððnð nð nð nðH ð Hð Hð Hð HðT¨#ð °$ð ð ð ð ð¨ð °ð ð ð ð ð¨Cð °Dð ð ð ð ð ð r   r   N)r   r   Útypingr   Údjango.confr   Údjango.httpr   r   Údjango.utils.timezoner	   Ú*application.sessions.user_activity_servicer
   Údomain.user_sessions.sessionr   Úinfrastructure.logging.tasksr   Ú+infrastructure.logging.user_activity.configr   Ú5infrastructure.logging.user_activity.create_json_logsr   Ú+web.site_statistics.base_session_middlewarer   r   r`   r   r   ú<module>rk      s  ðØ (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø %Ð %Ð %Ð %Ð %Ð %à OÐ OÐ OÐ OÐ OÐ OØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø BÐ BÐ BÐ BÐ BÐ BØ PÐ PÐ PÐ PÐ PÐ PØ QÐ QÐ QÐ QÐ QÐ QØ MÐ MÐ MÐ MÐ MÐ Mðið ið ið ið iÐ2ñ iô ið ið ið ir   