PHP 8.3.31
Preview: myimunify.py Size: 1.98 KB
/proc/self/root/opt/imunify360/venv/lib64/python3.11/site-packages/defence360agent/plugins/myimunify.py

import logging

from defence360agent.contracts.config import MyImunifyConfig
from defence360agent.contracts.messages import MessageType
from defence360agent.contracts.plugins import (
    MessageSink,
    MessageSource,
    expect,
)
from defence360agent.myimunify.model import update_users_protection
from defence360agent.subsys.panels import hosting_panel
from defence360agent.subsys.persistent_state import load_state, save_state

logger = logging.getLogger(__name__)


class MyImunifyPlugin(MessageSink, MessageSource):
    def __init__(self):
        self._previous_myimunify_status = (
            load_state("MyImunifyPlugin").get("myimunify_enabled")
            or MyImunifyConfig.ENABLED
        )
        self._loop = None
        self._sink = None

    async def shutdown(self):
        save_state(
            "MyImunifyPlugin",
            {"myimunify_enabled": self._previous_myimunify_status},
        )

    async def create_sink(self, loop):
        pass

    async def create_source(self, loop, sink):
        self._loop = loop
        self._sink = sink

    async def _update_myimunify_users(self):
        existing_users = await hosting_panel.HostingPanel().get_users()
        await update_users_protection(
            self._sink, existing_users, False, force_config_update=True
        )

    @expect(MessageType.ConfigUpdate)
    async def on_config_update(self, message: MessageType.ConfigUpdate):
        myimunify_enabled = MyImunifyConfig.ENABLED
        previous_status = self._previous_myimunify_status
        # We're also triggering additional MessageType.ConfigUpdate messages
        # so we must update previous_status before triggering new one
        self._previous_myimunify_status = myimunify_enabled
        if myimunify_enabled and not previous_status:
            await self._update_myimunify_users()

        if myimunify_enabled != previous_status:
            await hosting_panel.HostingPanel().switch_ui_config(
                myimunify_enabled=myimunify_enabled
            )

Directory Contents

Dirs: 1 × Files: 22

Name Size Perms Modified Actions
- drwxr-xr-x 2026-06-08 20:23:14
Edit Download
3.51 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
5.53 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
2.98 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
5.17 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.23 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
12.72 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
828 B lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.89 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
777 B lrw-r--r-- 2026-05-26 21:20:44
Edit Download
3.23 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
6.33 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
7.09 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.09 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
4.42 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.21 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.77 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.98 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
536 B lrw-r--r-- 2026-05-26 21:20:44
Edit Download
2.83 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
11.05 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
26.40 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
0 B lrw-r--r-- 2026-05-26 21:20:44
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).