/** * 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); } }
/** * 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(); } }