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")