Exemplo n.º 1
0
function push($file, $fileWithoutExt, $aid, $type)
{
    if (!file_exists($file)) {
        throw new Exception('Could not find file: ' . $file);
    }
    $fileContent = file_get_contents($file);
    global $baseDir;
    require_once $baseDir . '/modules/oauth/libextinc/OAuth.php';
    $translationconfig = SimpleSAML_Configuration::getConfig('translation.php');
    $baseurl = $translationconfig->getString('baseurl');
    $key = $translationconfig->getString('key');
    $secret = $translationconfig->getString('secret');
    echo 'Using OAuth to authenticate you to the translation portal' . "\n";
    $consumer = new sspmod_oauth_Consumer($key, $secret);
    $storage = new sspmod_core_Storage_SQLPermanentStorage('oauth_clientcache');
    $cachedAccessToken = $storage->get('accesstoken', 'translation', '');
    $accessToken = NULL;
    if (empty($cachedAccessToken)) {
        // Get the request token
        $requestToken = $consumer->getRequestToken($baseurl . '/module.php/oauth/requestToken.php');
        echo "Got a request token from the OAuth service provider [" . $requestToken->key . "] with the secret [" . $requestToken->secret . "]\n";
        // Authorize the request token
        $url = $consumer->getAuthorizeRequest($baseurl . '/module.php/oauth/authorize.php', $requestToken, FALSE);
        echo 'Go to this URL to authenticate/authorize the request: ' . $url . "\n";
        system('open ' . $url);
        ssp_readline('Click enter when you have completed the authorization step using your web browser...');
        // Replace the request token with an access token
        $accessToken = $consumer->getAccessToken($baseurl . '/module.php/oauth/accessToken.php', $requestToken);
        echo "Got an access token from the OAuth service provider [" . $accessToken->key . "] with the secret [" . $accessToken->secret . "]\n";
        $storage->set('accesstoken', 'translation', '', $accessToken);
    } else {
        $accessToken = $cachedAccessToken['value'];
        echo 'Successfully read OAuth Access Token from cache [' . $accessToken->key . ']' . "\n";
    }
    $pushURL = $baseurl . '/module.php/translationportal/push.php';
    $request = array('data' => base64_encode($fileContent), 'file' => $fileWithoutExt, 'aid' => $aid, 'type' => $type);
    $result = $consumer->postRequest($pushURL, $accessToken, $request);
    echo $result;
}