| 
<?php
 /* Load simpleSAMLphp, configuration and metadata */
 $config = SimpleSAML_Configuration::getInstance();
 $metaconfig = SimpleSAML_Configuration::getConfig('module_metaedit.php');
 
 $mdh = new SimpleSAML_Metadata_MetaDataStorageHandlerSerialize($metaconfig->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();
 
 |