Skip to content
Snippets Groups Projects
Commit f65f7cd4 authored by Tim van Dijen's avatar Tim van Dijen
Browse files

Fix indentation / PSR-2

parent 4b9aa3ec
Branches
Tags
No related merge requests found
......@@ -4,25 +4,21 @@
*
*/
$config = array (
$config = array(
/* Enable the getUserInfo endpoint. Do not enable unless you know what you do.
* It may give external parties access to userInfo unless properly secured.
*/
'getUserInfo.enable' => true,
/* Enable the getUserInfo endpoint. Do not enable unless you know what you do.
* It may give external parties access to userInfo unless properly secured.
*/
'getUserInfo.enable' => TRUE,
'requestTokenDuration' => 60*30, // 30 minutes
'accessTokenDuration' => 60*60*24, // 24 hours
'nonceCache' => 60*60*24*14, // 14 days
'requestTokenDuration' => 60 * 30, // 30 minutes
'accessTokenDuration' => 60 * 60 * 24, // 24 hours
'nonceCache' => 60 * 60 * 24 * 14, // 14 days
// Tag to run storage cleanup script using the cron module...
'cron_tag' => 'hourly',
// Tag to run storage cleanup script using the cron module...
'cron_tag' => 'hourly',
// auth is the idp to use for admin authentication,
// useridattr is the attribute-name that contains the userid as returned from idp
'auth' => 'default-sp',
'useridattr', 'user',
// auth is the idp to use for admin authentication,
// useridattr is the attribute-name that contains the userid as returned from idp
'auth' => 'default-sp',
'useridattr', 'user',
);
<?php
/**
* Hook to run a cron job.
*
* @param array &$croninfo Output
*/
function oauth_hook_cron(&$croninfo) {
assert(is_array($croninfo));
assert(array_key_exists('summary', $croninfo));
assert(array_key_exists('tag', $croninfo));
$oauthconfig = \SimpleSAML\Configuration::getOptionalConfig('module_statistics.php');
if (is_null($oauthconfig->getValue('cron_tag', 'hourly'))) return;
if ($oauthconfig->getValue('cron_tag', NULL) !== $croninfo['tag']) return;
try {
$store = new \SimpleSAML\Module\core\Storage\SQLPermanentStorage('oauth');
$cleaned = $store->removeExpired();
# if ($cleaned > 0)
$croninfo['summary'][] = 'OAuth clean up. Removed ' . $cleaned . ' expired entries from OAuth storage.';
} catch (\Exception $e) {
$message = 'OAuth clean up cron script failed: ' . $e->getMessage();
\SimpleSAML\Logger::warning($message);
$croninfo['summary'][] = $message;
}
function oauth_hook_cron(&$croninfo)
{
assert(is_array($croninfo));
assert(array_key_exists('summary', $croninfo));
assert(array_key_exists('tag', $croninfo));
$oauthconfig = \SimpleSAML\Configuration::getOptionalConfig('module_statistics.php');
if (is_null($oauthconfig->getValue('cron_tag', 'hourly'))) {
return;
}
if ($oauthconfig->getValue('cron_tag', null) !== $croninfo['tag']) {
return;
}
try {
$store = new \SimpleSAML\Module\core\Storage\SQLPermanentStorage('oauth');
$cleaned = $store->removeExpired();
$croninfo['summary'][] = 'OAuth clean up. Removed '.$cleaned.' expired entries from OAuth storage.';
} catch (\Exception $e) {
$message = 'OAuth clean up cron script failed: '.$e->getMessage();
\SimpleSAML\Logger::warning($message);
$croninfo['summary'][] = $message;
}
}
......@@ -4,14 +4,13 @@
*
* @param array &$links The links on the frontpage, split into sections.
*/
function oauth_hook_frontpage(&$links) {
assert(is_array($links));
assert(array_key_exists('links', $links));
$links['federation']['oauthregistry'] = array(
'href' => SimpleSAML\Module::getModuleURL('oauth/registry.php'),
'text' => array('en' => 'OAuth Consumer Registry'),
'shorttext' => array('en' => 'OAuth Registry'),
);
function oauth_hook_frontpage(&$links)
{
assert(is_array($links));
assert(array_key_exists('links', $links));
$links['federation']['oauthregistry'] = array(
'href' => SimpleSAML\Module::getModuleURL('oauth/registry.php'),
'text' => '{core:frontpage:link_oauth}',
);
}
......@@ -178,4 +178,3 @@ class Consumer
return json_decode($data, true);
}
}
......@@ -50,7 +50,7 @@ class OAuthStore extends \OAuthDataStore
// See whether to remember values from the original requestToken request:
$request_attributes = $this->store->get('requesttorequest', $requestTokenKey, '');
// must be there ..
// must be there
if ($request_attributes['value']) {
// establish callback to use
if ($request_attributes['value']['callback']) {
......
......@@ -11,124 +11,125 @@ namespace SimpleSAML\Module\oauth;
class Registry
{
protected function getStandardField($request, &$entry, $key) {
if (array_key_exists('field_' . $key, $request)) {
$entry[$key] = $request['field_' . $key];
} else {
if (isset($entry[$key])) unset($entry[$key]);
}
}
protected function getStandardField($request, &$entry, $key)
{
if (array_key_exists('field_'.$key, $request)) {
$entry[$key] = $request['field_'.$key];
} else if (isset($entry[$key])) {
unset($entry[$key]);
}
}
public function formToMeta($request, $entry = array(), $override = NULL) {
$this->getStandardField($request, $entry, 'name');
$this->getStandardField($request, $entry, 'description');
$this->getStandardField($request, $entry, 'key');
$this->getStandardField($request, $entry, 'secret');
$this->getStandardField($request, $entry, 'RSAcertificate');
$this->getStandardField($request, $entry, 'callback_url');
public function formToMeta($request, $entry = array(), $override = null)
{
$this->getStandardField($request, $entry, 'name');
$this->getStandardField($request, $entry, 'description');
$this->getStandardField($request, $entry, 'key');
$this->getStandardField($request, $entry, 'secret');
$this->getStandardField($request, $entry, 'RSAcertificate');
$this->getStandardField($request, $entry, 'callback_url');
if ($override) {
foreach($override AS $key => $value) {
$entry[$key] = $value;
}
}
return $entry;
}
if ($override) {
foreach ($override as $key => $value) {
$entry[$key] = $value;
}
}
return $entry;
}
protected function requireStandardField($request, $key) {
if (!array_key_exists('field_' . $key, $request))
throw new \Exception('Required field [' . $key . '] was missing.');
if (empty($request['field_' . $key]))
throw new \Exception('Required field [' . $key . '] was empty.');
}
protected function requireStandardField($request, $key)
{
if (!array_key_exists('field_'.$key, $request)) {
throw new \Exception('Required field ['.$key.'] was missing.');
}
if (empty($request['field_'.$key])) {
throw new \Exception('Required field ['.$key.'] was empty.');
}
}
public function checkForm($request) {
$this->requireStandardField($request, 'name');
$this->requireStandardField($request, 'description');
$this->requireStandardField($request, 'key');
}
public function checkForm($request)
{
$this->requireStandardField($request, 'name');
$this->requireStandardField($request, 'description');
$this->requireStandardField($request, 'key');
}
protected function header($name)
{
return '<tr><td>&nbsp;</td><td class="header">'.$name.'</td></tr>';
}
protected function header($name) {
return '<tr ><td>&nbsp;</td><td class="header">' . $name . '</td></tr>';
}
protected function readonlyDateField($metadata, $key, $name) {
$value = '<span style="color: #aaa">Not set</a>';
if (array_key_exists($key, $metadata))
$value = date('j. F Y, G:i', $metadata[$key]);
return '<tr>
<td class="name">' . $name . '</td>
<td class="data">' . $value . '</td></tr>';
protected function readonlyDateField($metadata, $key, $name)
{
$value = '<span style="color: #aaa">Not set</a>';
if (array_key_exists($key, $metadata)) {
$value = date('j. F Y, G:i', $metadata[$key]);
}
return '<tr><td class="name">'.$name.'</td><td class="data">'.$value.'</td></tr>';
}
}
protected function readonlyField($metadata, $key, $name) {
$value = '';
if (array_key_exists($key, $metadata))
$value = $metadata[$key];
return '<tr>
<td class="name">' . $name . '</td>
<td class="data">' . htmlspecialchars($value) . '</td></tr>';
protected function readonlyField($metadata, $key, $name)
{
$value = '';
if (array_key_exists($key, $metadata)) {
$value = $metadata[$key];
}
return '<tr><td class="name">'.$name.'</td><td class="data">'.htmlspecialchars($value).'</td></tr>';
}
}
protected function hiddenField($key, $value) {
return '<input type="hidden" name="' . $key . '" value="' . htmlspecialchars($value) . '" />';
}
protected function flattenLanguageField(&$metadata, $key) {
if (array_key_exists($key, $metadata)) {
if (is_array($metadata[$key])) {
if (isset($metadata[$key]['en'])) {
$metadata[$key] = $metadata[$key]['en'];
} else {
unset($metadata[$key]);
}
}
}
}
protected function standardField($metadata, $key, $name, $textarea = FALSE) {
$value = '';
if (array_key_exists($key, $metadata)) {
$value = htmlspecialchars($metadata[$key]);
}
if ($textarea) {
return '<tr><td class="name">' . $name . '</td><td class="data">
<textarea name="field_' . $key . '" rows="5" cols="50">' . $value . '</textarea></td></tr>';
} else {
return '<tr><td class="name">' . $name . '</td><td class="data">
<input type="text" size="60" name="field_' . $key . '" value="' . $value . '" /></td></tr>';
}
}
protected function hiddenField($key, $value)
{
return '<input type="hidden" name="'.$key.'" value="'.htmlspecialchars($value).'" />';
}
public function metaToForm($metadata) {
return '<form action="registry.edit.php" method="post">' .
'<div id="tabdiv">' .
'<ul>' .
'<li><a href="#basic">Name and descrition</a></li>' .
'</ul>' .
'<div id="basic"><table class="formtable">' .
$this->standardField($metadata, 'name', 'Name of client') .
$this->standardField($metadata, 'description', 'Description of client', TRUE) .
$this->readonlyField($metadata, 'owner', 'Owner') .
$this->standardField($metadata, 'key', 'Consumer Key') .
$this->readonlyField($metadata, 'secret', 'Consumer Secret<br/>(Used for HMAC_SHA1 signatures)') .
$this->standardField($metadata, 'RSAcertificate', 'RSA certificate (PEM)<br/>(Used for RSA_SHA1 signatures)', TRUE) .
$this->standardField($metadata, 'callback_url', 'Static/enforcing callback-url') .
$this->hiddenField('field_secret', $metadata['secret']) .
protected function flattenLanguageField(&$metadata, $key)
{
if (array_key_exists($key, $metadata)) {
if (is_array($metadata[$key])) {
if (isset($metadata[$key]['en'])) {
$metadata[$key] = $metadata[$key]['en'];
} else {
unset($metadata[$key]);
}
}
}
}
'</table></div>' .
'</div>' .
'<input type="submit" name="submit" value="Save" style="margin-top: 5px" />' .
'</form>';
}
}
protected function standardField($metadata, $key, $name, $textarea = false)
{
$value = '';
if (array_key_exists($key, $metadata)) {
$value = htmlspecialchars($metadata[$key]);
}
if ($textarea) {
return '<tr><td class="name">'.$name.'</td><td class="data">
<textarea name="field_'.$key.'" rows="5" cols="50">'.$value.'</textarea></td></tr>';
} else {
return '<tr><td class="name">'.$name.'</td><td class="data">
<input type="text" size="60" name="field_'.$key.'" value="'.$value.'" /></td></tr>';
}
}
public function metaToForm($metadata)
{
return '<form action="registry.edit.php" method="post">'.
'<div id="tabdiv">'.
'<ul class="tabset_tabs">'.
'<li class="tab-link current" data-tab="basic"><a href="#basic">Name and description</a></li>'.
'</ul>'.
'<div id="basic" class="tabset_content current"><table class="formtable">'.
$this->standardField($metadata, 'name', 'Name of client').
$this->standardField($metadata, 'description', 'Description of client', true).
$this->readonlyField($metadata, 'owner', 'Owner').
$this->standardField($metadata, 'key', 'Consumer Key').
$this->readonlyField($metadata, 'secret', 'Consumer Secret<br />(Used for HMAC_SHA1 signatures)').
$this->standardField($metadata, 'RSAcertificate', 'RSA certificate (PEM)<br />(Used for RSA_SHA1 signatures)', true).
$this->standardField($metadata, 'callback_url', 'Static/enforcing callback-url').
'</table></div>'.
'</div>'.
$this->hiddenField('field_secret', $metadata['secret']).
'<input type="submit" name="submit" value="Save" style="margin-top: 5px" />'.
'</form>';
}
}
......@@ -61,10 +61,10 @@ class OAuthToken
*/
public function to_string()
{
return "oauth_token=" .
OAuthUtil::urlencode_rfc3986($this->key) .
"&oauth_token_secret=" .
OAuthUtil::urlencode_rfc3986($this->secret) .
return "oauth_token=".
OAuthUtil::urlencode_rfc3986($this->key).
"&oauth_token_secret=".
OAuthUtil::urlencode_rfc3986($this->secret).
"&oauth_callback_confirmed=true";
}
......@@ -295,10 +295,10 @@ class OAuthRequest
$scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on")
? 'http'
: 'https';
$http_url = ($http_url) ? $http_url : $scheme .
'://' . $_SERVER['SERVER_NAME'] .
':' .
$_SERVER['SERVER_PORT'] .
$http_url = ($http_url) ? $http_url : $scheme.
'://'.$_SERVER['SERVER_NAME'].
':'.
$_SERVER['SERVER_PORT'].
$_SERVER['REQUEST_URI'];
$http_method = ($http_method) ? $http_method : $_SERVER['REQUEST_METHOD'];
......@@ -345,13 +345,14 @@ class OAuthRequest
*/
public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters = null)
{
$parameters = ($parameters) ? $parameters : array();
$parameters = ($parameters) ? $parameters : array();
$defaults = array("oauth_version" => OAuthRequest::$version,
"oauth_nonce" => OAuthRequest::generate_nonce(),
"oauth_timestamp" => OAuthRequest::generate_timestamp(),
"oauth_consumer_key" => $consumer->key);
if ($token)
"oauth_nonce" => OAuthRequest::generate_nonce(),
"oauth_timestamp" => OAuthRequest::generate_timestamp(),
"oauth_consumer_key" => $consumer->key);
if ($token) {
$defaults['oauth_token'] = $token->key;
}
$parameters = array_merge($defaults, $parameters);
......@@ -483,7 +484,7 @@ class OAuthRequest
{
$first = true;
if ($realm) {
$out = 'Authorization: OAuth realm="' . OAuthUtil::urlencode_rfc3986($realm) . '"';
$out = 'Authorization: OAuth realm="'.OAuthUtil::urlencode_rfc3986($realm).'"';
$first = false;
} else {
$out = 'Authorization: OAuth';
......@@ -497,9 +498,9 @@ class OAuthRequest
throw new OAuthException('Arrays not supported in headers');
}
$out .= ($first) ? ' ' : ',';
$out .= OAuthUtil::urlencode_rfc3986($k) .
'="' .
OAuthUtil::urlencode_rfc3986($v) .
$out .= OAuthUtil::urlencode_rfc3986($k).
'="'.
OAuthUtil::urlencode_rfc3986($v).
'"';
$first = false;
}
......@@ -545,14 +546,14 @@ class OAuthRequest
$mt = microtime();
$rand = mt_rand();
return md5($mt . $rand); // md5s look nicer than numbers
return md5($mt.$rand); // md5s look nicer than numbers
}
}
class OAuthServer
{
protected $timestamp_threshold = 300; // in seconds, five minutes
protected $version = '1.0'; // hi blaine
protected $version = '1.0'; // hi blaine
protected $signature_methods = array();
protected $data_store;
......@@ -581,7 +582,7 @@ class OAuthServer
$consumer = $this->get_consumer($request);
// no token required for the initial token request
$token = NULL;
$token = null;
$this->check_signature($request, $consumer, $token);
......@@ -651,7 +652,7 @@ class OAuthServer
{
$signature_method = $request instanceof OAuthRequest
? $request->get_parameter("oauth_signature_method")
: NULL;
: null;
if (!$signature_method) {
// According to chapter 7 ("Accessing Protected Ressources") the signature-method
......@@ -662,8 +663,8 @@ class OAuthServer
if (!in_array($signature_method,
array_keys($this->signature_methods))) {
throw new OAuthException(
"Signature method '$signature_method' not supported " .
"try one of the following: " .
"Signature method '$signature_method' not supported ".
"try one of the following: ".
implode(", ", array_keys($this->signature_methods))
);
}
......@@ -677,7 +678,7 @@ class OAuthServer
{
$consumer_key = $request instanceof OAuthRequest
? $request->get_parameter("oauth_consumer_key")
: NULL;
: null;
if (!$consumer_key) {
throw new OAuthException("Invalid consumer key");
......@@ -694,7 +695,7 @@ class OAuthServer
/**
* try to find the token for the provided request's token key
*/
private function get_token($request, $consumer, $token_type="access")
private function get_token($request, $consumer, $token_type = "access")
{
$token_field = $request instanceof OAuthRequest
? $request->get_parameter('oauth_token')
......@@ -705,10 +706,9 @@ class OAuthServer
$consumer, $token_type, $token_field
);
if (!$token) {
throw new OAuthException("Invalid $token_type token: $token_field");
throw new OAuthException('Invalid '.$token_type.' token: '.$token_field);
}
}
else {
} else {
$token = new OAuthToken('', '');
}
return $token;
......@@ -978,10 +978,10 @@ class OAuthUtil
// June 12th, 2010 - changed to sort because of issue 164 by hidetaka
sort($value, SORT_STRING);
foreach ($value as $duplicate_value) {
$pairs[] = $parameter . '=' . $duplicate_value;
$pairs[] = $parameter.'='.$duplicate_value;
}
} else {
$pairs[] = $parameter . '=' . $value;
$pairs[] = $parameter.'='.$value;
}
}
// For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61)
......
......@@ -4,8 +4,8 @@ require_once(dirname(dirname(__FILE__)) . '/libextinc/OAuth.php');
$oauthconfig = \SimpleSAML\Configuration::getConfig('module_oauth.php');
if (!$oauthconfig->getBoolean('getUserInfo.enable', FALSE)) {
throw new \Exception('Get user info endpoint is disabled. This endpoint can be enabled in the module_oauth.php configuration file.');
if (!$oauthconfig->getBoolean('getUserInfo.enable', false)) {
throw new \Exception('Get user info endpoint is disabled. This endpoint can be enabled in the module_oauth.php configuration file.');
}
$store = new \SimpleSAML\Module\oauth\OAuthStore();
......@@ -23,4 +23,3 @@ list($consumer, $token) = $server->verify_request($req);
$data = $store->getAuthorizedData($token->key);
echo json_encode($data);
......@@ -11,56 +11,59 @@ $authsource = "admin"; // force admin to authenticate as registry maintainer
$useridattr = $oauthconfig->getValue('useridattr', 'user');
if ($session->isValid($authsource)) {
$attributes = $session->getAuthData($authsource, 'Attributes');
// Check if userid exists
if (!isset($attributes[$useridattr]))
throw new \Exception('User ID is missing');
$userid = $attributes[$useridattr][0];
$attributes = $session->getAuthData($authsource, 'Attributes');
// Check if userid exists
if (!isset($attributes[$useridattr])) {
throw new \Exception('User ID is missing');
}
$userid = $attributes[$useridattr][0];
} else {
$as = \SimpleSAML\Auth\Source::getById($authsource);
$as->initLogin(\SimpleSAML\Utils\HTTP::getSelfURL());
$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.');
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);
$entryc = $store->get('consumers', $_REQUEST['editkey'], '');
$entry = $entryc['value'];
requireOwnership($entry, $userid);
} else {
$entry = array(
'owner' => $userid,
'key' => \SimpleSAML\Utils\Random::generateID(),
'secret' => \SimpleSAML\Utils\Random::generateID(),
);
$entry = array(
'owner' => $userid,
'key' => \SimpleSAML\Utils\Random::generateID(),
'secret' => \SimpleSAML\Utils\Random::generateID(),
);
}
$editor = new \SimpleSAML\Module\oauth\Registry();
if (isset($_POST['submit'])) {
$editor->checkForm($_POST);
$editor->checkForm($_POST);
$entry = $editor->formToMeta($_POST, array(), array('owner' => $userid));
$entry = $editor->formToMeta($_POST, array(), array('owner' => $userid));
requireOwnership($entry, $userid);
requireOwnership($entry, $userid);
$store->set('consumers', $entry['key'], '', $entry);
$template = new \SimpleSAML\XHTML\Template($config, 'oauth:registry.saved.php');
$template->data['entry'] = $entry;
$template->show();
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->data['jquery'] = array('core' => false, 'ui' => true, 'css' => true);
$template->show();
......@@ -7,48 +7,51 @@ $oauthconfig = \SimpleSAML\Configuration::getOptionalConfig('module_oauth.php');
$store = new \SimpleSAML\Module\core\Storage\SQLPermanentStorage('oauth');
$authsource = "admin"; // force admin to authenticate as registry maintainer
$authsource = "admin"; // force admin to authenticate as registry maintainer
$useridattr = $oauthconfig->getValue('useridattr', 'user');
if ($session->isValid($authsource)) {
$attributes = $session->getAuthData($authsource, 'Attributes');
// Check if userid exists
if (!isset($attributes[$useridattr]))
throw new \Exception('User ID is missing');
$userid = $attributes[$useridattr][0];
$attributes = $session->getAuthData($authsource, 'Attributes');
// Check if userid exists
if (!isset($attributes[$useridattr])) {
throw new \Exception('User ID is missing');
}
$userid = $attributes[$useridattr][0];
} else {
$as = \SimpleSAML\Auth\Source::getById($authsource);
$as->initLogin(\SimpleSAML\Utils\HTTP::getSelfURL());
$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.');
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'];
$entryc = $store->get('consumers', $_REQUEST['delete'], '');
$entry = $entryc['value'];
requireOwnership($entry, $userid);
$store->remove('consumers', $entry['key'], '');
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;
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;
}
$template = new \SimpleSAML\XHTML\Template($config, 'oauth:registry.list.php');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment