Setting user limits in WHMCS

You can limit operations rate with the ostor-limits service and the following parameters: emailAddress specifying the email address, default=, get=, put=, list=, or delete= specifying the limit value.

Similarly, you can limit outgoing bandwidth of a response with the following parameters: emailAddress specifying the email address, out= specifying the limit value. WHMCS configures user limits in an S3 cluster when you click the Set button. Create a file S3_setLimitsForUser.php with the following contents:

<?php

// Load configuration and libraries.
require('../../includes/staas_scripts/S3_getClient.php');
require('../../includes/staas_scripts/S3_getConfig.php');
require('../../includes/staas_scripts/S3_requestCurl.php');
require('../../init.php');

// Set s3 user limits.
function S3_setLimitsForUser($vars) {

    // Load configuration.
    $s3_config = s3_getConfig();

    // Get whmcs user email.
    $s3_whmcs = S3_getClient($vars['userid'], $s3_config['whmcs_username']);

    // Set only if value specified.
    if (!empty($vars['ops-value'])) {

        // Set s3 bucket limits (ops).
        S3_requestCurl(
            $s3_config['s3_key'],
            $s3_config['s3_secret'],
            $s3_config['s3_gateway'],
                "/?ostor-limits&emailAddress=" . $s3_whmcs['email'] .
                "&limit-type=ops&limit-resource=" . $vars['ops-name'] .
                    '&limit-value=' . $vars['ops-value'],
            "PUT"
        );
    }

    // Set only if value specified.
    if (!empty($vars['bandwidth-value'])) {

        // Set s3 bucket limits (bandwidth).
        S3_requestCurl(
            $s3_config['s3_key'],
            $s3_config['s3_secret'],
            $s3_config['s3_gateway'],
                "/?ostor-limits&emailAddress=" . $s3_whmcs['email'] .
                "&limit-type=bandwidth&limit-resource=" . $vars['bandwidth-name'] .
                    '&limit-value=' . $vars['bandwidth-value'],
            "PUT"
        );
    }

    // Redirect back.
    header('Location: ' . $_SERVER['HTTP_REFERER']);
}

// Call function.
S3_setLimitsForUser($_GET);

?>