| Server IP : 93.115.150.27 / Your IP : 216.73.216.221 Web Server : LiteSpeed System : Linux host2.azar.host 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64 User : dorfakkh ( 1797) PHP Version : 8.1.34 Disable Function : show_source, system, passthru, exec, popen, proc_open, mail MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/imunify360/venv/lib/python3.11/site-packages/im360/simple_rpc/ |
Upload File : |
from defence360agent.rpc_tools import lookup
from defence360agent.utils import Scope
from defence360agent.contracts.config import ControlPanelConfig
from defence360agent.myimunify.advice.advice_manager import (
get_advice_notifications,
make_advice,
)
from defence360agent.myimunify.advice.hosting_smart_advice_api import (
sync_advices,
)
class SmartAdviceEndpoints(lookup.RootEndpoints):
SCOPE = Scope.IM360
@lookup.bind("smart-advice", "notifications")
async def smart_advice_notifications(self):
if not ControlPanelConfig.SMART_ADVICE_ALLOWED:
return []
return await get_advice_notifications()
@lookup.bind("smart-advice", "get-options")
async def smart_advice_get_options(self):
return {
"mu_plugin_installation": ControlPanelConfig.SMART_ADVICE_ALLOWED,
"advice_email_notification": ControlPanelConfig.ADVICE_EMAIL_NOTIFICATION,
}
@lookup.bind("smart-advice", "sync")
async def sync_smart_advice(self):
if not ControlPanelConfig.SMART_ADVICE_ALLOWED:
return []
advices = await make_advice()
ok = await sync_advices(advices)
if ok:
return []
else:
raise Exception("Failed to sync advices")