File manager - Edit - /opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/myimunify/__pycache__/model.cpython-311.opt-1.pyc
Back
� ַ9j � �N � d dl Z d dlZd dlZd dlmZmZ d dlmZmZ d dl m c mc mZ d dlmZ d dlmZmZ d dlmZ d dlmZmZ d dlmZ ej d d d�� � Z ej e� � Z G d� d e� � Zd� Z ddee! de"de"fd�Z#de"fd�Z$dee! de"fd�Z%dS )� N)�List�Optional)�BooleanField� CharField)�MessageType)�Model�instance)�run_in_executor)�execute_iterable_expression�importer�� update_configzimav.malwarelib.model� MalwareHit)�module�name�defaultc � � e Zd ZdZ G d� d� � Z ed�� � Z edd�� � Ze de e d efd �� � Z e dee defd �� � ZdS )� MyImunifyzSecure-site related settingsc � � e Zd Zej ZdZdS )�MyImunify.Meta� myimunifyN)�__name__� __module__�__qualname__r �db�database�db_table� � �T/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/myimunify/model.py�Metar s � � � � � ��;�����r r! T)�uniqueF)�nullr �user�returnc �\ � |�|dk rdS | � |ddi�� � \ }}|j S )z%Get SecureSite protection by usernameN�rootT� protectionF)r$ �defaults)� get_or_creater( )�clsr$ �perm�_s r �get_protectionzMyImunify.get_protection$ s? � � �<�4�6�>�>��4��#�#���u�8M�#�N�N���a���r �users�statusc � �� | � �fd�|D � � � � � | j gg | j �i�� � � � � d S )Nc � �� g | ]}|�d ���S ))r$ r( r )�.0r$ r0 s �r � <listcomp>z5MyImunify.update_users_protection.<locals>.<listcomp>1 s! �� �D�D�D�d�d�&� 1� 1�D�D�Dr )�conflict_target�preserve�update)�insert_many�on_conflictr$ r( �execute)r+ r/ r0 s `r �update_users_protectionz!MyImunify.update_users_protection. sd �� ����D�D�D�D�e�D�D�D� � � �+� �X�J���N�F�+� � � � �'�)�)�)�)�)r N)r r r �__doc__r! r r$ r r( �classmethodr �str�boolr. r r; r r r r r s� � � � � � �&�&�� � � � � � � � �9�D�!�!�!�D� ��5�%�8�8�8�J���(�3�-� �D� � � � �[�� ��D��I� �t� � � � �[�� � r r c � � K � t �d S t � |d�� � }|r0| � t j |�� � � � � d {V �� d S d S )NT)r$ �cleanup)�hits)r �malicious_select�process_messager �MalwareCleanupTask)�sinkr$ rB s r �malware_cleanuprG 9 sx � � � ������&�&�D�$�&�?�?�D�� N��"�"�;�#A�t�#L�#L�#L�M�M�M�M�M�M�M�M�M�M�M�N� Nr Fr/ r0 �force_config_updatec � �� � ���K � t d ��fd�� � � d {V �� d ��sd�|rt � dd�ii� � g}n�� fd��D � � }�r|� fd��D � � z }t j |� � d {V �� d S )Nc �: �� t � �� � � S �N)r r; )r0 r/ s ��r �<lambda>z)update_users_protection.<locals>.<lambda>F s �� � �1�1�%��@�@� r �LOG�PROACTIVE_DEFENCE�modec �: �� g | ]}t �d d�ii|� � ��S )rN rO r )r3 r$ �proactive_moderF s ��r r4 z+update_users_protection.<locals>.<listcomp>T sH �� � � � � � ��$�v�~�&>�?�� � � � � r c �0 �� g | ]}t �|� � ��S r )rG )r3 r$ rF s �r r4 z+update_users_protection.<locals>.<listcomp>^ s# �� �@�@�@�$�/�$��-�-�@�@�@r )r r �asyncio�gather)rF r/ r0 rH �tasksrQ s ``` @r r; r; A s ����� � � � ��@�@�@�@�@�� � � � � � � � � �N�� ���� ���$�v�~�&>�?� � � ��� � � � � � � � � �� � A� �@�@�@�@�%�@�@�@�@�� �.�%� � � � � � � � � � r c � � K � t j � � � � � � d{V ��}t | ||� � � d{V �� dS )z#Set protection status for all usersN)�hp�HostingPanel� get_usersr; )rF r0 �panel_userss r �#set_protection_status_for_all_usersr[ c s[ � � � ���)�)�3�3�5�5�5�5�5�5�5�5�K� !�$��V� <� <�<�<�<�<�<�<�<�<�<r r% c � � K � t |� � }t � t j � � }t t j |� � � � � � }||z }|r;t � d|� � d� }t |t |� � � � ||z }|r2t � d|� � t | |d� � � d{V �� t |� � pt |� � S )z5Synchronize existing permissions with myimunify userszRemove myimunify users %sc � � t � � � � t j � | � � � � S rK )r �delete�wherer$ �in_)�users_to_removes r � expressionzsync_users.<locals>.expressionu s9 � ��#�#�%�%�+�+���"�"�?�3�3�� � r zAdd permissions to users %sFN) �setr �selectr$ � itertools�chain�tuples�logger�infor �listr; r? )rF r/ rZ �myimunify_usersra rb �users_to_adds r � sync_usersrm i s� � � � ��e�*�*�K��&�&�y�~�6�6�O��)�/�?�+A�+A�+C�+C�D�E�E�O�%��3�O�� G����/��A�A�A� � � � $�J��_�0E�0E�F�F�F���0�L�� :����1�<�@�@�@�%�d�E�5�9�9�9�9�9�9�9�9�9�����6��o�!6�!6�6r )F)&rS re �logging�typingr r �peeweer r �+defence360agent.subsys.panels.hosting_panel�subsys�panels� hosting_panelrW �"defence360agent.contracts.messagesr �defence360agent.modelr r �$defence360agent.model.simplificationr �defence360agent.utilsr r �defence360agent.utils.configr �getr � getLoggerr rh r rG r>