Skip to content
Snippets Groups Projects
Commit e884762a authored by Andreas Åkre Solberg's avatar Andreas Åkre Solberg
Browse files

Adding organization info in metadata and list of attributes etc

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1071 44740490-163a-0410-bde0-09ae8108e29a
parent 51848f58
No related branches found
No related tags found
No related merge requests found
......@@ -66,6 +66,53 @@ class SimpleSAML_Metadata_SAMLBuilder {
return $this->document->saveXML();
}
private function addOrganizationInfo($metadata) {
if (array_key_exists('name', $metadata)) {
$org = $this->createElement('Organization');
if (is_array($metadata['name'])) {
foreach($metadata['name'] AS $lang => $localname) {
$orgname = $this->createTextElement('OrganizationName', $localname);
$orgname->setAttribute('xml:lang', $lang);
$org->appendChild($orgname);
}
} else {
$orgname = $this->createTextElement('OrganizationName', $metadata['name']);
$orgname->setAttribute('xml:lang', 'en');
$org->appendChild($orgname);
}
if (is_array($metadata['name'])) {
foreach($metadata['name'] AS $lang => $localname) {
$orgname = $this->createTextElement('OrganizationDisplayName', $localname);
$orgname->setAttribute('xml:lang', $lang);
$org->appendChild($orgname);
}
} else {
$orgname = $this->createTextElement('OrganizationDisplayName', $metadata['name']);
$orgname->setAttribute('xml:lang', 'en');
$org->appendChild($orgname);
}
$url = '';
if (array_key_exists('url', $metadata)) {
$url = $metadata['url'];
}
$uel = $this->createTextElement('OrganizationURL', $url);
$uel->setAttribute('xml:lang', 'en');
$org->appendChild($uel);
$this->entityDescriptor->appendChild($org);
}
}
/**
......@@ -138,8 +185,57 @@ class SimpleSAML_Metadata_SAMLBuilder {
$e->appendChild($t);
}
/**
* Add an AttributeConsumingService element with information as name and description and list
* of requested attributes
*/
$attributeconsumer = $this->createElement('AttributeConsumingService');
$attributeconsumer->setAttribute('index', '0');
if (array_key_exists('name', $metadata)) {
if (is_array($metadata['name'])) {
foreach($metadata['name'] AS $lang => $localname) {
$t = $this->createTextElement('ServiceName', $localname);
$t->setAttribute('xml:lang', $lang);
$attributeconsumer->appendChild($t);
}
} else {
$t = $this->createTextElement('ServiceName', $metadata['name']);
$t->setAttribute('xml:lang', 'en');
$attributeconsumer->appendChild($t);
}
}
if (array_key_exists('description', $metadata)) {
if (is_array($metadata['description'])) {
foreach($metadata['description'] AS $lang => $localname) {
$t = $this->createTextElement('ServiceDescription', $localname);
$t->setAttribute('xml:lang', $lang);
$attributeconsumer->appendChild($t);
}
} else {
$t = $this->createTextElement('ServiceDescription', $metadata['description']);
$t->setAttribute('xml:lang', 'en');
$attributeconsumer->appendChild($t);
}
}
if (array_key_exists('attributes', $metadata) && is_array($metadata['attributes'])) {
foreach ($metadata['attributes'] AS $attribute) {
$t = $this->createElement('RequestedAttribute');
$t->setAttribute('Name', $attribute);
$attributeconsumer->appendChild($t);
}
}
$e->appendChild($attributeconsumer);
$this->entityDescriptor->appendChild($e);
$this->addOrganizationInfo($metadata);
if (array_key_exists('contacts', $metadata) && is_array($metadata['contacts']) ) {
foreach($metadata['contacts'] AS $contact) {
if (array_key_exists('contactType', $contact) && array_key_exists('EmailAddress', $contact)) {
......@@ -158,6 +254,9 @@ class SimpleSAML_Metadata_SAMLBuilder {
}
}
}
}
......@@ -205,6 +304,8 @@ class SimpleSAML_Metadata_SAMLBuilder {
$this->entityDescriptor->appendChild($e);
$this->addOrganizationInfo($metadata);
if (array_key_exists('contacts', $metadata) && is_array($metadata['contacts']) ) {
foreach($metadata['contacts'] AS $contact) {
if (array_key_exists('contactType', $contact) && array_key_exists('EmailAddress', $contact)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment