getValue('metahandlerConfig', NULL)); $authsource = $metaconfig->getValue('auth', 'login-admin'); $useridattr = $metaconfig->getValue('useridattr', 'eduPersonPrincipalName'); $as = new SimpleSAML_Auth_Simple($authsource); $as->requireAuth(); $attributes = $as->getAttributes(); // Check if userid exists if (!isset($attributes[$useridattr])) throw new Exception('User ID is missing'); $userid = $attributes[$useridattr][0]; function requireOwnership($metadata, $userid) { if (!isset($metadata['owner'])) throw new Exception('Metadata has no owner. Which means no one is granted access, not even you.'); if ($metadata['owner'] !== $userid) throw new Exception('Metadata has an owner that is not equal to your userid, hence you are not granted access.'); } if (isset($_REQUEST['delete'])) { $premetadata = $mdh->getMetadata($_REQUEST['delete'], 'saml20-sp-remote'); requireOwnership($premetadata, $userid); $mdh->deleteMetadata($_REQUEST['delete'], 'saml20-sp-remote'); } $list = $mdh->getMetadataSet('saml20-sp-remote'); $slist = array('mine' => array(), 'others' => array()); foreach($list AS $listitem) { if (array_key_exists('owner', $listitem)) { if ($listitem['owner'] === $userid) { $slist['mine'][] = $listitem; continue; } } $slist['others'][] = $listitem; } $template = new SimpleSAML_XHTML_Template($config, 'metaedit:metalist.php'); $template->data['metadata'] = $slist; $template->data['userid'] = $userid; $template->show();