JezK
Edit File: plugin.cpython-311.opt-1.pyc
� M��"� �� � d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm Z m Z d dlmZ d dl mZ d dlmZ d dlmZ d dlmZmZmZmZmZ d d lmZmZ d d lmZ d dlm Z d dl!m"Z"m#Z#m$Z$m%Z% d d lm&Z& d dl'm(Z( d dl)m*Z*m+Z+ d dl,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA d dlBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZO d dlPmQZQ ejR eS� � ZTed� � � ZUdZV e jW � � ZXdaYdZZdZ[de\fd�Z]de\fd�Z^de\fd�Z_de\fd�Z`deafd �Zbd!Zcd"Zdd#Zedefe\e\e\f fd$�Zgd%eadefe\eaf fd&�Zhd%eade\fd'�Zid%eade\fd(�Zjd%eade\fd)�Zk ed*� � Zld%ead+efd,�Zmd-edendz fd.�Zod/� Zpd0end1ejq denfd2�Zrd1ejq d+efd3�Zsd4e jt fd5�Zudvd7evfd8�Zwd9� Zxd:� Zyd;� Zzdeafd<�Z{d=� Z|d>e.fd?�Z}d>e.de~fd@�ZdA� Z�dB� Z� dwdCe�e. fdD�Z�dEeve. fdF�Z�dddG�d>e.dHeadIend1ejq dz dJedz ddfdK�Z�dddG�d>e.dLend1ejq dz dJedz fdM�Z�dddG�d>e.dNend1ejq dz dJedz ddf dO�Z�dEeve. de~fdP�Z�d>e.d1ejq dQeadRe�dSe�ddfdT�Z� dxdEeve. dUe e.ejq e�e�ge d f dVeadWeadXe\ddfdY�Z�dwdQeaddfdZ�Z�d-ed[e\ddfd\�Z� e jW � � Z�da�dyd]�Z�dyd^�Z�d_eaddfd`�Z�dEeve. ddfda�Z�d%eaddfdb�Z�d%eaddfdc�Z�dydd�Z�dyde�Z�dfeadge�deafdh�Z�d>e.d1ejq dge�dRe�dSe�ddfdi�Z� dzdjevea dz ddfdk�Z�dwdl�Z�dm� Z�d>e.de\fdn�Z�d>e.doe~de\fdp�Z�dq� Z� G dr� ds� � Z� G dt� due�� � Z�dS ){� N)�defaultdict)� Awaitable�Callable)�LooseVersion)�cache)�Path)� inactivity)�MalwareScanScheduleInterval�SystemConfig�ANTIVIRUS_MODE�UserType�choose_value_from_config)�Index�WP_RULES)�log_message)�importer)�open_dir_no_symlinks� open_nofollow� rmtree_fd�safe_dir)� Wordpress)� hosting_panel)�get_wp_rules_data�get_wp_ruleset_version)� WordpressSite�WPSite)�WPDisabledRule)�cli� telemetry)�PLUGIN_VERSION_FILE)�_validate_preset�calculate_next_scan_timestamp�$clear_get_cagefs_enabled_users_cache�ensure_site_data_directory�format_php_with_embedded_json�get_imunify_package_versions� get_last_scan�get_malware_history�prepare_plugin_config�prepare_scan_data�!write_plugin_data_file_atomically) �clear_manually_deleted_flag�delete_site�get_installed_sites_by_domains�get_outdated_sites�get_sites_for_user�get_sites_to_adopt�get_sites_to_install�%get_sites_to_mark_as_manually_deleted�get_installed_sites�insert_installed_sites�mark_site_as_manually_deleted�update_site_identity�update_site_version)�setup_site_authenticationc �0 � t j ddd �� � S )Nz(imav.malwarelib.plugins.schedule_watcher�get_user_schedule_config)�module�name�default)r �get� � �U/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/wordpress/plugin.py�_get_user_schedule_config_imavrC K s$ � ��<�9� '��� � � rA TF�balanced�returnc �d � t t j � � S # t $ r t cY S w xY w�N)�boolr �WAF_ENABLED�KeyError�_LEGACY_WAF_FALLBACKr@ rA rB �_get_global_waf_enabledrL c �? � �$��I�)�*�*�*��� $� $� $�#�#�#�#�$���� � �/�/c �d � t t j � � S # t $ r t cY S w xY wrG )rH r �WAF_DEFAULTrJ rK r@ rA rB �_get_waf_defaultrQ j rM rN c �X � t t j � � S # t $ r Y dS w xY w)NF)rH r �SECURITY_PLUGIN_ENABLEDrJ r@ rA rB �_get_security_plugin_enabledrT q s: � � ��I�5�6�6�6��� � � ��u�u����s � � )�)c �d � t t j � � S # t $ r t cY S w xY w)uS Read WORDPRESS.ai_bot_protection from config, defaulting to False. Returns _AI_BOT_PROTECTION_DEFAULT when the config key is missing — e.g. the ai_bot_protection field hasn't rolled out to this install's imunify360 yet, or a sibling package is still on an older schema. Keeps the feature off in all ambiguous cases. )rH r �AI_BOT_PROTECTIONrJ �_AI_BOT_PROTECTION_DEFAULTr@ rA rB �_get_global_ai_bot_protectionrX | s? � �*��I�/�0�0�0��� *� *� *�)�)�)�)�*���rN c �j � t j } n# t $ r t cY S w xY wt | � � S )u� Read WORDPRESS.ai_bot_protection_preset from config, defaulting to "balanced". Two layers of safety: KeyError on a missing key (older schema, agent upgrade in progress) and _validate_preset() on the value itself (hand-edited override file, future preset rolled in via a sibling package this version doesn't recognise). Both fall back to the same canonical default so all layers — schema, agent, plugin — agree. )r �AI_BOT_PROTECTION_PRESETrJ �!_AI_BOT_PROTECTION_PRESET_DEFAULTr! )�raws rB �$_get_global_ai_bot_protection_presetr] � sF � �1��0����� 1� 1� 1�0�0�0�0�1�����C� � � s � �#�#r>