示例#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);
     }
 }
示例#2
0
/**
 * Generate page
 *
 * @param $tpl iMSCP_pTemplate
 * @param iMSCP_Plugin_Manager $pluginManager
 * @param int $resellerId
 * @param int $customerAdminId
 * @return void
 */
function ownddnsSettings($tpl, $pluginManager)
{
    /** @var $cfg iMSCP_Config_Handler_File */
    $cfg = iMSCP_Registry::get('config');
    $htmlChecked = $cfg->HTML_CHECKED;
    if (($plugin = $pluginManager->loadPlugin('OwnDDNS', false, false)) !== null) {
        $pluginConfig = $plugin->getConfig();
    } else {
        set_page_message(tr("Can't load plugin configuration!"), 'error');
        redirectTo('index.php');
    }
    if (isset($_REQUEST['action'])) {
        $action = clean_input($_REQUEST['action']);
        if ($action === 'change') {
            $error = false;
            $max_allowed_accounts = clean_input($_POST['max_allowed_accounts']);
            $max_accounts_lenght = clean_input($_POST['max_accounts_lenght']);
            $update_repeat_time = clean_input($_POST['update_repeat_time']);
            $update_ttl_time = clean_input($_POST['update_ttl_time']);
            $current_update_ttl_time = clean_input($_POST['current_update_ttl_time']);
            $debugOwnddns = clean_input($_POST['debug']);
            $use_base64_encoding = clean_input($_POST['use_base64_encoding']);
            $account_name_blacklist = explode(';', clean_input($_POST['account_name_blacklist']));
            $debugOwnddns = $debugOwnddns == 'yes' ? TRUE : FALSE;
            $use_base64_encoding = $use_base64_encoding == 'yes' ? TRUE : FALSE;
            if (!is_numeric($max_allowed_accounts) || !is_numeric($max_accounts_lenght) || !is_numeric($update_repeat_time) || !is_numeric($update_ttl_time)) {
                set_page_message(tr("Wrong values in your config."), 'error');
                $error = true;
            }
            if ($update_ttl_time < 60) {
                set_page_message(tr("Value for dns TTL update time to small (min. 60)."), 'error');
                $error = true;
            }
            if (!$error) {
                $configOwnddns = array('debug' => $debugOwnddns, 'use_base64_encoding' => $use_base64_encoding, 'max_allowed_accounts' => $max_allowed_accounts, 'max_accounts_lenght' => $max_accounts_lenght, 'update_repeat_time' => $update_repeat_time, 'update_ttl_time' => $update_ttl_time, 'account_name_blacklist' => $account_name_blacklist);
                exec_query('
						UPDATE
							`plugin` SET `plugin_config` = ?
						WHERE
							`plugin_name` = ?
					', array(json_encode($configOwnddns), 'OwnDDNS'));
                if ($update_ttl_time != $current_update_ttl_time) {
                    removeOwnDDNSDnsEntries();
                    revokeOwnDDNSDnsEntries($update_ttl_time);
                }
                set_page_message(tr('The OwnDDNS settings updated successfully.'), 'success');
            }
            redirectTo('ownddns.php');
        }
    }
    $tpl->assign(array('OWNDDNS_DEBUG_YES' => $pluginConfig['debug'] === TRUE ? $htmlChecked : '', 'OWNDDNS_DEBUG_NO' => $pluginConfig['debug'] === FALSE ? $htmlChecked : '', 'OWNDDNS_BASE64_YES' => $pluginConfig['use_base64_encoding'] === TRUE ? $htmlChecked : '', 'OWNDDNS_BASE64_NO' => $pluginConfig['use_base64_encoding'] === FALSE ? $htmlChecked : '', 'MAX_ALLOWED_ACCOUNTS' => $pluginConfig['max_allowed_accounts'], 'MAX_ACCOUNTS_LENGHT' => $pluginConfig['max_accounts_lenght'], 'MAX_UPDATE_REPEAT_TIME' => $pluginConfig['update_repeat_time'], 'MAX_UPDATE_TTL_TIME' => $pluginConfig['update_ttl_time'], 'ACCOUNT_NAME_BLACKLIST' => implode(';', $pluginConfig['account_name_blacklist'])));
}
示例#3
0
/**
 * Generate page
 *
 * @param $tpl iMSCP_pTemplate
 * @param iMSCP_Plugin_Manager $pluginManager
 * @param int $userId
 * @return void
 */
function ownddns_generateAccountsList($tpl, $pluginManager, $userId)
{
    /** @var $cfg iMSCP_Config_Handler_File */
    $cfg = iMSCP_Registry::get('config');
    if (($plugin = $pluginManager->loadPlugin('OwnDDNS', false, false)) !== null) {
        $pluginConfig = $plugin->getConfig();
    } else {
        set_page_message(tr("Can't load plugin configuration!"), 'error');
        redirectTo('ownddns.php');
    }
    $baseServerVhostPrefix = $cfg->BASE_SERVER_VHOST_PREFIX == 'https://' ? 'http(s)://' : $cfg->BASE_SERVER_VHOST_PREFIX;
    if ($pluginConfig['use_base64_encoding'] === TRUE) {
        $udateURL = $baseServerVhostPrefix . $cfg->BASE_SERVER_VHOST . '/ownddns.php?action=update&data=<b64>AccountName;AccessKey;FQDN</b64>';
        set_page_message(tr('Base64 encoding is activated. Your router must send the data base64 encrypted!<br />Update-URL: <strong>%s</strong>', $udateURL), 'info');
    } else {
        $udateURL = $baseServerVhostPrefix . $cfg->BASE_SERVER_VHOST . '/ownddns.php?action=update&data=AccountName;AccessKey;FQDN';
        set_page_message(tr('Base64 encoding is deactivated. <br />Update-URL: <strong>%s</strong>', $udateURL), 'info');
    }
    $rowsPerPage = $cfg->DOMAIN_ROWS_PER_PAGE;
    if (isset($_GET['psi']) && $_GET['psi'] == 'last') {
        unset($_GET['psi']);
    }
    $startIndex = isset($_GET['psi']) ? (int) $_GET['psi'] : 0;
    $countQuery = "\n\t\tSELECT COUNT(`admin_id`) AS `cnt` \n\t\tFROM \n\t\t\t`ownddns_accounts`\n\t\tWHERE\n\t\t\t`admin_id` = ?\n\t";
    $stmt = exec_query($countQuery, $userId);
    $recordsCount = $stmt->fields['cnt'];
    $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`ownddns_accounts`\n\t\tWHERE\n\t\t\t`admin_id` = ?\n\t\tORDER BY\n\t\t\t`ownddns_account_name` ASC\n\t";
    $stmt = exec_query($query, $userId);
    if ($stmt->rowCount()) {
        $prevSi = $startIndex - $rowsPerPage;
        if ($startIndex == 0) {
            $tpl->assign('SCROLL_PREV', '');
        } else {
            $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prevSi));
        }
        $nextSi = $startIndex + $rowsPerPage;
        if ($nextSi + 1 > $recordsCount) {
            $tpl->assign('SCROLL_NEXT', '');
        } else {
            $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $nextSi));
        }
        while ($data = $stmt->fetchRow()) {
            if ($data['ownddns_account_status'] == $cfg->ITEM_OK_STATUS) {
                $statusIcon = 'ok';
            } elseif ($data['ownddns_account_status'] == $cfg->ITEM_DISABLED_STATUS) {
                $statusIcon = 'disabled';
            } elseif ($data['ownddns_account_status'] == $cfg->ITEM_TOADD_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TOCHANGE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TODELETE_STATUS || ($data['ownddns_account_status'] == $cfg->ITEM_TOADD_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TORESTORE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TOCHANGE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TOENABLE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TODISABLE_STATUS || $data['ownddns_account_status'] == $cfg->ITEM_TODELETE_STATUS)) {
                $statusIcon = 'reload';
            } else {
                $statusIcon = 'error';
            }
            $tpl->assign(array('OWNDDNS_ACCOUNT_NAME' => $data['ownddns_account_name'], 'OWNDDNS_ACCOUNT_FQDN' => $data['ownddns_account_fqdn'], 'OWNDDNS_ACCOUNT_KEY' => $data['ownddns_key'], 'OWNDDNS_ACCOUNT_ID' => $data['ownddns_account_id'], 'OWNDDNS_LAST_IP' => $data['ownddns_last_ip'] != '' ? $data['ownddns_last_ip'] : 'N/A', 'OWNDDNS_LAST_UPDATE' => $data['ownddns_last_update'] != '0000-00-00 00:00:00' ? $data['ownddns_last_update'] : 'N/A', 'OWNDDNS_ACCOUNT_STATUS' => translate_dmn_status($data['ownddns_account_status']), 'STATUS_ICON' => $statusIcon));
            $tpl->parse('OWNDDNS_ACCOUNT_ITEM', '.ownddns_account_item');
        }
        $tpl->assign('OWNDDNS_NO_ACCOUNT_ITEM', '');
        $tpl->parse('OWNDDNS_ACCOUNT_LIST', 'ownddns_account_list');
    } else {
        $tpl->assign(array('OWNDDNS_ACCOUNT_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_PREV_GRAY' => '', 'SCROLL_NEXT' => '', 'SCROLL_NEXT_GRAY' => ''));
    }
    $tpl->assign(array('OWNDDNS_EDIT_ACCOUNT' => '', 'MAX_ACCOUNT_NAME_LENGHT' => $pluginConfig['max_accounts_lenght']));
}
示例#4
0
/**
 * Update plugin list
 *
 * @param PluginManager $pluginManager
 * @param iMSCP
 * @return void
 */
function updatePluginList($pluginManager)
{
    $eventManager = $pluginManager->getEventManager();
    /** @var EventCollection $responses */
    $responses = $eventManager->dispatch(Events::onBeforeUpdatePluginList, array('pluginManager' => $pluginManager));
    if (!$responses->isStopped()) {
        $updateInfo = $pluginManager->pluginUpdateList();
        $eventManager->dispatch(Events::onAfterUpdatePluginList, array('pluginManager' => $pluginManager));
        set_page_message(tr('Plugins list has been updated: %s new plugin(s) found, %s plugin(s) updated, %s plugin(s) reconfigured, and %s plugin(s) deleted.', $updateInfo['new'], $updateInfo['updated'], $updateInfo['changed'], $updateInfo['deleted']), 'success');
    }
}