![]() System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /proc/self/root/opt/imunify360/venv/lib/python3.11/site-packages/imav/wordpress/ |
Upload File : |
""" 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> """ import logging import pwd import subprocess from defence360agent.utils import check_run from imav.model.wordpress import WordpressSite, WPSite from imav.wordpress import ( PLUGIN_PATH, utils, PLUGIN_SLUG, ) logger = logging.getLogger(__name__) async def plugin_install(site: WordpressSite | WPSite): """Install the Imunify Security WordPress plugin on given WordPress site.""" username = pwd.getpwuid(site.uid).pw_name php_path = utils.get_php_binary_path(site.domain, username) args = [ *utils.wp_wrapper(php_path, site.docroot), "plugin", "install", str(PLUGIN_PATH), "--activate", "--force", ] command = utils.build_command_for_user(username, args) logger.info(f"Installing wp plugin {command}") await check_run(command) async def plugin_deactivate(site: WordpressSite): """Deactivate the imunify-security wp plugin on given wp site.""" username = pwd.getpwuid(site.uid).pw_name php_path = utils.get_php_binary_path(site.domain, username) args = [ *utils.wp_wrapper(php_path, site.docroot), "plugin", "deactivate", PLUGIN_SLUG, "--uninstall", "--allow-root", ] command = utils.build_command_for_user(username, args) logger.info(f"Deactivating wp plugin {command}") await check_run(command) async def is_wordpress_installed(site: WordpressSite): """Check if WordPress is installed and given site is accessible using WP CLI.""" username = pwd.getpwuid(site.uid).pw_name php_path = utils.get_php_binary_path(site.domain, username) args = [ *utils.wp_wrapper(php_path, site.docroot), "core", "is-installed", ] command = utils.build_command_for_user(username, args) logger.info(f"Checking if WordPress is installed {command}") result = subprocess.run(command) return result.returncode == 0