diff --git a/modules/core/templates/frontpage_federation.twig b/modules/core/templates/frontpage_federation.twig new file mode 100644 index 0000000000000000000000000000000000000000..25601e42c1ac7699d117979885ab263aec758d11 --- /dev/null +++ b/modules/core/templates/frontpage_federation.twig @@ -0,0 +1,89 @@ +{% set pagetitle = '{core:frontpage:page_title}'|trans %} +{% extends "base.twig" %} + +{% block content %} + {% if isadmin %} + <p class="float-r youareadmin">{{ '{core:frontpage:loggedin_as_admin}'|trans }}</p> + {% else %} + <p class="float-r youareadmin"> + <a href="{{ loginurl|escape('url') }}">{{ '{core:frontpage:login_as_admin}'|trans }}</a> + </p> + {% endif %} + + {% if metaentries.hosted is iterable and metaentries.hosted is not empty %} + <dl> + {% for key, set in metaentries.hosted %} + {% set metadataset = attribute(set, 'metadata-set') %} + <dt>{{ mtype[metadataset]|trans }}</dt> + <dd> + <p>Entity ID: {{ hm.entityid }} + {% if set.deprecated is defined and set.deprecated %} + <br /><span style="font-weight: bold;">Deprecated</span> + {% endif %} + {% if set.entityid != attribute(set, 'metadata-index') %} + <br />Index: {{ attribute(set, 'metadata-index') }} + {% endif %} + {% if set.name_translated is defined %} + <br /><span style="font-weight: bold;">{{ set.name_translated }}</span> + {% endif %} + {% if set.descr_translated is defined %} + <br /><span style="font-weight: bold;">{{ set.descr_translated }}</span> + {% endif %} + <br />[ <a href="{{ attribute(set, 'metadata-url') }}">{{'{core:frontpage:show_metadata}'|trans }}</a> ] + </p> + </dd> + {% endfor %} + </dl> + {% endif %} + + {% if metaentries.remote is iterable and metaentries.remote is not empty %} + {% for key, set in metaentries.remote %} + <fieldset class="fancyfieldset"> + <legend>{{ mtype[key]|trans }} (Trusted)</legend> + <ul> + {% for entityid, entity in set %} + <li><a href="{{ (metadata_url ~ '?entityid=' ~ entity.entityid ~ '&set=' ~ key)|escape('html') }}"> + {%- if entity.name_translated is defined %} + {{ entity.name_translated }} + {% elseif entity.organizationdisplayname_translated is defined %} + {{ entity.organizationdisplayname_translated }} + {% else %}{{ entity.entityid|escape('html') }} + {% endif -%}</a> + + {%- if entity.expire is defined %} + {% if entity.expire > date().timestamp %} + <span style="color: #500; font-weight: bold"> (expired {{ ((date().timestamp - entity.expire) / 3600) }} hours ago)</span> + {% else %} (expires in {{ ((entity.expire - date().timestamp) / 3600) }} hours){% endif -%}{% endif %} + </li> + {% endfor %} + </ul> + </fieldset> + {% endfor %} + {% endif %} + + <h2>{{ '{core:frontpage:tools}'|trans }}</h2> + <ul> + {% for key, link in links_federation %} + <li><a href="{{ link.href|escape('html') }}">{{ link.text|trans|escape('html') }}</a></li> + {% endfor %} + </ul> + + {% if isadmin %} + <fieldset class="fancyfieldset"> + <legend>Lookup metadata</legend> + <form action="{{ metadata_url }}" method="get"> + <p style="margin: 1em 2em ">Look up metadata for entity: + <select name="set"> + {% if metaentries.remote is defined and metaentries.remote is not empty %} + {% for key, set in metaentries.remote %} + <option value="{{ key|escape('html') }}">{{ mtype[key]|trans }}</option> + {% endfor %} + {% endif %} + </select> + <input type="text" name="entityid" /> + <button class="btn" type="submit">Lookup </button> + </p> + </form> + </fieldset> + {% endif %} +{% endblock %} diff --git a/modules/core/templates/frontpage_welcome.twig b/modules/core/templates/frontpage_welcome.twig new file mode 100644 index 0000000000000000000000000000000000000000..3ed8da3eaef0c9166282f680f3d32cd12afbbf7f --- /dev/null +++ b/modules/core/templates/frontpage_welcome.twig @@ -0,0 +1,22 @@ +{% set pagetitle = '{core:frontpage:page_title}'|trans %} +{% extends "base.twig" %} + +{% block content %} + {% if isadmin %} + <p class="float-r youareadmin">{{ '{core:frontpage:loggedin_as_admin}'|trans }}</p> + {% else %} + <p class="float-r youareadmin"> + <a href="{{ loginurl|escape('url') }}">{{ '{core:frontpage:login_as_admin}'|trans }}</a> + </p> + {% endif %} + + <p>{{ '{core:frontpage:intro}'|trans|raw }}</p> + <ul> + {% for key, link in links_welcome %} + <li><a href="{{ link.href|escape('html') }}">{{ link.text|trans|escape('html') }}</a></li> + {% endfor %} + </ul> + + <h2>{{ '{core:frontpage:about_header}'|trans }}</h2> + <p>{{ '{core:frontpage:about_text}'|trans|raw }}</p> +{% endblock %} diff --git a/modules/core/www/frontpage_federation.php b/modules/core/www/frontpage_federation.php index 669fc2e2c1a3f018b534a744e6b1822b3c530638..3cac2f4ee17c560985bc1e335d4ea9e6d887ca81 100644 --- a/modules/core/www/frontpage_federation.php +++ b/modules/core/www/frontpage_federation.php @@ -117,6 +117,36 @@ foreach ($metaentries['remote'] as $key => $value) { $t = new SimpleSAML_XHTML_Template($config, 'core:frontpage_federation.tpl.php'); +$language = $t->getLanguage(); +$defaultLanguage = $config->getString('language.default', 'en'); + +$translators = array( + 'name' => 'name_translated', + 'descr' => 'descr_translated', + 'OrganizationDisplayName' => 'organizationdisplayname_translated', +); + +foreach ($metaentries['hosted'] as $index => $entity) { + foreach ($translators as $old => $new) { + if (isset($entity[$old][$language])) { + $metaentries['hosted'][$index][$new] = $entity[$old][$language]; + } elseif ($entity[$old][$defaultLanguage]) { + $metaentries['hosted'][$index][$new] = $entity[$old][$defaultLanguage]; + } + } +} +foreach ($metaentries['remote'] as $key => $set) { + foreach ($set as $entityid => $entity) { + foreach ($translators as $old => $new) { + if (isset($entity[$old][$language])) { + $metaentries['remote'][$key][$entityid][$new] = $entity[$old][$language]; + } elseif ($entity[$old][$defaultLanguage]) { + $metaentries['remote'][$key][$entityid][$new] = $entity[$old][$defaultLanguage]; + } + } + } +} + # look up translated string $mtype = array( 'saml20-sp-remote' => $t->noop('{admin:metadata_saml20-sp}'), @@ -143,12 +173,11 @@ $t->data['links_welcome'] = $links_welcome; $t->data['links_config'] = $links_config; $t->data['links_auth'] = $links_auth; $t->data['links_federation'] = $links_federation; +$t->data['header'] = $t->t('{core:frontpage:page_title}'); - - +$t->data['metadata_url'] = SimpleSAML\Module::getModuleURL('core/show_metadata.php'); $t->data['metaentries'] = $metaentries; $t->data['mtype'] = $mtype; - $t->show(); diff --git a/modules/core/www/frontpage_welcome.php b/modules/core/www/frontpage_welcome.php index abeeecea12715fb6b7db7334c8437de5c3889f7b..aa79756cd463d56ee6adaa0c2c9113aa8ff1fdfb 100644 --- a/modules/core/www/frontpage_welcome.php +++ b/modules/core/www/frontpage_welcome.php @@ -57,7 +57,7 @@ $t->data['links_welcome'] = $links_welcome; $t->data['links_config'] = $links_config; $t->data['links_auth'] = $links_auth; $t->data['links_federation'] = $links_federation; - +$t->data['header'] = $t->t('{core:frontpage:page_title}'); diff --git a/modules/multiauth/lib/Auth/Source/MultiAuth.php b/modules/multiauth/lib/Auth/Source/MultiAuth.php index f63bcce9d4c26e1d7b61548e320e777a89551a10..56960f154c6f0705e14ebf57c9c6330fc706531a 100644 --- a/modules/multiauth/lib/Auth/Source/MultiAuth.php +++ b/modules/multiauth/lib/Auth/Source/MultiAuth.php @@ -69,6 +69,9 @@ class sspmod_multiauth_Auth_Source_MultiAuth extends SimpleSAML_Auth_Source { $text = array($defaultLanguage => $source); } + if (array_key_exists('help', $info)) { + $help = $info['help']; + } if (array_key_exists('css-class', $info)) { $css_class = $info['css-class']; } else { @@ -84,6 +87,7 @@ class sspmod_multiauth_Auth_Source_MultiAuth extends SimpleSAML_Auth_Source { $this->sources[] = array( 'source' => $source, 'text' => $text, + 'help' => $help, 'css_class' => $css_class, ); }