Ejemplo n.º 1
0
/**
 * Generate page
 *
 * @param iMSCP_pTemplate $tpl Template engine
 * @param iMSCP_PHPini $phpini PHP editor instance
 * @param iMSCP_Config_Handler_File $config Configuration handler
 * @param string $configLevel PHP configuration level
 * @return void
 */
function generatePage($tpl, $phpini, $config, $configLevel)
{
    $mainDmnId = get_user_domain_id($_SESSION['user_id']);
    if (isset($_GET['domain_id']) && isset($_GET['domain_type'])) {
        $dmnId = intval($_GET['domain_id']);
        $dmnType = clean_input($_GET['domain_type']);
    } else {
        $dmnId = $mainDmnId;
        $dmnType = 'dmn';
    }
    if ($configLevel == 'per_user' && $dmnType != 'dmn' || $configLevel == 'per_domain' && !in_array($dmnType, array('dmn', 'als'))) {
        showBadRequestErrorPage();
    }
    $dmnsData = getDomainData($configLevel);
    $knowDomain = false;
    foreach ($dmnsData as $dmnData) {
        if ($dmnData['domain_id'] == $dmnId && $dmnData['domain_type'] == $dmnType) {
            $knowDomain = true;
        }
    }
    if (!$knowDomain) {
        showBadRequestErrorPage();
    }
    $phpini->loadDomainIni($_SESSION['user_id'], $dmnId, $dmnType);
    if ($configLevel != 'per_user') {
        foreach ($dmnsData as $dmnData) {
            $tpl->assign(array('DOMAIN_ID' => tohtml($dmnData['domain_id'], 'htmlAttr'), 'DOMAIN_TYPE' => tohtml($dmnData['domain_type'], 'htmlAttr'), 'DOMAIN_NAME_UNICODE' => tohtml(decode_idna($dmnData['domain_name'])), 'SELECTED' => $dmnData['domain_id'] == $dmnId && $dmnData['domain_type'] == $dmnType ? ' selected' : ''));
            $tpl->parse('DOMAIN_NAME_BLOCK', '.domain_name_block');
        }
        $tpl->assign('DOMAIN_TYPE', $dmnType);
    } else {
        $tpl->assign('DOMAIN_LIST_BLOCK', '');
    }
    if (!$phpini->clientHasPermission('phpiniAllowUrlFopen')) {
        $tpl->assign('ALLOW_URL_FOPEN_BLOCK', '');
    } else {
        $tpl->assign(array('TR_ALLOW_URL_FOPEN' => tr('Allow URL fopen'), 'ALLOW_URL_FOPEN_ON' => $phpini->getDomainIni('phpiniAllowUrlFopen') == 'on' ? ' checked' : '', 'ALLOW_URL_FOPEN_OFF' => $phpini->getDomainIni('phpiniAllowUrlFopen') == 'off' ? ' checked' : ''));
    }
    if (!$phpini->clientHasPermission('phpiniDisplayErrors')) {
        $tpl->assign('DISPLAY_ERRORS_BLOCK', '');
    } else {
        $tpl->assign(array('TR_DISPLAY_ERRORS' => tr('Display errors'), 'DISPLAY_ERRORS_ON' => $phpini->getDomainIni('phpiniDisplayErrors') == 'on' ? ' checked' : '', 'DISPLAY_ERRORS_OFF' => $phpini->getDomainIni('phpiniDisplayErrors') == 'off' ? ' checked' : ''));
    }
    if (!$phpini->clientHasPermission('phpiniDisplayErrors') || $config['HTTPD_SERVER'] == 'apache_itk') {
        $tpl->assign('ERROR_REPORTING_BLOCK', '');
    } else {
        $errorReporting = $phpini->getDomainIni('phpiniErrorReporting');
        $tpl->assign(array('TR_ERROR_REPORTING' => tohtml(tr('Error reporting')), 'TR_ERROR_REPORTING_DEFAULT' => tohtml(tr('All errors, except E_NOTICES, E_STRICT AND E_DEPRECATED (Default)'), 'htmlAttr'), 'TR_ERROR_REPORTING_DEVELOPEMENT' => tohtml(tr('All errors (Development)'), 'htmlAttr'), 'TR_ERROR_REPORTING_PRODUCTION' => tohtml(tr('All errors, except E_DEPRECATED and E_STRICT (Production)'), 'htmlAttr'), 'ERROR_REPORTING_0' => $errorReporting == 'E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED' ? ' selected' : '', 'ERROR_REPORTING_1' => $errorReporting == 'E_ALL & ~E_DEPRECATED & ~E_STRICT' ? ' selected' : '', 'ERROR_REPORTING_2' => $errorReporting == '-1' ? ' selected' : ''));
    }
    if ($config['HTTPD_SERVER'] == 'apache_itk' || !$phpini->clientHasPermission('phpiniDisableFunctions')) {
        $tpl->assign(array('DISABLE_FUNCTIONS_BLOCK' => '', 'DISABLE_EXEC_BLOCK' => ''));
    } elseif ($phpini->getClientPermission('phpiniDisableFunctions') == 'exec') {
        $disableFunctions = explode(',', $phpini->getDomainIni('phpiniDisableFunctions'));
        $execYes = in_array('exec', $disableFunctions) ? false : true;
        $tpl->assign(array('TR_DISABLE_FUNCTIONS_EXEC' => tohtml(tr('PHP exec() function')), 'TR_EXEC_HELP' => tohtml(tr("When set to 'yes', your PHP scripts can call the PHP exec() function."), 'htmlAttr'), 'EXEC_YES' => $execYes ? ' checked' : '', 'EXEC_NO' => $execYes ? '' : ' checked', 'DISABLE_FUNCTIONS_BLOCK' => ''));
    } else {
        $disableableFunctions = array('EXEC', 'PASSTHRU', 'PHPINFO', 'POPEN', 'PROC_OPEN', 'SHOW_SOURCE', 'SYSTEM', 'SHELL', 'SHELL_EXEC', 'SYMLINK');
        if ($phpini->clientHasPermission('phpiniMailFunction')) {
            $disableableFunctions[] = 'MAIL';
        } else {
            $tpl->assign('MAIL_FUNCTION_BLOCK', '');
        }
        $disabledFunctions = explode(',', $phpini->getDomainIni('phpiniDisableFunctions'));
        foreach ($disableableFunctions as $function) {
            $tpl->assign($function, in_array(strtolower($function), $disabledFunctions, true) ? ' checked' : '');
        }
        $tpl->assign(array('TR_DISABLE_FUNCTIONS' => tohtml(tr('Disabled functions')), 'DISABLE_EXEC_BLOCK' => ''));
    }
    $tpl->assign(array('TR_PHP_SETTINGS' => tohtml(tr('PHP Settings')), 'TR_YES' => tohtml(tr('Yes')), 'TR_NO' => tohtml(tr('No'))));
}
Ejemplo n.º 2
0
function exportAllDomain($adm_login)
{
    global $pro_mysql_domain_table;
    $dom_ar = array("domains" => array());
    // Export all domains
    $q = "SELECT name FROM {$pro_mysql_domain_table} WHERE owner='{$adm_login}';";
    $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error());
    $n = mysql_num_rows($r);
    for ($i = 0; $i < $n; $i++) {
        $a = mysql_fetch_array($r);
        $dom_ar["domains"][$a["name"]] = getDomainData($a["name"], $adm_login);
    }
    // Get the MySQL user infos
    $q = "SELECT DISTINCT User,Password FROM mysql.user WHERE dtcowner='{$adm_login}';";
    $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error());
    $n = mysql_num_rows($r);
    for ($i = 0; $i < $n; $i++) {
        if ($i == 0) {
            $dom_ar["mysql"] = array();
        }
        $a = mysql_fetch_array($r);
        $dom_ar["mysql"][$a["User"]]["password"] = $a["Password"];
        $q2 = "SELECT DISTINCT Db FROM mysql.db WHERE User='******';";
        $r2 = mysql_query($q2) or die("Cannot query {$q2} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error());
        $n2 = mysql_num_rows($r2);
        for ($j = 0; $j < $n2; $j++) {
            $a2 = mysql_fetch_array($r2);
            if (!isset($dom_ar["mysql"][$a["User"]]["dbs"])) {
                $dom_ar["mysql"][$a["User"]]["dbs"] = array();
            }
            $dom_ar["mysql"][$a["User"]]["dbs"][$a2["Db"]] = "yes";
        }
    }
    // Serialize into a XML document
    $options = array("indent" => "\t", "linebreak" => "\n", "addDecl" => true, "encoding" => "UTF-8", "rootAttributes" => array("version" => "0.1"), "rootName" => "dtc-export-file", "defaultTagName" => "item", "attributesArray" => "_attributes");
    $serializer = new XML_Serializer($options);
    $serializer->serialize($dom_ar);
    $xml = $serializer->getSerializedData();
    return $xml;
}