Example #1
0
/**
 * fetch next available (within quota) lab instance number for a given user id
 *
 * @param   int $user_id user id
 *
 * @return  int|bool                lab instance | FALSE on error
 */
function ace_db_user_get_available_lab_instance($user_id)
{
    $quota_array = ace_db_user_get_quota_array($user_id);
    $lab_quota = $quota_array['labs'];
    $instance_list = array();
    $user_lab_table = ace_db_user_get_lab_table($user_id);
    if (is_array($user_lab_table)) {
        for ($row = 0; $row < count($user_lab_table); $row++) {
            $instance_list[$row] = $user_lab_table[$row]['instance'];
        }
        $valid_instances = range(1, $lab_quota);
        $available_instances = array_diff($valid_instances, $instance_list);
        if (count($available_instances) > 0) {
            $available_instance = reset($available_instances);
            $return = $available_instance;
        } else {
            $return = FALSE;
        }
    } else {
        $return = 1;
    }
    return $return;
}
Example #2
0
/**
 * returns an array of quotas
 *
 * @api
 *
 * @param   int $user_id user id
 *
 * @return  array|bool              array of quotas | FALSE on error
 */
function ace_user_get_quota($user_id)
{
    return ace_db_user_get_quota_array($user_id);
}