VaKeR CYBER ARMY
Logo of a company Server : Apache
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/self/root/opt/imunify360/venv/lib/python3.11/site-packages/imav/wordpress/cli.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>
"""
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

VaKeR 2022