Ejemplo n.º 1
0
 /**
  * Plugin activation
  *
  * @throws iMSCP_Plugin_Exception
  * @param iMSCP_Plugin_Manager $pluginManager
  * @return void
  */
 public function enable(iMSCP_Plugin_Manager $pluginManager)
 {
     try {
         # Make sure that postgrey smtp restriction is evaluated first. This is based on plugin_priority field.
         if ($pluginManager->pluginIsKnown('Postgrey') && $pluginManager->pluginIsEnabled('Postgrey')) {
             $pluginManager->pluginChange('Postgrey');
         }
         iMSCP_Registry::get('dbConfig')->set('PORT_POLICYD_WEIGHT', $this->getConfigParam('policyd_weight_port', 12525) . ';tcp;POLICYD_WEIGHT;1;127.0.0.1');
     } catch (iMSCP_Exception $e) {
         throw new iMSCP_Plugin_Exception($e->getMessage(), $e->getCode(), $e);
     }
 }
Ejemplo n.º 2
0
/**
 * Do the given action for the given plugin
 *
 * @param PluginManager $pluginManager
 * @param string $pluginName Plugin name
 * @param string $action Action ( install|uninstall|update|change|enable|disable|delete|protect )
 * @return void
 */
function doAction($pluginManager, $pluginName, $action)
{
    if ($pluginManager->pluginIsKnown($pluginName)) {
        try {
            if (in_array($action, array('install', 'update', 'enable'))) {
                $pluginManager->pluginCheckCompat($pluginName, $pluginManager->pluginLoad($pluginName)->getInfo());
            }
            if (checkAction($pluginManager, $pluginName, $action)) {
                $ret = call_user_func(array($pluginManager, 'plugin' . ucfirst($action)), $pluginName);
                if ($ret !== false) {
                    if ($ret == PluginManager::ACTION_FAILURE || $ret == PluginManager::ACTION_STOPPED) {
                        $msg = $ret == PluginManager::ACTION_FAILURE ? tr('Action has failed.') : tr('Action has been stopped.');
                        switch ($action) {
                            case 'install':
                                $msg = tr('Unable to install the %s plugin: %s', $pluginName, $msg);
                                break;
                            case 'uninstall':
                                $msg = tr('Unable to uninstall the %s plugin: %s', $pluginName, $msg);
                                break;
                            case 'update':
                                $msg = tr('Unable to update the %s plugin: %s', $pluginName, $msg);
                                break;
                            case 'change':
                                $msg = tr('Unable to change the %s plugin: %s', $pluginName, $msg);
                                break;
                            case 'enable':
                                $msg = tr('Unable to enable the %s plugin: %s', $pluginName, $msg);
                                break;
                            case 'disable':
                                $msg = tr('Unable to disable the %s plugin: %s', $pluginName, $msg);
                                break;
                            default:
                                $msg = tr('Unable to protect the %s plugin: %s', $pluginName, $msg);
                        }
                        set_page_message($msg, 'error');
                    } else {
                        $msg = '';
                        if ($action != 'delete' && $pluginManager->pluginHasBackend($pluginName)) {
                            switch ($action) {
                                case 'install':
                                    $msg = tr('Plugin %s scheduled for installation.', $pluginName);
                                    break;
                                case 'uninstall':
                                    $msg = tr('Plugin %s scheduled for uninstallation.', $pluginName);
                                    break;
                                case 'update':
                                    $msg = tr('Plugin %s scheduled for update.', $pluginName);
                                    break;
                                case 'change':
                                    $msg = tr('Plugin %s scheduled for change.', $pluginName);
                                    break;
                                case 'enable':
                                    $msg = tr('Plugin %s scheduled for activation.', $pluginName);
                                    break;
                                case 'disable':
                                    $msg = tr('Plugin %s scheduled for deactivation.', $pluginName);
                                    break;
                                case 'protect':
                                    $msg = tr('Plugin %s protected.', $pluginName);
                            }
                            set_page_message($msg, 'success');
                        } else {
                            switch ($action) {
                                case 'install':
                                    $msg = tr('Plugin %s installed.', $pluginName);
                                    break;
                                case 'uninstall':
                                    $msg = tr('Plugin %s uninstalled.', $pluginName);
                                    break;
                                case 'update':
                                    $msg = tr('Plugin %s updated.', $pluginName);
                                    break;
                                case 'change':
                                    $msg = tr('Plugin %s reconfigured.', $pluginName);
                                    break;
                                case 'enable':
                                    $msg = tr('Plugin %s activated.', $pluginName);
                                    break;
                                case 'disable':
                                    $msg = tr('Plugin %s deactivated.', $pluginName);
                                    break;
                                case 'delete':
                                    $msg = tr('Plugin %s deleted.', $pluginName);
                            }
                            set_page_message($msg, 'success');
                        }
                    }
                } else {
                    set_page_message(tr('An unexpected error occurred'));
                }
            }
        } catch (iMSCPException $e) {
            set_page_message($e->getMessage(), 'error');
        }
    } else {
        showBadRequestErrorPage();
    }
}