예제 #1
0
/**
 * Check SQL permissions
 *
 * @param iMSCP_pTemplate $tpl
 * @param int $databaseId Database unique identifier
 */
function client_checkSqlUserPermissions($tpl, $databaseId)
{
    $domainProperties = get_domain_default_props($_SESSION['user_id']);
    $domainSqlUsersLimit = $domainProperties['domain_sqlu_limit'];
    $limits = get_domain_running_sql_acc_cnt($domainProperties['domain_id']);
    if ($domainSqlUsersLimit != 0 && $limits[1] >= $domainSqlUsersLimit) {
        $tpl->assign('CREATE_SQLUSER', '');
    }
    $stmt = exec_query('
            SELECT domain_id FROM domain INNER JOIN sql_database USING(domain_id)
            WHERE domain_id = ? AND sqld_id = ? LIMIT 1
        ', array($domainProperties['domain_id'], $databaseId));
    if (!$stmt->rowCount()) {
        showBadRequestErrorPage();
    }
}
예제 #2
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param int $user_id
 * @param int $db_id
 * @param bool $sqluser_available
 * @return void
 */
function check_sql_permissions($tpl, $sql, $user_id, $db_id, $sqluser_available)
{
    $dmn_props = get_domain_default_props($user_id);
    list(, $sqlu_acc_cnt) = get_domain_running_sql_acc_cnt($sql, $dmn_props['domain_id']);
    if ($dmn_props['domain_sqlu_limit'] != 0 && $sqlu_acc_cnt >= $dmn_props['domain_sqlu_limit']) {
        if (!$sqluser_available) {
            set_page_message(tr('SQL users limit reached!'), 'warning');
            user_goto('sql_manage.php');
        }
    } else {
        $tpl->assign('CREATE_SQLUSER', true);
    }
    $dmn_name = $_SESSION['user_logged'];
    $query = "\n\t\tSELECT\n\t\t\tt1.`sqld_id`, t2.`domain_id`, t2.`domain_name`\n\t\tFROM\n\t\t\t`sql_database` AS t1,\n\t\t\t`domain` AS t2\n\t\tWHERE\n\t\t\tt1.`sqld_id` = ?\n\t\tAND\n\t\t\tt2.`domain_id` = t1.`domain_id`\n\t\tAND\n\t\t\tt2.`domain_name` = ?\n\t";
    $rs = exec_query($sql, $query, array($db_id, $dmn_name));
    if ($rs->recordCount() == 0) {
        set_page_message(tr('User does not exist or you do not have permission to access this interface!'), 'warning');
        user_goto('sql_manage.php');
    }
}
예제 #3
0
function check_sql_permissions(&$tpl, $sql, $user_id, $db_id, $sqluser_available)
{
    if (isset($_SESSION['sql_support']) && $_SESSION['sql_support'] == "no") {
        header("Location: index.php");
    }
    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, $user_id);
    list($sqld_acc_cnt, $sqlu_acc_cnt) = get_domain_running_sql_acc_cnt($sql, $dmn_id);
    if ($dmn_sqlu_limit != 0 && $sqlu_acc_cnt >= $dmn_sqlu_limit) {
        if (!$sqluser_available) {
            set_page_message(tr('SQL-user limit expired!'));
            header("Location: manage_sql.php");
            die;
        } else {
            $tpl->assign('CREATE_SQLUSER', '');
        }
    }
    $dmn_name = $_SESSION['user_logged'];
    $query = <<<SQL_QUERY
        select
            t1.sqld_id, t2.domain_id, t2.domain_name
        from
            sql_database as t1,
            domain as t2
        where
            t1.sqld_id = ?
          and
            t2.domain_id = t1.domain_id
          and
            t2.domain_name = ?
SQL_QUERY;
    $rs = exec_query($sql, $query, array($db_id, $dmn_name));
    if ($rs->RecordCount() == 0) {
        set_page_message(tr('User does not exist or you do not have permission to access this interface!'));
        header('Location: manage_sql.php');
        die;
    }
}
function get_domain_running_props_cnt(&$sql, $domain_id)
{
    $sub_cnt = get_domain_running_sub_cnt($sql, $domain_id);
    $als_cnt = get_domain_running_als_cnt($sql, $domain_id);
    list($mail_acc_cnt, $dmn_mail_acc_cnt, $sub_mail_acc_cnt, $als_mail_acc_cnt) = get_domain_running_mail_acc_cnt($sql, $domain_id);
    list($ftp_acc_cnt, $dmn_ftp_acc_cnt, $sub_ftp_acc_cnt, $als_ftp_acc_cnt) = get_domain_running_ftp_acc_cnt($sql, $domain_id);
    list($sqld_acc_cnt, $sqlu_acc_cnt) = get_domain_running_sql_acc_cnt($sql, $domain_id);
    return array($sub_cnt, $als_cnt, $mail_acc_cnt, $ftp_acc_cnt, $sqld_acc_cnt, $sqlu_acc_cnt);
}
예제 #5
0
/**
 * Get domain limit properties
 *
 * @param  int $domainId Domain unique identifier
 * @return array
 */
function get_domain_running_props_cnt($domainId)
{
    $subCount = get_domain_running_sub_cnt($domainId);
    $alsCount = get_domain_running_als_cnt($domainId);
    list($mailAccCount) = get_domain_running_mail_acc_cnt($domainId);
    // Transitional query - Will be removed asap
    $stmt = exec_query('SELECT domain_admin_id FROM domain WHERE domain_id = ?', $domainId);
    $ftpAccCount = get_customer_running_ftp_acc_cnt($stmt->fields['domain_admin_id']);
    list($sqlDbCount, $sqlUserCount) = get_domain_running_sql_acc_cnt($domainId);
    return array($subCount, $alsCount, $mailAccCount, $ftpAccCount, $sqlDbCount, $sqlUserCount);
}
예제 #6
0
/**
 * check user sql permission
 */
function check_sql_permissions($sql, $user_id)
{
    if (isset($_SESSION['sql_support']) && $_SESSION['sql_support'] == "no") {
        header("Location: index.php");
    }
    $dmn_props = get_domain_default_props($user_id);
    list($sqld_acc_cnt) = get_domain_running_sql_acc_cnt($sql, $dmn_props['domain_id']);
    if ($dmn_props['domain_sqld_limit'] != 0 && $sqld_acc_cnt >= $dmn_props['domain_sqld_limit']) {
        set_page_message(tr('SQL accounts limit reached!'), 'warning');
        user_goto('sql_manage.php');
    }
}
예제 #7
0
/**
 * Check SQL permissions
 *
 * @return void
 */
function client_checkSqlDbLimit()
{
    $mainDmnProps = get_domain_default_props($_SESSION['user_id']);
    $mainDmnId = $mainDmnProps['domain_id'];
    $sqlDatabaseLimit = $mainDmnProps['domain_sqld_limit'];
    list($nbSqlDb) = get_domain_running_sql_acc_cnt($mainDmnId);
    if ($sqlDatabaseLimit != 0 && $nbSqlDb >= $sqlDatabaseLimit) {
        set_page_message(tr('SQL database limit reached.'), 'error');
        redirectTo('sql_manage.php');
    }
}
function check_sql_permissions($sql, $user_id)
{
    if (isset($_SESSION['sql_support']) && $_SESSION['sql_support'] == "no") {
        header("Location: index.php");
    }
    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, $user_id);
    list($sqld_acc_cnt, $sqlu_acc_cnt) = get_domain_running_sql_acc_cnt($sql, $dmn_id);
    if ($dmn_sqld_limit != 0 && $sqld_acc_cnt >= $dmn_sqld_limit) {
        set_page_message(tr('SQL accounts limit expired!'));
        header("Location: manage_sql.php");
        die;
    }
}