%PDF- %PDF-
Direktori : /opt/imunify360/venv/lib64/python3.8/site-packages/defence360agent/simple_rpc/ |
Current File : //opt/imunify360/venv/lib64/python3.8/site-packages/defence360agent/simple_rpc/hosting_panel.py |
""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see <https://www.imunify360.com/legal/eula> """ from defence360agent.subsys.panels.base import PanelException from defence360agent.subsys.panels.directadmin import DirectAdmin from defence360agent.subsys.panels.hosting_panel import HostingPanel from defence360agent.rpc_tools import ValidationError from defence360agent.rpc_tools.lookup import RootEndpoints, bind class HostingPanelEndpoints(RootEndpoints): @bind('enable-plugin') async def enable_plugin(self, plugin_name=None): return await self.hosting_panel.enable_imunify360_plugin(plugin_name) @bind('disable-plugin') async def disable_plugin(self, plugin_name=None): return await self.hosting_panel.disable_imunify360_plugin(plugin_name) @bind('add-sudouser') async def add_sudouser(self, user): hp = self.hosting_panel if not isinstance(hp, DirectAdmin): raise ValidationError("Feature available only for DirectAdmin") return await hp.add_sudouser(user) @bind('delete-sudouser') async def delete_sudouser(self, user): hp = self.hosting_panel if not isinstance(hp, DirectAdmin): raise ValidationError("Feature available only for DirectAdmin") return await hp.delete_sudouser(user) @bind('list-docroots') async def get_docroots(self): return {"items": await self.hosting_panel.list_docroots()} @property def hosting_panel(self): try: return HostingPanel() except PanelException as e: raise ValidationError(str(e))