From 60a983864fdadbc69337f08b17646bb6a2b3f0da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=85kre=20Solberg?= <andreas.solberg@uninett.no> Date: Tue, 27 Jan 2009 08:39:20 +0000 Subject: [PATCH] Making tabs on frontpage and links to login as an administrator git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1199 44740490-163a-0410-bde0-09ae8108e29a --- templates/frontpage.php | 176 ++++++++++++++++++++++++++++++++++------ www/index.php | 125 ++++++++++++++++++++-------- 2 files changed, 243 insertions(+), 58 deletions(-) diff --git a/templates/frontpage.php b/templates/frontpage.php index d5efef7d9..9b82429fd 100644 --- a/templates/frontpage.php +++ b/templates/frontpage.php @@ -1,8 +1,43 @@ <?php # $this->data['icon'] = 'compass_l.png'; - $this->includeAtTemplateBase('includes/header.php'); + + +$this->data['head'] = '<script type="text/javascript" src="/' . $this->data['baseurlpath'] . 'resources/jquery.js"></script>'; +$this->data['head'] .= '<script type="text/javascript" src="/' . $this->data['baseurlpath'] . 'resources/jquery-ui.js"></script>'; +$this->data['head'] .= '<link rel="stylesheet" media="screen" type="text/css" href="/' . $this->data['baseurlpath'] . 'resources/uitheme/jquery-ui-themeroller.css" />'; + +$this->data['head'] .= '<script type="text/javascript"> + +$(document).ready(function() { + $("#tabdiv > ul").tabs(); +}); +</script>'; + + + +$this->includeAtTemplateBase('includes/header.php'); + +if ($this->data['isadmin']) { + echo '<p style="float: right">You are logged in as administrator</p>'; +} else { + echo '<p style="float: right"><a href="' . $this->data['loginurl'] . '">Log in as administrator</a></p>'; +} + ?> + + +<div id="tabdiv"> +<ul> + <li><a href="#welcome"><?php echo $this->t('welcome'); ?></a></li> + <li><a href="#configuration"><?php echo $this->t('configuration'); ?></a></li> + <li><a href="#metadata"><?php echo $this->t('metadata'); ?></a></li> +</ul> + + +<div id="welcome"> + + <div class="enablebox mini"> <table> @@ -30,12 +65,6 @@ <p><?php echo $this->t('intro'); ?></p> -<div> - <code style="background: white; border: 1px solid #ccc; padding: 1em; color: #555" ><?php - echo $this->data['directory'] . ' (' . $this->data['version'] . ')'; - ?></code> -</div> - <h2><?php echo $this->t('useful_links_header'); ?></h2> <ul> <?php @@ -47,26 +76,41 @@ </ul> -<h2><?php echo $this->t('metadata_header'); ?></h2> +<h2><?php echo $this->t('doc_header'); ?></h2> <ul> <?php - foreach ($this->data['links_meta'] AS $link) { + foreach ($this->data['links_doc'] AS $link) { echo '<li><a href="' . htmlspecialchars($link['href']) . '">' . $this->t($link['text']) . '</a></li>'; } ?> </ul> -<h2><?php echo $this->t('doc_header'); ?></h2> +<h2><?php echo $this->t('about_header'); ?></h2> + <p><?php echo $this->t('about_text'); ?></p> + +</div> <!-- #welcome --> + + +<div id="configuration"> + +<div> + <code style="background: white; border: 1px solid #ccc; padding: 1em; color: #555" ><?php + echo $this->data['directory'] . ' (' . $this->data['version'] . ')'; + ?></code> +</div> + +<h2><?php echo $this->t('configuration'); ?></h2> <ul> <?php - foreach ($this->data['links_doc'] AS $link) { + foreach ($this->data['links_conf'] AS $link) { echo '<li><a href="' . htmlspecialchars($link['href']) . '">' . $this->t($link['text']) . '</a></li>'; } ?> </ul> + <?php if (array_key_exists('warnings', $this->data) && is_array($this->data['warnings']) && !empty($this->data['warnings'])) { @@ -77,31 +121,117 @@ } } ?> +<?php +if ($this->data['isadmin']) { + + echo '<h2>'. $this->t('checkphp') . '</h2>'; + echo '<div class="enablebox"><table>'; + + + $icon_enabled = '<img src="/' . $this->data['baseurlpath'] . 'resources/icons/accept.png" alt="enabled" />'; + $icon_disabled = '<img src="/' . $this->data['baseurlpath'] . 'resources/icons/delete.png" alt="disabled" />'; + + + foreach ($this->data['funcmatrix'] AS $func) { + echo '<tr class="' . ($func['enabled'] ? 'enabled' : 'disabled') . '"><td>' . ($func['enabled'] ? $icon_enabled : $icon_disabled) . '</td> + <td>' . $this->t($func['required']) . '</td><td>' . $func['descr'] . '</td></tr>'; + } + +} + +?> +</table> +</div> + -<h2><?php echo $this->t('checkphp'); ?></h2> + +</div> <!-- #configuration --> + +<div id="metadata"> -<div class="enablebox"> -<table> <?php -$icon_enabled = '<img src="/' . $this->data['baseurlpath'] . 'resources/icons/accept.png" alt="enabled" />'; -$icon_disabled = '<img src="/' . $this->data['baseurlpath'] . 'resources/icons/delete.png" alt="disabled" />'; +function mtype($set) { + switch($set) { + case 'saml20-sp-remote': return '{admin:metadata_saml20-sp}'; + case 'saml20-sp-hosted': return '{admin:metadata_saml20-sp}'; + case 'saml20-idp-remote': return '{admin:metadata_saml20-idp}'; + case 'saml20-idp-hosted': return '{admin:metadata_saml20-idp}'; + case 'shib13-sp-remote': return '{admin:metadata_shib13-sp}'; + case 'shib13-sp-hosted': return '{admin:metadata_shib13-sp}'; + case 'shib13-idp-remote': return '{admin:metadata_shib13-idp}'; + case 'shib13-idp-hosted': return '{admin:metadata_shib13-idp}'; + } +} + +echo '<dl>'; +if (is_array($this->data['metaentries']['hosted']) && count($this->data['metaentries']['hosted']) > 0) +foreach ($this->data['metaentries']['hosted'] AS $hm) { + echo '<dt>' . $this->t(mtype($hm['metadata-set'])) . '</tt></dt>'; + echo '<dd>'; + echo '<p>Entity ID: ' . $hm['entityid']; + if ($hm['entityid'] !== $hm['metadata-index']) + echo '<br />Index: ' . $hm['metadata-index']; + if (array_key_exists('name', $hm)) + echo '<br /><strong>' . $this->getTranslation(SimpleSAML_Utilities::arrayize($hm['name'], 'en')) . '</strong>'; + if (array_key_exists('descr', $hm)) + echo '<br /><strong>' . $this->getTranslation(SimpleSAML_Utilities::arrayize($hm['descr'], 'en')) . '</strong>'; + + echo '<br />[ <a href="' . $hm['metadata-url'] . '">' . $this->t('show_metadata') . '</a> ]'; + + echo '</dd>'; +} +echo '</dl>'; -foreach ($this->data['funcmatrix'] AS $func) { - echo '<tr class="' . ($func['enabled'] ? 'enabled' : 'disabled') . '"><td>' . ($func['enabled'] ? $icon_enabled : $icon_disabled) . '</td> - <td>' . $this->t($func['required']) . '</td><td>' . $func['descr'] . '</td></tr>'; +if (is_array($this->data['metaentries']['remote']) && count($this->data['metaentries']['remote']) > 0) +foreach($this->data['metaentries']['remote'] AS $setkey => $set) { + + echo '<fieldset><legend>' . $this->t(mtype($setkey)) . ' (Trusted)</legend>'; + echo '<ul>'; + foreach($set AS $entry) { + echo '<li>'; + if (array_key_exists('name', $entry)) { + echo $this->getTranslation(SimpleSAML_Utilities::arrayize($entry['name'], 'en')); + } else { + echo $entry['entityid']; + } + echo '</li>'; + } + echo '</ul>'; + echo '</fieldset>'; } + + + ?> -</table> -</div> + + + + + +<h2><?php echo $this->t('metadata_header'); ?></h2> + <ul> + <?php + + foreach ($this->data['links_meta'] AS $link) { + echo '<li><a href="' . htmlspecialchars($link['href']) . '">' . $this->t($link['text']) . '</a></li>'; + } + ?> + </ul> + -<h2><?php echo $this->t('about_header'); ?></h2> - <p><?php echo $this->t('about_text'); ?></p> + + + +</div> <!-- #metadata --> + +</div> <!-- #tabdiv --> + <?php $this->includeAtTemplateBase('includes/footer.php'); ?> \ No newline at end of file diff --git a/www/index.php b/www/index.php index b660a362d..362b57df1 100644 --- a/www/index.php +++ b/www/index.php @@ -14,6 +14,9 @@ if ($config->getValue('admin.protectindexpage', false)) { ); } } +$loginurl = '/' . $config->getBaseURL() . 'auth/login-admin.php?RelayState=' . SimpleSAML_Utilities::selfURL(); +$isadmin = $session->isValid('login-admin'); + $warnings = array(); @@ -36,21 +39,6 @@ if ($config->getValue('enable.shib13-sp') === true) 'text' => 'link_shib13example' ); -$links[] = array( - 'href' => 'example-simple/hostnames.php?dummy=1', - 'text' => 'link_diagnostics' -); - -$links[] = array( - 'href' => 'admin/phpinfo.php', - 'text' => 'link_phpinfo' -); - -$links[] = array( - 'href' => 'admin/config.php', - 'text' => 'link_configcheck', -); - if($config->getBoolean('idpdisco.enableremember', FALSE)) { $links[] = array( 'href' => 'cleardiscochoices.php', @@ -58,7 +46,6 @@ if($config->getBoolean('idpdisco.enableremember', FALSE)) { ); } - $publishURL = $config->getString('metashare.publishurl', NULL); if ($publishURL !== NULL) { $metadataSources = array( @@ -80,31 +67,54 @@ if ($publishURL !== NULL) { } + +$linksconf = array(); + +$linksconf[] = array( + 'href' => 'example-simple/hostnames.php?dummy=1', + 'text' => 'link_diagnostics' +); + +$linksconf[] = array( + 'href' => 'admin/phpinfo.php', + 'text' => 'link_phpinfo' +); + +$linksconf[] = array( + 'href' => 'admin/config.php', + 'text' => 'link_configcheck', +); + + + + + + $linksmeta = array(); $linksmeta[] = array( 'href' => 'admin/metadata.php', 'text' => 'link_meta_overview'); -if ($config->getValue('enable.saml20-sp') === true) - $linksmeta[] = array( - 'href' => 'saml2/sp/metadata.php?output=xhtml', - 'text' => 'link_meta_saml2sphosted'); - -if ($config->getValue('enable.saml20-idp') === true) - $linksmeta[] = array( - 'href' => 'saml2/idp/metadata.php?output=xhtml', - 'text' => 'link_meta_saml2idphosted'); - -if ($config->getValue('enable.shib13-sp') === true) - $linksmeta[] = array( - 'href' => 'shib13/sp/metadata.php?output=xhtml', - 'text' => 'link_meta_shib13sphosted'); - -if ($config->getValue('enable.shib13-idp') === true) - $linksmeta[] = array( - 'href' => 'shib13/idp/metadata.php?output=xhtml', - 'text' => 'link_meta_shib13idphosted'); +// if ($config->getValue('enable.saml20-sp') === true) +// $linksmeta[] = array( +// 'href' => 'saml2/sp/metadata.php?output=xhtml', +// 'text' => 'link_meta_saml2sphosted'); +// +// if ($config->getValue('enable.saml20-idp') === true) +// $linksmeta[] = array( +// 'href' => 'saml2/idp/metadata.php?output=xhtml', +// 'text' => 'link_meta_saml2idphosted'); +// +// if ($config->getValue('enable.shib13-sp') === true) +// $linksmeta[] = array( +// 'href' => 'shib13/sp/metadata.php?output=xhtml', +// 'text' => 'link_meta_shib13sphosted'); +// +// if ($config->getValue('enable.shib13-idp') === true) +// $linksmeta[] = array( +// 'href' => 'shib13/idp/metadata.php?output=xhtml', +// 'text' => 'link_meta_shib13idphosted'); $linksmeta[] = array( @@ -113,6 +123,46 @@ $linksmeta[] = array( ); +$metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); + +$metaentries = array('hosted' => array(), 'remote' => array() ); +if ($config->getValue('enable.saml20-sp') === true) { + try { + $metaentries['hosted']['saml20-sp'] = $metadata->getMetaDataCurrent('saml20-sp-hosted'); + $metaentries['hosted']['saml20-sp']['metadata-url'] = '/' . $config->getBaseURL() . 'saml2/sp/metadata.php?output=xhtml'; + if ($isadmin) + $metaentries['remote']['saml20-idp-remote'] = $metadata->getList('saml20-idp-remote'); + } catch(Exception $e) {} +} +if ($config->getValue('enable.saml20-idp') === true) { + try { + $metaentries['hosted']['saml20-idp'] = $metadata->getMetaDataCurrent('saml20-idp-hosted'); + $metaentries['hosted']['saml20-idp']['metadata-url'] = '/' . $config->getBaseURL() . 'saml2/idp/metadata.php?output=xhtml'; + if ($isadmin) + $metaentries['remote']['saml20-sp-remote'] = $metadata->getList('saml20-sp-remote'); + } catch(Exception $e) {} +} +if ($config->getValue('enable.shib13-sp') === true) { + try { + $metaentries['hosted']['shib13-sp'] = $metadata->getMetaDataCurrent('shib13-sp-hosted'); + $metaentries['hosted']['shib13-sp']['metadata-url'] = '/' . $config->getBaseURL() . 'shib13/sp/metadata.php?output=xhtml'; + if ($isadmin) + $metaentries['remote']['shib13-idp-remote'] = $metadata->getList('shib13-idp-remote'); + } catch(Exception $e) {} +} +if ($config->getValue('enable.shib13-idp') === true) { + try { + $metaentries['hosted']['shib13-idp'] = $metadata->getMetaDataCurrent('shib13-idp-hosted'); + $metaentries['hosted']['shib13-idp']['metadata-url'] = '/' . $config->getBaseURL() . 'shib13/idp/metadata.php?output=xhtml'; + if ($isadmin) + $metaentries['remote']['shib13-sp-remote'] = $metadata->getList('shib13-sp-remote'); + } catch(Exception $e) {} +} + +#echo '<pre>'; print_r($metaentries); exit; + + + $linksdoc = array(); @@ -218,12 +268,17 @@ $funcmatrix[] = array( ); $t = new SimpleSAML_XHTML_Template($config, 'frontpage.php', 'frontpage'); +$t->data['isadmin'] = $isadmin; +$t->data['loginurl'] = $loginurl; $t->data['header'] = 'simpleSAMLphp installation page'; $t->data['icon'] = 'compass_l.png'; $t->data['warnings'] = $warnings; $t->data['links'] = $links; $t->data['links_meta'] = $linksmeta; $t->data['links_doc'] = $linksdoc; +$t->data['links_conf'] = $linksconf; +$t->data['metaentries'] = $metaentries; + $t->data['enablematrix'] = $enablematrix; $t->data['funcmatrix'] = $funcmatrix; $t->data['version'] = $config->getVersion(); -- GitLab