ok

Mini Shell

Direktori : /opt/imunify360/venv/lib/python3.11/site-packages/im360/subsys/panels/generic/
Upload File :
Current File : //opt/imunify360/venv/lib/python3.11/site-packages/im360/subsys/panels/generic/panel.py

from typing import Optional, Set, Sequence

from defence360agent.api.integration_conf import IntegrationConfig
from defence360agent.subsys.panels.generic import GenericPanel as Base
from defence360agent.subsys.panels.generic.panel import (
    get_integration_data,
    get_domain_data,
)
from im360.subsys.panels.base import PanelInterface
from .mod_security import GenericPanelModSecurity


class GenericPanel(
    Base,
    PanelInterface,
    # Remote IP should be installed/removed by admin, manually.
    # GenericRemoteIPInterface,
    GenericPanelModSecurity,
):
    pure_ftp_conf_cls = None

    async def _get_all_admin_emails(self) -> list:
        # Used only as a suggestion in UI for the ADMIN_CONTACTS.emails
        # same as https://docs.cloudlinux.com/control_panel_integration/#admins
        admins = await get_integration_data("admins")
        for admin in admins:
            if admin["is_main"] and admin.get("email"):
                return [admin["email"]]
        return []

    def http_ports(self) -> Set[int]:
        # Not needed since there is no WebShield, graylist, CAPTCHA
        return set()

    def https_ports(self) -> Set[int]:
        # Not needed since there is no WebShield, graylist, CAPTCHA
        return set()

    def remoteip_supported(self) -> bool:
        # Used to decide whether HostingPanel interface should be used for
        # installation, removal, and configuration of mod_remoteip.
        # Not needed since we will require it to be installed and configured.
        return False

    async def get_web_server(self) -> Optional[str]:
        return IntegrationConfig.get("web_server", "server_type")

Zerion Mini Shell 1.0