die('Illegal Access');
}
require_once DIR_FS_CATALOG_MODULES . 'googlebase/library/gb-http.php';
require_once DIR_FS_CATALOG_MODULES . 'googlebase/googlebase.php';
$action = isset($_GET['action']) ? $_GET['action'] : '';
$token = isset($_GET['token']) ? $_GET['token'] : '';
$gb = new googlebase();
$is_authenticated = $gb->getOption('token') != null;
//TODO: && is_valid_token
if (!$is_authenticated && zen_not_null($action) && $action == 'auth' || zen_not_null($token)) {
    require_once DIR_FS_CATALOG_MODULES . 'googlebase/library/gb-authentication.php';
    if (zen_not_null($token)) {
        $gbhttp = googlebase::getGbaseHttpRequest();
        $response = gb_get_session_token($token, $gbhttp);
        if (!$response->hasErrors()) {
            $gb->setOption('token', $response->getParsedToken());
            $is_authenticated = true;
        } else {
            global $messageStack;
            $msg = "Authentication failed with error: <code>" . $response->getConnectionError() . '<br>' . strip_tags($response->getResponseBody) . '</code>';
            $messageStack->add_session($msg, 'error');
        }
        $gbhttp->close();
    } else {
        zen_redirect(gb_get_authentication_url());
    }
}
if (zen_not_null($action)) {
    if ($action == 'options') {
        $gb->editOptions();
    } else {