From b9cb936983ef6d77edfa8acf45a76796ed45cfbc Mon Sep 17 00:00:00 2001 From: Olav Morken <olav.morken@uninett.no> Date: Mon, 8 Feb 2010 09:12:50 +0000 Subject: [PATCH] SAMLBuilder: Add addOrganization-function. git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2161 44740490-163a-0410-bde0-09ae8108e29a --- lib/SimpleSAML/Metadata/SAMLBuilder.php | 56 ++++++++++++++++--------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/lib/SimpleSAML/Metadata/SAMLBuilder.php b/lib/SimpleSAML/Metadata/SAMLBuilder.php index 70dfd6111..dc14e3868 100644 --- a/lib/SimpleSAML/Metadata/SAMLBuilder.php +++ b/lib/SimpleSAML/Metadata/SAMLBuilder.php @@ -138,10 +138,44 @@ class SimpleSAML_Metadata_SAMLBuilder { } } + + /** + * Add Organization element. + * + * This function adds an organization element to the metadata. + * + * @param array $orgName An array with the localized OrganizatioName. + * @param array $orgDisplayName An array with the localized OrganizatioDisplayName. + * @param array $orgURL An array with the localized OrganizatioURL. + */ + public function addOrganization(array $orgName, array $orgDisplayName, array $orgURL) { + + $org = $this->createElement('Organization'); + + foreach ($orgName AS $lang => $localname) { + $e = $this->createTextElement('OrganizationName', $localname); + $e->setAttribute('xml:lang', $lang); + $org->appendChild($e); + } + + foreach ($orgDisplayName AS $lang => $localname) { + $e = $this->createTextElement('OrganizationDisplayName', $localname); + $e->setAttribute('xml:lang', $lang); + $org->appendChild($e); + } + + foreach ($orgURL AS $lang => $locallink) { + $e = $this->createTextElement('OrganizationURL', $locallink); + $e->setAttribute('xml:lang', $lang); + $org->appendChild($e); + } + + $this->entityDescriptor->appendChild($org); + } + public function addOrganizationInfo($metadata) { if (array_key_exists('name', $metadata)) { - $org = $this->createElement('Organization'); if (is_array($metadata['name'])) { $name = $metadata['name']; @@ -149,17 +183,6 @@ class SimpleSAML_Metadata_SAMLBuilder { $name = array('en' => $metadata['name']); } - foreach($name AS $lang => $localname) { - $orgname = $this->createTextElement('OrganizationName', $localname); - $orgname->setAttribute('xml:lang', $lang); - $org->appendChild($orgname); - } - - foreach($name AS $lang => $localname) { - $orgname = $this->createTextElement('OrganizationDisplayName', $localname); - $orgname->setAttribute('xml:lang', $lang); - $org->appendChild($orgname); - } if (!array_key_exists('url', $metadata)) { /* @@ -173,13 +196,7 @@ class SimpleSAML_Metadata_SAMLBuilder { $url = array('en' => $metadata['url']); } - foreach($url AS $lang => $locallink) { - $uel = $this->createTextElement('OrganizationURL', $locallink); - $uel->setAttribute('xml:lang', $lang); - $org->appendChild($uel); - } - - $this->entityDescriptor->appendChild($org); + $this->addOrganization($name, $name, $url); } } @@ -281,7 +298,6 @@ class SimpleSAML_Metadata_SAMLBuilder { SimpleSAML_Logger::warning('Unable to generate metadata for unknown type \'' . $set . '\'.'); } - // $this->addOrganizationInfo($metadata); } /** -- GitLab