function present_attributes(SimpleSAML_XHTML_Template $t, $attributes, $nameParent) { $alternate = array('odd', 'even'); $i = 0; $parentStr = strlen($nameParent) > 0 ? strtolower($nameParent) . '_' : ''; $str = strlen($nameParent) > 0 ? '<table class="attributes" summary="attribute overview">' : '<table id="table_with_attributes" class="attributes" summary="attribute overview">'; foreach ($attributes as $name => $value) { $nameraw = $name; $name = $t->getTranslator()->getAttributeTranslation($parentStr . $nameraw); if (preg_match('/^child_/', $nameraw)) { $parentName = preg_replace('/^child_/', '', $nameraw); foreach ($value as $child) { $str .= '<tr class="odd"><td colspan="2" style="padding: 2em">' . present_attributes($t, $child, $parentName) . '</td></tr>'; } } else { if (sizeof($value) > 1) { $str .= '<tr class="' . $alternate[$i++ % 2] . '"><td class="attrname">'; if ($nameraw !== $name) { $str .= htmlspecialchars($name) . '<br/>'; } $str .= '<tt>' . htmlspecialchars($nameraw) . '</tt>'; $str .= '</td><td class="attrvalue"><ul>'; foreach ($value as $listitem) { if ($nameraw === 'jpegPhoto') { $str .= '<li><img src="data:image/jpeg;base64,' . htmlspecialchars($listitem) . '" /></li>'; } else { $str .= '<li>' . present_assoc($listitem) . '</li>'; } } $str .= '</ul></td></tr>'; } elseif (isset($value[0])) { $str .= '<tr class="' . $alternate[$i++ % 2] . '"><td class="attrname">'; if ($nameraw !== $name) { $str .= htmlspecialchars($name) . '<br/>'; } $str .= '<tt>' . htmlspecialchars($nameraw) . '</tt>'; $str .= '</td>'; if ($nameraw === 'jpegPhoto') { $str .= '<td class="attrvalue"><img src="data:image/jpeg;base64,' . htmlspecialchars($value[0]) . '" /></td></tr>'; } else { $str .= '<td class="attrvalue">' . htmlspecialchars($value[0]) . '</td></tr>'; } } } $str .= "\n"; } $str .= '</table>'; return $str; }
function present_attributes($t, $attributes, $nameParent) { $alternate = array('odd', 'even'); $i = 0; $parentStr = strlen($nameParent) > 0 ? strtolower($nameParent) . '_' : ''; $str = strlen($nameParent) > 0 ? '<table class="attributes">' : '<table id="table_with_attributes" class="attributes">'; foreach ($attributes as $name => $value) { $nameraw = $name; $nameTag = '{attributes:attribute_' . $parentStr . str_replace(":", "_", strtolower($name)) . '}'; if ($t->getTag($nameTag) !== NULL) { $name = $t->t($nameTag); } if (preg_match('/^child_/', $nameraw)) { $parentName = preg_replace('/^child_/', '', $nameraw); foreach ($value as $child) { $str .= '<tr class="odd"><td colspan="2" style="padding: 2em">' . present_attributes($t, $child, $parentName) . '</td></tr>'; } } else { if (sizeof($value) > 1) { $str .= '<tr class="' . $alternate[$i++ % 2] . '"><td class="attrname">' . htmlspecialchars($name) . '</td><td class="attrvalue"><ul>'; foreach ($value as $listitem) { if ($nameraw === 'jpegPhoto') { $str .= '<li><img src="data:image/jpeg;base64,' . $listitem . '" /></li>'; } else { $str .= '<li>' . present_assoc($listitem) . '</li>'; } } $str .= '</ul></td></tr>'; } elseif (isset($value[0])) { $str .= '<tr class="' . $alternate[$i++ % 2] . '"><td class="attrname">' . htmlspecialchars($name) . '</td>'; if ($nameraw === 'jpegPhoto') { $str .= '<td class="attrvalue"><img src="data:image/jpeg;base64,' . htmlspecialchars($value[0]) . '" /></td></tr>'; } else { $str .= '<td class="attrvalue">' . htmlspecialchars($value[0]) . '</td></tr>'; } } } $str .= "\n"; } $str .= '</table>'; return $str; }
function present_attributes($t, $attributes, $nameParent) { $alternate = array('odd', 'even'); $i = 0; $summary = 'summary="' . $t->t('{consent:consent:table_summary}') . '"'; if (strlen($nameParent) > 0) { $parentStr = strtolower($nameParent) . '_'; $str = '<table class="attributes" ' . $summary . '>'; } else { $parentStr = ''; $str = '<table id="table_with_attributes" class="attributes" ' . $summary . '>'; $str .= "\n" . '<caption>' . $t->t('{consent:consent:table_caption}') . '</caption>'; } foreach ($attributes as $name => $value) { $nameraw = $name; $nameTag = '{attributes:attribute_' . $parentStr . str_replace(":", "_", strtolower($name)) . '}'; if ($t->getTag($nameTag) !== NULL) { $name = $t->t($nameTag); } if (preg_match('/^child_/', $nameraw)) { // Insert child table $parentName = preg_replace('/^child_/', '', $nameraw); foreach ($value as $child) { $str .= "\n" . '<tr class="odd"><td style="padding: 2em">' . present_attributes($t, $child, $parentName) . '</td></tr>'; } } else { // Insert values directly $str .= "\n" . '<tr class="' . $alternate[$i++ % 2] . '"><td><span class="attrname">' . htmlspecialchars($name) . '</span>'; $isHidden = in_array($nameraw, $t->data['hiddenAttributes'], TRUE); if ($isHidden) { $hiddenId = SimpleSAML_Utilities::generateID(); $str .= '<div class="attrvalue" style="display: none;" id="hidden_' . $hiddenId . '">'; } else { $str .= '<div class="attrvalue">'; } if (sizeof($value) > 1) { // We hawe several values $str .= '<ul>'; foreach ($value as $listitem) { if ($nameraw === 'jpegPhoto') { $str .= '<li><img src="data:image/jpeg;base64,' . $listitem . '" alt="User photo" /></li>'; } else { $str .= '<li>' . htmlspecialchars($listitem) . '</li>'; } } $str .= '</ul>'; } elseif (isset($value[0])) { // We hawe only one value if ($nameraw === 'jpegPhoto') { $str .= '<img src="data:image/jpeg;base64,' . htmlspecialchars($value[0]) . '" alt="User photo" />'; } else { $str .= htmlspecialchars($value[0]); } } // end of if multivalue $str .= '</div>'; if ($isHidden) { $str .= '<div class="attrvalue consent_showattribute" id="visible_' . $hiddenId . '">'; $str .= '... '; $str .= '<a class="consent_showattributelink" href="javascript:SimpleSAML_show(\'hidden_' . $hiddenId . '\'); SimpleSAML_hide(\'visible_' . $hiddenId . '\');">'; $str .= $t->t('{consent:consent:show_attribute}'); $str .= '</a>'; $str .= '</div>'; } $str .= '</td></tr>'; } // end else: not child table } // end foreach $str .= isset($attributes) ? '</table>' : ''; return $str; }
if (isset($this->data['sessionsize'])) { echo '<p>' . $this->t('{status:sessionsize}', array('%SIZE%' => $this->data['sessionsize'])) . '</p>'; } ?> <h2><?php echo $this->t('{status:attributes_header}'); ?> </h2> <?php $attributes = $this->data['attributes']; echo present_attributes($this, $attributes, ''); $nameid = $this->data['nameid']; if ($nameid !== false) { echo "<h2>" . $this->t('{status:subject_header}') . "</h2>"; if (!isset($nameid['Value'])) { $list = array("NameID" => array($this->t('{status:subject_notset}'))); echo "<p>NameID: <span class=\"notset\">" . $this->t('{status:subject_notset}') . "</span></p>"; } else { $list = array("NameId" => array($nameid['Value']), $this->t('{status:subject_format}') => array($nameid['Format'])); } echo present_attributes($this, $list, ''); } if (isset($this->data['logout'])) { echo '<h2>' . $this->t('{status:logout}') . '</h2>'; echo '<p>' . $this->data['logout'] . '</p>'; } if (isset($this->data['logouturl'])) { echo '<a href="' . htmlspecialchars($this->data['logouturl']) . '">' . $this->t('{status:logout}') . '</a>'; } $this->includeAtTemplateBase('includes/footer.php');
<?php $this->data['header'] = $this->t('{status:header_diagnostics}'); $this->includeAtTemplateBase('includes/header.php'); $this->includeAtTemplateBase('includes/attributes.php'); echo "<h2>" . $this->t('{core:frontpage:link_diagnostics}') . "</h2>"; $attributes = $this->data['attributes']; echo present_attributes($this, $attributes, ''); $this->includeAtTemplateBase('includes/footer.php');
function present_attributes(SimpleSAML_XHTML_Template $t, $attributes, $nameParent) { $alternate = array('odd', 'even'); $i = 0; $parentStr = strlen($nameParent) > 0 ? strtolower($nameParent) . '_' : ''; $str = strlen($nameParent) > 0 ? '<table class="attributes" summary="attribute overview">' : '<table id="table_with_attributes" class="attributes" summary="attribute overview">'; foreach ($attributes as $name => $value) { $nameraw = $name; $name = $t->getTranslator()->getAttributeTranslation($parentStr . $nameraw); if (preg_match('/^child_/', $nameraw)) { $parentName = preg_replace('/^child_/', '', $nameraw); foreach ($value as $child) { $str .= '<tr class="odd"><td colspan="2" style="padding: 2em">' . present_attributes($t, $child, $parentName) . '</td></tr>'; } } else { if (sizeof($value) > 1) { $str .= '<tr class="' . $alternate[$i++ % 2] . '"><td class="attrname">'; if ($nameraw !== $name) { $str .= htmlspecialchars($name) . '<br/>'; } $str .= '<tt>' . htmlspecialchars($nameraw) . '</tt>'; $str .= '</td><td class="attrvalue"><ul>'; foreach ($value as $listitem) { if ($nameraw === 'jpegPhoto') { $str .= '<li><img src="data:image/jpeg;base64,' . htmlspecialchars($listitem) . '" /></li>'; } else { $str .= '<li>' . present_assoc($listitem) . '</li>'; } } $str .= '</ul></td></tr>'; } elseif (isset($value[0])) { $str .= '<tr class="' . $alternate[$i++ % 2] . '"><td class="attrname">'; if ($nameraw !== $name) { $str .= htmlspecialchars($name) . '<br/>'; } $str .= '<tt>' . htmlspecialchars($nameraw) . '</tt>'; $str .= '</td>'; if ($nameraw === 'jpegPhoto') { $str .= '<td class="attrvalue"><img src="data:image/jpeg;base64,' . htmlspecialchars($value[0]) . '" /></td></tr>'; } elseif (is_a($value[0], 'DOMNodeList')) { // try to see if we have a NameID here $n = $value[0]->length; for ($idx = 0; $idx < $n; $idx++) { $elem = $value[0]->item($idx); /* @var DOMElement $elem */ if (!($elem->localName === 'NameID' && $elem->namespaceURI === \SAML2\Constants::NS_SAML)) { continue; } $nameID = new \SAML2\XML\saml\NameID($elem); $eptid = array('NameID' => array($nameID->value)); if (!empty($nameID->Format)) { $eptid['Format'] = array($nameID->Format); } if (!empty($nameID->NameQualifier)) { $eptid['NameQualifier'] = array($nameID->NameQualifier); } if (!empty($nameID->SPNameQualifier)) { $eptid['SPNameQualifier'] = array($nameID->SPNameQualifier); } $str .= '<td class="attrvalue">'; $str .= present_assoc($eptid); break; // we only support one NameID here } $str .= '</td></tr>'; } else { $str .= '<td class="attrvalue">' . htmlspecialchars($value[0]) . '</td></tr>'; } } } $str .= "\n"; } $str .= '</table>'; return $str; }