Exemple #1
0
/**
 * Returns domain data
 *
 * @param int $domainId Domain unique identifier
 * @param bool $forUpdate Tell whether or not data are fetched for update
 * @return array Reference to array of data
 */
function &reseller_getData($domainId, $forUpdate = false)
{
    static $data = null;
    $cfg = iMSCP_Registry::get('config');
    if (null !== $data) {
        return $data;
    }
    $statusOk = "ok|disabled|ordered";
    // Checks for domain existence and status
    $stmt = exec_query('
            SELECT
                t1.domain_status, COUNT(t3.subdomain_status) + COUNT(t4.alias_status) +
                COUNT(t5.subdomain_alias_status) AS status_not_ok
            FROM domain AS t1
            INNER JOIN admin AS t2 ON(admin_id = domain_admin_id)
            LEFT JOIN subdomain AS t3 ON (t1.domain_id = t3.domain_id AND t3.subdomain_status NOT RLIKE ?)
            LEFT JOIN domain_aliasses AS t4 ON (t1.domain_id = t4.domain_id AND t4.alias_status NOT RLIKE ?)
            LEFT JOIN subdomain_alias AS t5 ON (t5.alias_id = t4.alias_id AND t5.subdomain_alias_status NOT RLIKE ?)
            WHERE t1.domain_id = ?
            AND t2.created_by = ?
        ', array($statusOk, $statusOk, $statusOk, $domainId, $_SESSION['user_id']));
    $row = $stmt->fetchRow(PDO::FETCH_ASSOC);
    if ($row['domain_status'] == '') {
        set_page_message(tr("The domain you are trying to edit doesn't exist."), 'error');
        redirectTo('users.php');
    }
    if ($row['domain_status'] != 'ok' && $row['domain_status'] != 'disabled' || $row['status_not_ok'] > 0) {
        set_page_message(tr("The domain or at least one of its entities has a different status than 'ok'."), 'warning');
        redirectTo('users.php');
    }
    if ($row['domain_status'] == 'disabled') {
        set_page_message(tr('The domain is currently deactivated. The modification of some of its properties will result by a complete or partial reactivation of it.'), 'warning');
    }
    $domainProps = reseller_getDomainProps($domainId);
    $resellerProps = reseller_getResellerProps($_SESSION['user_id']);
    list($subCount, $alsCount, $mailCount, $ftpCount, $sqlDbCount, $sqlUsersCount) = get_domain_running_props_cnt($domainId);
    $data['nbSubdomains'] = $subCount;
    $data['nbAliasses'] = $alsCount;
    $data['nbMailAccounts'] = $mailCount;
    $data['nbFtpAccounts'] = $ftpCount;
    $data['nbSqlDatabases'] = $sqlDbCount;
    $data['nbSqlUsers'] = $sqlUsersCount;
    $data = array_merge($data, $domainProps, $resellerProps);
    // Fallback values
    $data['fallback_domain_expires'] = $data['domain_expires'];
    $data['fallback_domain_ip_id'] = $data['domain_ip_id'];
    $data['fallback_domain_subd_limit'] = $data['domain_subd_limit'];
    $data['fallback_domain_alias_limit'] = $data['domain_alias_limit'];
    $data['fallback_domain_mailacc_limit'] = $data['domain_mailacc_limit'];
    $data['fallback_domain_ftpacc_limit'] = $data['domain_ftpacc_limit'];
    $data['fallback_domain_sqld_limit'] = $data['domain_sqld_limit'];
    $data['fallback_domain_sqlu_limit'] = $data['domain_sqlu_limit'];
    $data['fallback_domain_traffic_limit'] = $data['domain_traffic_limit'];
    $data['fallback_domain_disk_limit'] = $data['domain_disk_limit'];
    $data['fallback_domain_php'] = $data['domain_php'];
    $data['fallback_domain_cgi'] = $data['domain_cgi'];
    $data['fallback_domain_dns'] = $data['domain_dns'];
    $data['fallback_domain_software_allowed'] = $data['domain_software_allowed'];
    $data['fallback_allowbackup'] = $data['allowbackup'] = explode('|', $data['allowbackup']);
    $data['fallback_domain_external_mail'] = $data['domain_external_mail'];
    $data['fallback_web_folder_protection'] = $data['web_folder_protection'];
    $data['fallback_mail_quota'] = $data['mail_quota'];
    $data['domain_expires_ok'] = true;
    $data['domain_never_expires'] = $data['domain_expires'] == 0 ? 'on' : 'off';
    $phpini = iMSCP_PHPini::getInstance();
    $phpini->loadResellerPermissions($_SESSION['user_id']);
    // Load reseller PHP permissions
    $phpini->loadClientPermissions($data['admin_id']);
    // Load client PHP permissions
    $phpini->loadDomainIni($data['admin_id'], $data['domain_id'], 'dmn');
    // Load domain PHP configuration options
    if ($forUpdate) {
        // Post request
        foreach (array('domain_subd_limit' => 'max_sub_cnt', 'domain_alias_limit' => 'max_als_cnt', 'domain_mailacc_limit' => 'max_mail_cnt', 'mail_quota' => 'max_mail_cnt', 'domain_ftpacc_limit' => 'max_ftp_cnt', 'domain_sqld_limit' => 'max_sql_db_cnt', 'domain_sqlu_limit' => 'max_sql_user_cnt', 'domain_traffic_limit' => 'max_traff_amnt', 'domain_disk_limit' => 'max_disk_amnt') as $customerLimit => $resellerMaxLimit) {
            if (array_key_exists($customerLimit, $_POST) && $data[$resellerMaxLimit] != -1) {
                $data[$customerLimit] = clean_input($_POST[$customerLimit]);
            }
        }
        $data['domain_ip_id'] = isset($_POST['domain_ip_id']) ? clean_input($_POST['domain_ip_id']) : $data['domain_ip_id'];
        $data['domain_expires'] = isset($_POST['domain_expires']) ? clean_input($_POST['domain_expires']) : $data['domain_expires'];
        $data['domain_never_expires'] = isset($_POST['domain_never_expires']) ? clean_input($_POST['domain_never_expires']) : 'off';
        $data['domain_php'] = isset($_POST['domain_php']) ? clean_input($_POST['domain_php']) : $data['domain_php'];
        $data['domain_cgi'] = isset($_POST['domain_cgi']) ? clean_input($_POST['domain_cgi']) : $data['domain_cgi'];
        $data['domain_dns'] = isset($_POST['domain_dns']) ? clean_input($_POST['domain_dns']) : $data['domain_dns'];
        if ($data['software_allowed'] === 'yes') {
            $data['domain_software_allowed'] = isset($_POST['domain_software_allowed']) ? clean_input($_POST['domain_software_allowed']) : $data['domain_software_allowed'];
        } else {
            $data['domain_software_allowed'] = 'no';
        }
        if ($cfg['BACKUP_DOMAINS'] === 'yes') {
            $data['allowbackup'] = isset($_POST['allowbackup']) && is_array($_POST['allowbackup']) ? array_intersect($_POST['allowbackup'], array('dmn', 'sql', 'mail')) : array();
        } else {
            $data['allowbackup'] = array();
        }
        $data['domain_external_mail'] = isset($_POST['domain_external_mail']) ? clean_input($_POST['domain_external_mail']) : $data['domain_external_mail'];
        $data['web_folder_protection'] = isset($_POST['web_folder_protection']) ? clean_input($_POST['web_folder_protection']) : $data['web_folder_protection'];
    }
    return $data;
}
Exemple #2
0
    $user_id = $_SESSION['user_id'];
    $user_layout = $_POST['def_layout'];
    $query = <<<SQL_QUERY
        update
            user_gui_props
        set
            layout = ?
        where
            user_id = ?

SQL_QUERY;
    $rs = exec_query($sql, $query, array($user_layout, $user_id));
    $theme_color = $user_layout;
}
list($dmn_id, $dmn_name, $dmn_gid, $dmn_uid, $dmn_created_id, $dmn_created, $dmn_last_modified, $dmn_mailacc_limit, $dmn_ftpacc_limit, $dmn_traff_limit, $dmn_sqld_limit, $dmn_sqlu_limit, $dmn_status, $dmn_als_limit, $dmn_subd_limit, $dmn_ip_id, $dmn_disk_limit, $dmn_disk_usage, $dmn_php, $dmn_cgi) = get_domain_default_props($sql, $_SESSION['user_id']);
list($sub_cnt, $als_cnt, $mail_acc_cnt, $ftp_acc_cnt, $sqld_acc_cnt, $sqlu_acc_cnt) = get_domain_running_props_cnt($sql, $dmn_id);
// ko ima jump from other user interface neka esik i optica da ostanat tezi na
// ska4ashtijat user
if (!isset($_SESSION['logged_from']) && !isset($_SESSION['logged_from_id'])) {
    list($user_def_lang, $user_def_layout) = get_user_gui_props($sql, $_SESSION['user_id']);
} else {
    $user_def_layout = $_SESSION['user_theme_color'];
    $user_def_lang = $_SESSION['user_def_lang'];
}
gen_def_language($tpl, $sql, $user_def_lang);
gen_def_layout($tpl, $sql, $user_def_layout);
$dtraff_pr = 0;
$dmn_traff_usege = 0;
$dmn_traff_limit = $dmn_traff_limit * 1024 * 1024;
list($dtraff_pr, $dmn_traff_usege) = make_traff_usege($_SESSION['user_id']);
$dmn_disk_limit = $dmn_disk_limit * 1024 * 1024;
Exemple #3
0
/************************************************************************************
 * Main script
 */
// Include core libraries
require_once 'imscp-lib.php';
iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptStart);
/** @var $cfg iMSCP_Config_Handler_File */
$cfg = iMSCP_Registry::get('config');
check_login('user', $cfg->PREVENT_EXTERNAL_LOGIN_CLIENT);
$tpl = new iMSCP_pTemplate();
$tpl->define_dynamic(array('layout' => 'shared/layouts/ui.tpl', 'page' => 'client/index.tpl', 'page_message' => 'layout', 'alternative_domain_url' => 'page', 'backup_domain_feature' => 'page', 'traffic_warning' => 'page', 'disk_warning' => 'page'));
$tpl->assign('TR_PAGE_TITLE', tr('Client / General / Overview'));
generateNavigation($tpl);
client_generateSupportSystemNotices();
client_generateDomainExpiresInformation($tpl);
client_generateFeatureStatus($tpl);
$domainProperties = get_domain_default_props($_SESSION['user_id']);
list($domainTrafficPercent, $domainTrafficUsage) = client_makeTrafficUsage($domainProperties['domain_id']);
client_generateTrafficUsageBar($tpl, $domainTrafficUsage * 1024 * 1024, $domainProperties['domain_traffic_limit'] * 1024 * 1024, 400);
client_generateDiskUsageBar($tpl, $domainProperties['domain_disk_usage'], $domainProperties['domain_disk_limit'] * 1024 * 1024, 400);
if ($domainProperties['domain_status'] == 'ok') {
    $tpl->assign('HREF_DOMAIN_ALTERNATIVE_URL', "http://{$cfg->SYSTEM_USER_PREFIX}" . ($cfg->SYSTEM_USER_MIN_UID + $_SESSION['user_id']) . ".{$cfg->BASE_SERVER_VHOST}");
} else {
    $tpl->assign('DOMAIN_ALTERNATIVE_URL', '');
}
list($subdomainCount, $domainAliasCount, $mailAccountsCount, $ftpAccountsCount, $sqlDatabasesCount, $sqlUsersCount) = get_domain_running_props_cnt($domainProperties['domain_id']);
$tpl->assign(array('TR_DOMAIN_ACCOUNT' => tr('Domain account'), 'TR_ACCOUNT_NAME' => tr('Account name'), 'TR_DOMAIN_NAME' => tr('Domain name'), 'DOMAIN_NAME' => tohtml(decode_idna($domainProperties['domain_name'])), 'TR_DOMAIN_ALTERNATIVE_URL' => tr('Alternative URL to reach your website'), 'TR_DOMAIN_EXPIRES_DATE' => tr('Domain expiration date'), 'TR_FEATURE' => tr('Feature'), 'TR_FEATURE_STATUS' => tr('Status'), 'TR_DOMAIN_FEATURE' => tr('Domain'), 'TR_DOMAIN_ALIASES_FEATURE' => tr('Domain aliases'), 'DOMAIN_ALIASES_FEATURE_STATUS' => gen_num_limit_msg($domainAliasCount, $domainProperties['domain_alias_limit']), 'SUBDOMAINS_FEATURE_STATUS' => gen_num_limit_msg($subdomainCount, $domainProperties['domain_subd_limit']), 'TR_SUBDOMAINS_FEATURE' => tr('Subdomains'), 'TR_FTP_ACCOUNTS_FEATURE' => tr('FTP accounts'), 'FTP_ACCOUNTS_FEATURE_STATUS' => gen_num_limit_msg($ftpAccountsCount, $domainProperties['domain_ftpacc_limit']), 'TR_MAIL_ACCOUNTS_FEATURE' => tr('Email accounts'), 'MAIL_ACCOUNTS_FEATURE_STATUS' => gen_num_limit_msg($mailAccountsCount, $domainProperties['domain_mailacc_limit']), 'TR_MAIL_QUOTA' => tr('Email quota'), 'EMAIL_QUOTA_STATUS' => gen_mail_quota_limit_mgs(), 'TR_SQL_DATABASES_FEATURE' => tr('SQL databases'), 'SQL_DATABASE_FEATURE_STATUS' => gen_num_limit_msg($sqlDatabasesCount, $domainProperties['domain_sqld_limit']), 'TR_SQL_USERS_FEATURE' => tr('SQL users'), 'SQL_USERS_FEATURE_STATUS' => gen_num_limit_msg($sqlUsersCount, $domainProperties['domain_sqlu_limit']), 'TR_PHP_SUPPORT_FEATURE' => tr('PHP'), 'TR_PHP_DIRECTIVES_EDITOR_SUPPORT_FEATURE' => tr('PHP Editor'), 'TR_CGI_SUPPORT_FEATURE' => tr('CGI'), 'TR_CUSTOM_DNS_RECORDS_FEATURE' => tr('Custom DNS records'), 'TR_EXTERNAL_MAIL_SERVER_FEATURE' => tr('External mail servers'), 'TR_APP_INSTALLER_FEATURE' => tr('Software installer'), 'TR_BACKUP_FEATURE' => tr('Backup'), 'TR_WEBSTATS_FEATURE' => tr('Web statistics'), 'TR_TRAFFIC_USAGE' => tr('Traffic usage'), 'TR_DISK_USAGE' => tr('Disk usage'), 'TR_DISK_USAGE_DETAIL' => tr('Disk usage detail'), 'TR_DISK_FILE_USAGE' => tr('File usage'), 'DISK_FILESIZE' => bytesHuman($domainProperties['domain_disk_file']), 'TR_DISK_DATABASE_USAGE' => tr('Database usage'), 'DISK_SQLSIZE' => bytesHuman($domainProperties['domain_disk_sql']), 'TR_DISK_MAIL_USAGE' => tr('Mail usage'), 'DISK_MAILSIZE' => bytesHuman($domainProperties['domain_disk_mail'])));
generatePageMessage($tpl);
$tpl->parse('LAYOUT_CONTENT', 'page');
iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptEnd, array('templateEngine' => $tpl));
$tpl->prnt();