$userid = $attributes[$useridattr][0]; } else { $as = SimpleSAML_Auth_Source::getById($authsource); $as->initLogin(\SimpleSAML\Utils\HTTP::getSelfURL()); } function requireOwnership($entry, $userid) { 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 (isset($_REQUEST['delete'])) { $entryc = $store->get('consumers', $_REQUEST['delete'], ''); $entry = $entryc['value']; requireOwnership($entry, $userid); $store->remove('consumers', $entry['key'], ''); } $list = $store->getList('consumers'); $slist = array('mine' => array(), 'others' => array()); if (is_array($list)) { foreach ($list as $listitem) { if (array_key_exists('owner', $listitem['value'])) { if ($listitem['value']['owner'] === $userid) { $slist['mine'][] = $listitem; continue; } } $slist['others'][] = $listitem;
} $userid = $attributes[$useridattr][0]; } else { SimpleSAML_Auth_Default::initLogin($authsource, SimpleSAML_Utilities::selfURL()); } function requireOwnership($entry, $userid) { 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();
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; }