{ if (!isset($entry['owner'])) { throw new Exception('OAuth Consumer has no owner. Which means no one is granted access, not even you.'); } if ($entry['owner'] !== $userid) { throw new Exception('OAuth Consumer has an owner that is not equal to your userid, hence you are not granted access.'); } } if (array_key_exists('editkey', $_REQUEST)) { $entryc = $store->get('consumers', $_REQUEST['editkey'], ''); $entry = $entryc['value']; requireOwnership($entry, $userid); } else { $entry = array('owner' => $userid, 'key' => SimpleSAML_Utilities::generateID(), 'secret' => SimpleSAML_Utilities::generateID()); } $editor = new sspmod_oauth_Registry(); if (isset($_POST['submit'])) { $editor->checkForm($_POST); $entry = $editor->formToMeta($_POST, array(), array('owner' => $userid)); requireOwnership($entry, $userid); # echo('<pre>Created: '); print_r($entry); exit; $store->set('consumers', $entry['key'], '', $entry); $template = new SimpleSAML_XHTML_Template($config, 'oauth:registry.saved.php'); $template->data['entry'] = $entry; $template->show(); exit; } $form = $editor->metaToForm($entry); $template = new SimpleSAML_XHTML_Template($config, 'oauth:registry.edit.tpl.php'); $template->data['form'] = $form; $template->show();
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; }