403Webshell
Server IP : 38.190.208.107  /  Your IP : 216.73.217.46
Web Server : nginx/1.28.1
System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64
User : root ( 0)
PHP Version : 8.2.28
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /www/wwwroot/wp.9/wp-content/plugins/fluentform/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/wp.9/wp-content/plugins/fluentform/app/Http/Controllers/SuggestedPluginsController.php
<?php

namespace FluentForm\App\Http\Controllers;



class SuggestedPluginsController extends Controller
{
    /**
     * Check the installation and activation status of multiple plugins.
     */
    public function checkPluginStatuses()
    {
        if (!current_user_can('install_plugins')) {
            return $this->sendError([
                'message' => __('You do not have permission to manage plugins.', 'fluentform')
            ], 403);
        }

        $plugins = wpFluentForm('request')->get('plugins', []);
        
        if (empty($plugins) || !is_array($plugins)) {
            return $this->sendError([
                'message' => __('No plugins specified.', 'fluentform')
            ], 400);
        }

        $statuses = [];
        
        foreach ($plugins as $pluginSlug) {
            $statuses[$pluginSlug] = $this->getPluginStatus($pluginSlug);
        }

        return $this->sendSuccess([
            'statuses' => $statuses
        ]);
    }

    /**
     * Install a plugin from WordPress.org.
     */
    public function installPlugin()
    {
        if (!current_user_can('install_plugins')) {
            return $this->sendError([
                'message' => __('You do not have permission to install plugins.', 'fluentform')
            ], 403);
        }

        $pluginSlug = wpFluentForm('request')->get('plugin_slug');
        
        if (empty($pluginSlug)) {
            return $this->sendError([
                'message' => __('Plugin slug is required.', 'fluentform')
            ], 400);
        }

        // Load WordPress plugin installer
        if (!class_exists('Plugin_Upgrader')) {
            require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
        }
        if (!function_exists('request_filesystem_credentials')) {
            require_once ABSPATH . 'wp-admin/includes/file.php';
        }
        if (!function_exists('wp_tempnam')) {
            require_once ABSPATH . 'wp-admin/includes/misc.php';
        }
        require_once ABSPATH . 'wp-admin/includes/plugin-install.php';

        $api = plugins_api('plugin_information', [
            'slug'   => sanitize_key($pluginSlug),
            'fields' => [
                'sections' => false,
            ],
        ]);

        if (is_wp_error($api)) {
            return $this->sendError([
                'message' => $api->get_error_message()
            ], 500);
        }

        // Install the plugin
        $upgrader = new \Plugin_Upgrader(new \WP_Ajax_Upgrader_Skin());
        $result = $upgrader->install($api->download_link);

        if (is_wp_error($result)) {
            return $this->sendError([
                'message' => $result->get_error_message()
            ], 500);
        }

        if ($result === false) {
            return $this->sendError([
                'message' => __('Plugin installation failed.', 'fluentform')
            ], 500);
        }

        return $this->sendSuccess([
            'message' => __('Plugin installed successfully.', 'fluentform')
        ]);
    }

    /**
     * Activate an installed plugin.
     */
    public function activatePlugin()
    {
        if (!current_user_can('activate_plugins')) {
            return $this->sendError([
                'message' => __('You do not have permission to activate plugins.', 'fluentform')
            ], 403);
        }

        $pluginSlug = sanitize_text_field(wpFluentForm('request')->get('plugin_slug'));

        if (empty($pluginSlug)) {
            return $this->sendError([
                'message' => __('Plugin slug is required.', 'fluentform')
            ], 400);
        }

        if (!function_exists('get_plugins')) {
            require_once ABSPATH . 'wp-admin/includes/plugin.php';
        }

        if (!array_key_exists($pluginSlug, get_plugins())) {
            return $this->sendError([
                'message' => __('Invalid plugin.', 'fluentform')
            ], 400);
        }

        $result = activate_plugin($pluginSlug);

        if (is_wp_error($result)) {
            return $this->sendError([
                'message' => $result->get_error_message()
            ], 500);
        }

        return $this->sendSuccess([
            'message' => __('Plugin activated successfully.', 'fluentform')
        ]);
    }

    /**
     * Get the status of a plugin (not_installed, inactive, or active).
     *
     * @param string $pluginSlug The plugin slug (e.g., 'fluent-crm/fluent-crm.php')
     * @return string
     */
    private function getPluginStatus($pluginSlug)
    {
        if (!function_exists('get_plugins')) {
            require_once ABSPATH . 'wp-admin/includes/plugin.php';
        }

        $allPlugins = get_plugins();

        // Check if plugin is installed
        if (!isset($allPlugins[$pluginSlug])) {
            return 'not_installed';
        }

        // Check if plugin is active
        if (is_plugin_active($pluginSlug)) {
            return 'active';
        }

        return 'inactive';
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit