From 17b12bd9c0f0a0bb81e1f951fb1bb4f744cb44f5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20=C3=85kre=20Solberg?= <andreas.solberg@uninett.no>
Date: Fri, 15 May 2009 09:40:04 +0000
Subject: [PATCH] Add support for excluding tags in metadata aggregator

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1503 44740490-163a-0410-bde0-09ae8108e29a
---
 modules/aggregator/www/index.php | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/modules/aggregator/www/index.php b/modules/aggregator/www/index.php
index 0b0dd375e..b866f4220 100644
--- a/modules/aggregator/www/index.php
+++ b/modules/aggregator/www/index.php
@@ -40,28 +40,36 @@ try {
 		var_export($id, TRUE) . ': ' . $e->getMessage());
 }
 
+$exclude = NULL;
+if (array_key_exists('exclude', $_REQUEST)) $exclude = $_REQUEST['exclude'];
+
+#echo $exclude; exit;
 /* Find list of all available entities. */
 $entities = array();
 foreach ($sources as $source) {
 	foreach ($metadataSets as $set) {
 		foreach ($source->getMetadataSet($set) as $entityId => $metadata) {
-			if (!array_key_exists($entityId, $entities)) {
-				$entities[$entityId] = array();
+			if (isset($exclude) && 
+					array_key_exists('tags', $metadata) && 
+					in_array($exclude, $metadata['tags'])) {
+				SimpleSAML_Logger::debug('Excluding entity ID [' . $entityId . '] becuase it is tagged with [' . $exclude . ']');
+				continue;
+			} else {
+				#echo('<pre>'); print_r($metadata); exit;
 			}
-
+			if (!array_key_exists($entityId, $entities)) 
+				$entities[$entityId] = array();
+				
 			if (array_key_exists($set, $entities[$entityId])) {
 				/* Entity already has metadata for the given set. */
 				continue;
 			}
-
+			
 			$entities[$entityId][$set] = $metadata;
 		}
 	}
 }
 
-
-
-
 $xml = new DOMDocument();
 $entitiesDescriptor = $xml->createElementNS('urn:oasis:names:tc:SAML:2.0:metadata', 'EntitiesDescriptor');
 $entitiesDescriptor->setAttribute('Name', $id);
-- 
GitLab