Example #1
0
    $results = CourseRoadDB::getAutocompleteResults($_POST['autocomplete']);
    dieJSON($results);
}
// Loads class data from the database and serves up the JSON which CourseRoad
// requires to load that class.
if (isset($_POST['getClass'])) {
    requirePostDataFields('subjectId');
    $class = $_POST['subjectId'];
    $year = isset($_POST['year']) ? $_POST['year'] : false;
    dieJSON(pullClass($class, $year));
}
// Same, but for a custom class. These are used by the Add tab.
if (isset($_POST['getCustom'])) {
    requirePostDataFields('name');
    $units = isset($_POST['units']) ? floatval($_POST['units']) : false;
    dieJSON(pullCustom($_POST['name'], $units));
}
// Returns the desired hash's class and major data
if (isset($_POST['getHash'])) {
    requireCSRF();
    requirePostDataFields('hash');
    dieJSON(buildClassesArray($_POST['hash']));
}
// If we haven't tried to log in, then default to false.
if (!isset($_SESSION['triedcert'])) {
    $_SESSION['triedcert'] = false;
}
// SESSION.athena is only set within secure.php, so if it has a value then we've
// logged in sucessfully
$loggedin = isset($_SESSION['athena']);
$athena = $loggedin ? $_SESSION['athena'] : false;
Example #2
0
function buildClassesArray($hash)
{
    $_SESSION['crhash'] = $hash;
    // Pull out the latest matching saved road's classes and majors
    $classdata = CourseRoadDB::getClassDataFromRoad($hash);
    if (!$classdata) {
        die;
    }
    $classes = json_decode(CourseRoadDB::decrypt($classdata['classes']), true);
    $majors = stripslashes(CourseRoadDB::decrypt($classdata['majors']));
    $majors = json_decode($majors, true);
    if (!$classes) {
        return array('error' => true, 'errorDesc' => 'No classes');
    }
    $classes_data = array();
    foreach ($classes as &$class) {
        if (!isset($class['override'])) {
            $class['override'] = false;
        }
        if (!isset($class['substitute'])) {
            $class['substitute'] = '';
        }
        if (isset($class['custom'])) {
            $classes_data[] = pullCustom($class['name'], $class['units'], $class['term'], $class['override'], $class['substitute']);
        } else {
            $classdata = pullClass($class['id'], $class['year'], $class['term'], $class['override'], $class['substitute']);
            if ($classdata !== 'noclass') {
                $classes_data[] = $classdata;
            }
        }
    }
    return array('classes' => $classes_data, 'majors' => $majors);
}