HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/blueprints/activity/__pycache__/models.cpython-310.pyc
o

�weL�@s�ddlZddlmZddlZddlmZddlmZddl	m
Z
mZddlm
Z
mZddlmZGdd	�d	ee�ZGd
d�dee�ZGdd
�d
eej�ZdS)�N)�Enum)�DateTime)�db)�
AwareDateTime�
ResourceMixin)�tzware_datetime�timedelta_months)�Userc@s eZdZdZdZdZdZdZdS)�ActivityType)�
authorization)�page)�modal)�data�creditN)�__name__�
__module__�__qualname__�
AUTHORIZATION�PAGE�MODAL�DATA�CREDIT�rr�F/home/arjun/projects/buyercall/buyercall/blueprints/activity/models.pyr
sr
c@s8eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dS)
�ActivityName)zlogout.success)z
login.success)zlogin.failed)zlogin.twofactauth.success)zlogin.twofactauth.failed)zlogin.acceptterms)zlogin.declineterms)�view)�edit)�pdf�downloadN)rrr�LOGOUT�
LOGIN_SUCCESS�LOGIN_FAILED�TWOFACTAUTH_SUCCESS�TWOFACTAUTH_FAILED�LOGIN_ACCEPTTERMS�LOGIN_DECLINETERMS�VIEW�EDIT�PDF�DOWNLOADrrrrrsrc@sveZdZdZejejdd�Zejejejddddd�ddd	�Z	eje�
d
�ddd�Zeje�
d
�ddd�Zeje�
d
�ddd�Z
eje�
d
�ddd�Zeje�
d
�ddd�Zeje�
d
�ddd�Zeje�
d
�ddd�Zejejdd
�Zejejejdddd�ddd	�Zejejejdddd�ddd	�Zeddd��Zedd��Zedd��Zedd��Zedd��Zedd��ZdS)�ActivityLogs�
activity_logsT)�primary_keyzusers.id�activity_logs_user_id_fkey�CASCADE)�name�onupdate�ondeleteF)�index�nullable�@�)r3�server_default)r3zpartnerships.id)r0r1zpartnership_accounts.idNc
Cs�d}d}tj�tj|k���}	|	r|	j}|	j}z)t|||||�|�|�	|�|�
|�|�|�|||d�}
tj
�|
�tj
��WdSty\}zt�dt|��WYd}~dSd}~ww)z5
        Create new user activity log entry

        N)�user_id�typer/�description�
ip_address�device_browser�	device_os�resource_address�resource_id�partnership_id�partnership_account_idz%Error adding to activity log. Error: )r	�query�filter�id�firstr?r@r*�get_ip_address_from_request�get_device_browser_from_request�get_device_os_from_request�!get_resource_address_from_requestr�session�add�commit�	Exception�log�error�str)�clsr7r8r/�requestr>r9�p_id�pa_id�user�new_activity�errr�add_log>s4�
 ��zActivityLogs.add_logc
Csbz|j�d�dur|jdWS|jdWSty0}zt�dt|��WYd}~dSd}~ww)z0
        Retrieves the user IP address

        �HTTP_X_FORWARDED_FORN�REMOTE_ADDRz:Error retrieving user IP address for activity log. Error: r5)�environ�getrLrMrNrO�rPrQrVrrrrE^s��z(ActivityLogs.get_ip_address_from_requestc
CsZz|r|jjd|jjWSWdSty,}zt�dt|��WYd}~dSd}~ww)z<
        Retrieves the user device browser details

        �|r5z>Error retrieving user device browser for activity log. Error: N)�
user_agent�browser�versionrLrMrNrOr\rrrrFns��z,ActivityLogs.get_device_browser_from_requestc
CsNz
|r|jjWSWdSty&}zt�dt|��WYd}~dSd}~ww)z7
        Retrieves the user device os details

        r5z9Error retrieving user device os for activity log. Error: N)r^�platformrLrMrNrOr\rrrrG~s
��z'ActivityLogs.get_device_os_from_requestc
CsLz	|r|jWSWdSty%}zt�dt|��WYd}~dSd}~ww)z3
        Retrieves the requested url path

        r5z=Error retrieving requested url path for activity log. Error: N)�pathrLrMrNrOr\rrrrH�s��z.ActivityLogs.get_resource_address_from_requestcCs�ddlm}|�}|t_|���-d}d}td�}tj�tj	|k��
�}tj�tj	|k���tj�
�|Wd�S1s@wYdS)zP
        Delete activity logs 6 months and older.

        :return: int
        r)�
create_app�<i����N)�
buyercall.apprcr�app�app_contextrr*rArB�
created_on�count�deleterIrK)rPrcrf�delete_count�expiration_days�limitrrr�delete_old_activity_logs�s

 �z%ActivityLogs.delete_old_activity_logs)Nr5)rrr�
__tablename__r�Column�IntegerrC�
ForeignKeyr7�Stringr8r/r9r:r;r<r=r>r?r@�classmethodrWrErFrGrHrnrrrrr*"sT������



r*)�loggingrM�enumr�datetime�
sqlalchemyr�buyercall.extensionsr�buyercall.lib.util_sqlalchemyrr�buyercall.lib.util_datetimerr� buyercall.blueprints.user.modelsr	rOr
r�Modelr*rrrr�<module>s