/** * 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; }
/** * 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); }