diff --git a/modules/core/templates/authsource_list.tpl.php b/modules/core/templates/authsource_list.tpl.php deleted file mode 100644 index 20522518defa804e70e6e850a8f4ef9447c4b9d2..0000000000000000000000000000000000000000 --- a/modules/core/templates/authsource_list.tpl.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -/** - * Template to show list of configured authentication sources. - * - */ -$this->data['header'] = 'Test authentication sources'; -$this->includeAtTemplateBase('includes/header.php'); -?> -<h1><?php echo $this->data['header']; ?></h1> -<ul> -<?php -foreach ($this->data['sources'] as $id) { - echo '<li><a href="?as='.htmlspecialchars(urlencode($id)).'">'.htmlspecialchars($id).'</a></li>'; -} -?> -</ul> - -<?php -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/cardinality_error.tpl.php b/modules/core/templates/cardinality_error.tpl.php deleted file mode 100644 index 6dd78aa1b6168858a14063c815525b32fd2cba22..0000000000000000000000000000000000000000 --- a/modules/core/templates/cardinality_error.tpl.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Template which is shown when when an attribute violates a cardinality rule - * - * Parameters: - * - 'target': Target URL. - * - 'params': Parameters which should be included in the request. - * - * @package SimpleSAMLphp - */ - - -$this->data['cardinality_header'] = $this->t('{core:cardinality:cardinality_header}'); -$this->data['cardinality_text'] = $this->t('{core:cardinality:cardinality_text}'); -$this->data['problematic_attributes'] = $this->t('{core:cardinality:problematic_attributes}'); - -$this->includeAtTemplateBase('includes/header.php'); -?> -<h1><?php echo $this->data['cardinality_header']; ?></h1> -<p><?php echo $this->data['cardinality_text']; ?></p> -<h3><?php echo $this->data['problematic_attributes']; ?></h3> -<dl class="cardinalityErrorAttributes"> -<?php -foreach ($this->data['cardinalityErrorAttributes'] as $attr => $v) { - echo '<dt>'.$attr.'</td><dd>'; - echo $this->t( - '{core:cardinality:got_want}', - ['%GOT%' => $v[0], '%WANT%' => htmlspecialchars($v[1])] - ); - echo '</dd></tr>'; -} -echo '</dl>'; -if (isset($this->data['LogoutURL'])) { - echo '<p><a href="'.htmlspecialchars($this->data['LogoutURL']).'>">'.$this->t('{status:logout}').'</a></p>'; -} -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/frontpage_auth.tpl.php b/modules/core/templates/frontpage_auth.tpl.php deleted file mode 100644 index afb55b30d72452381c8e02b3f17f346d5ac046dc..0000000000000000000000000000000000000000 --- a/modules/core/templates/frontpage_auth.tpl.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -$this->data['header'] = $this->t('{core:frontpage:page_title}'); -$this->includeAtTemplateBase('includes/header.php'); - -?> - -<?php -if ($this->data['isadmin']) { - echo '<p class="float-r youareadmin">'.$this->t('{core:frontpage:loggedin_as_admin}').'</p>'; -} else { - echo '<p class="float-r youareadmin"><a href="'.$this->data['loginurl'].'">'. - $this->t('{core:frontpage:login_as_admin}').'</a></p>'; -} -?> - -<!-- <h2><?php echo $this->t('{core:frontpage:useful_links_header}'); ?></h2> --> -<ul> -<?php -foreach ($this->data['links_auth'] as $link) { - echo '<li><a href="'.htmlspecialchars($link['href']).'">'.$this->t($link['text']).'</a>'; - if (isset($link['deprecated']) && $link['deprecated']) { - echo ' <b>'.$this->t('{core:frontpage:deprecated}').'</b>'; - } - echo '</li>'; -} -?> -</ul> - -<?php $this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/frontpage_config.tpl.php b/modules/core/templates/frontpage_config.tpl.php deleted file mode 100644 index 8227e8cd0ce23e0a572b21388d5544cf57fc614f..0000000000000000000000000000000000000000 --- a/modules/core/templates/frontpage_config.tpl.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -$this->data['header'] = $this->t('{core:frontpage:page_title}'); -$this->includeAtTemplateBase('includes/header.php'); - -?> - -<!-- -<div id="tabdiv"> -<ul> - <li><a href="#welcome"><?php echo $this->t('{core:frontpage:welcome}'); ?></a></li> - <li><a href="#configuration"><?php echo $this->t('{core:frontpage:configuration}'); ?></a></li> - <li><a href="#metadata"><?php echo $this->t('{core:frontpage:metadata}'); ?></a></li> -</ul> --> -<?php -if ($this->data['isadmin']) { - echo '<p class="float-r youareadmin">'.$this->t('{core:frontpage:loggedin_as_admin}').'</p>'; -} else { - echo '<p class="float-r youareadmin"><a href="'.$this->data['loginurl'].'">'. - $this->t('{core:frontpage:login_as_admin}').'</a></p>'; -} -?> - -<div style="margin-top: 1em;"> - <code style="background: white; background: #f5f5f5; border: 1px dotted #bbb; padding: 1em; color: #555" ><?php - echo $this->data['directory'].' ('.$this->data['version'].')'; - ?></code> -</div> - -<div style="clear: both" class="enablebox mini"> - <table> - - <?php - $icon_enabled = '<img src="/'.$this->data['baseurlpath'].'resources/icons/silk/accept.png" alt="enabled" />'; - $icon_disabled = '<img src="/'.$this->data['baseurlpath'].'resources/icons/silk/delete.png" alt="disabled" />'; - echo '<tr class="'.($this->data['enablematrix']['saml20idp'] ? 'enabled' : 'disabled').'"><td>SAML 2.0 IdP</td>'; - echo '<td>'.($this->data['enablematrix']['saml20idp'] ? $icon_enabled : $icon_disabled).'</td></tr>'; - - echo '<tr class="'.($this->data['enablematrix']['shib13idp'] ? 'enabled' : 'disabled').'"><td>Shib 1.3 IdP</td>'; - echo '<td>'.($this->data['enablematrix']['shib13idp'] ? $icon_enabled : $icon_disabled).'</td></tr>'; - ?> - - </table> -</div> - -<h2><?php echo $this->t('{core:frontpage:configuration}'); ?></h2> -<ul> -<?php -foreach ($this->data['links_config'] 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'])) { - echo '<h2>'.$this->t('{core:frontpage:warnings}').'</h2>'; - foreach ($this->data['warnings'] as $warning) { - echo '<div class="caution">'.$warning.'</div>'; - } -} - -if ($this->data['isadmin']) { - echo '<h2>'.$this->t('{core:frontpage:checkphp}').'</h2>'; - echo '<div class="enablebox"><table>'; - - $icon_enabled = '<img src="/'.$this->data['baseurlpath'].'resources/icons/silk/accept.png" alt="enabled" />'; - $icon_disabled = '<img src="/'.$this->data['baseurlpath'].'resources/icons/silk/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>'; - echo '<td>'.$this->t($this->data['requiredmap'][$func['required']]).'</td><td>'.$func['descr'].'</td></tr>'; - } - echo '</table></div>'; -} - -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/frontpage_federation.tpl.php b/modules/core/templates/frontpage_federation.tpl.php deleted file mode 100644 index 6bdce021115624cd0b38451de208c217e64dc1a3..0000000000000000000000000000000000000000 --- a/modules/core/templates/frontpage_federation.tpl.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php - -$this->data['header'] = $this->t('{core:frontpage:page_title}'); -$this->includeAtTemplateBase('includes/header.php'); - -if ($this->data['isadmin']) { - echo '<p class="float-r youareadmin">'.$this->t('{core:frontpage:loggedin_as_admin}').'</p>'; -} else { - echo '<p class="float-r youareadmin"><a href="'.$this->data['loginurl'].'">'. - $this->t('{core:frontpage:login_as_admin}').'</a></p>'; -} - -if (is_array($this->data['metaentries']['hosted']) && count($this->data['metaentries']['hosted']) > 0) { - echo '<dl>'; - foreach ($this->data['metaentries']['hosted'] as $hm) { - echo '<dt>'.$this->t($this->data['mtype'][$hm['metadata-set']]).'</dt>'; - echo '<dd>'; - echo '<p>Entity ID: '.$hm['entityid']; - if (isset($hm['deprecated']) && $hm['deprecated']) { - echo '<br /><b>Deprecated</b>'; - } - if ($hm['entityid'] !== $hm['metadata-index']) { - echo '<br />Index: '.$hm['metadata-index']; - } - if (!empty($hm['name'])) { - echo '<br /><strong>'. - $this->getTranslator()->getPreferredTranslation(SimpleSAML\Utils\Arrays::arrayize($hm['name'], 'en')). - '</strong>'; - } - if (!empty($hm['descr'])) { - echo '<br /><strong>'. - $this->getTranslator()->getPreferredTranslation(SimpleSAML\Utils\Arrays::arrayize($hm['descr'], 'en')). - '</strong>'; - } - - echo '<br />[ <a href="'.$hm['metadata-url'].'">'.$this->t('{core:frontpage:show_metadata}').'</a> ]'; - - echo '</p></dd>'; - } - echo '</dl>'; -} - -if (is_array($this->data['metaentries']['remote']) && count($this->data['metaentries']['remote']) > 0) { - $now = time(); - foreach ($this->data['metaentries']['remote'] as $setkey => $set) { - echo '<fieldset class="fancyfieldset"><legend>'.$this->t($this->data['mtype'][$setkey]).' (Trusted)</legend>'; - echo '<ul>'; - foreach ($set as $entry) { - echo '<li>'; - echo('<a href="'. - htmlspecialchars( - SimpleSAML\Module::getModuleURL( - 'core/show_metadata.php', - ['entityid' => $entry['entityid'], 'set' => $setkey] - ) - ).'">'); - if (!empty($entry['name'])) { - echo htmlspecialchars($this->getTranslator()->getPreferredTranslation( - SimpleSAML\Utils\Arrays::arrayize($entry['name'], 'en') - )); - } elseif (!empty($entry['OrganizationDisplayName'])) { - echo htmlspecialchars($this->getTranslator()->getPreferredTranslation( - SimpleSAML\Utils\Arrays::arrayize($entry['OrganizationDisplayName'], 'en') - )); - } else { - echo htmlspecialchars($entry['entityid']); - } - echo '</a>'; - if (array_key_exists('expire', $entry)) { - if ($entry['expire'] < $now) { - echo '<span style="color: #500; font-weight: bold"> (expired '. - number_format(($now - $entry['expire']) / 3600, 1).' hours ago)</span>'; - } else { - echo ' (expires in '.number_format(($entry['expire'] - $now) / 3600, 1).' hours)'; - } - } - echo '</li>'; - } - echo '</ul>'; - echo '</fieldset>'; - } -} - -echo '<h2>'.$this->t('{core:frontpage:tools}').'</h2>'; -echo '<ul>'; -foreach ($this->data['links_federation'] as $link) { - echo '<li><a href="'.htmlspecialchars($link['href']).'">'.$this->t($link['text']).'</a></li>'; -} -echo '</ul>'; -if ($this->data['isadmin']) { -?> - <fieldset class="fancyfieldset"> - <legend>Lookup metadata</legend> - <form action="<?php echo SimpleSAML\Module::getModuleURL('core/show_metadata.php'); ?>" method="get"> - <p style="margin: 1em 2em ">Look up metadata for entity: - <select name="set"> -<?php - if (is_array($this->data['metaentries']['remote']) && count($this->data['metaentries']['remote']) > 0) { - foreach ($this->data['metaentries']['remote'] as $setkey => $set) { - echo '<option value="'.htmlspecialchars($setkey).'">'.$this->t($this->data['mtype'][$setkey]).'</option>'; - } - } -?> - </select> - <input type="text" name="entityid" /> - <button class="btn" type="submit">Lookup </button> - </p> - </form> - </fieldset> -<?php -} -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/frontpage_welcome.tpl.php b/modules/core/templates/frontpage_welcome.tpl.php deleted file mode 100644 index da5c2e5297df57f79fd9fac751a7f0832cb3cebc..0000000000000000000000000000000000000000 --- a/modules/core/templates/frontpage_welcome.tpl.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -$this->data['header'] = $this->t('{core:frontpage:page_title}'); -$this->includeAtTemplateBase('includes/header.php'); - -if ($this->data['isadmin']) { - echo '<p class="float-r youareadmin">'.$this->t('{core:frontpage:loggedin_as_admin}').'</p>'; -} else { - echo '<p class="float-r youareadmin"><a href="'.$this->data['loginurl'].'">'. - $this->t('{core:frontpage:login_as_admin}').'</a></p>'; -} -?> - -<p><?php echo $this->t('{core:frontpage:intro}'); ?></p> - -<ul> -<?php -foreach ($this->data['links_welcome'] as $link) { - echo '<li><a href="'. htmlspecialchars($link['href']).'">'.$this->t($link['text']).'</a></li>'; -} -?> -</ul> - -<?php $this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/loginuserpass.tpl.php b/modules/core/templates/loginuserpass.tpl.php deleted file mode 100644 index 30c8db5499bd5af0d1a4bf0c827b40498b5c091b..0000000000000000000000000000000000000000 --- a/modules/core/templates/loginuserpass.tpl.php +++ /dev/null @@ -1,195 +0,0 @@ -<?php -$this->data['header'] = $this->t('{login:user_pass_header}'); - -if (strlen($this->data['username']) > 0) { - $this->data['autofocus'] = 'password'; -} else { - $this->data['autofocus'] = 'username'; -} -$this->includeAtTemplateBase('includes/header.php'); - -if ($this->data['errorcode'] !== null) { -?> - <div style="border-left: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8; background: #f5f5f5"> - <img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-error.48x48.png" - class="float-l erroricon" style="margin: 15px" alt=""/> - - <h2><?php echo $this->t('{login:error_header}'); ?></h2> - - <p><strong> - <?php - echo htmlspecialchars( - $this->t( - $this->data['errorcodes']['title'][$this->data['errorcode']], - $this->data['errorparams'] - ) - ); - ?> - </strong></p> - <p> - <?php - echo htmlspecialchars( - $this->t( - $this->data['errorcodes']['descr'][$this->data['errorcode']], - $this->data['errorparams'] - ) - ); - ?> - </p> - </div> -<?php -} -?> - <h2 style="break: both"><?php echo $this->t('{login:user_pass_header}'); ?></h2> - - <p class="logintext"><?php echo $this->t('{login:user_pass_text}'); ?></p> - - <form action="?" method="post" name="f"> - <table> - <tr> - <td rowspan="2" class="loginicon"> - <img alt="" - src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-authentication.48x48.png" /> - </td> - <td><label for="username"><?php echo $this->t('{login:username}'); ?></label></td> - <td> - <input id="username" <?php echo ($this->data['forceUsername']) ? 'disabled="disabled"' : ''; ?> - type="text" name="username"<?php echo $this->data['forceUsername'] ? '' : ' autocomplete="username" tabindex="1"'; ?> - value="<?php echo htmlspecialchars($this->data['username']); ?>" /> - </td> - <?php - if ($this->data['rememberUsernameEnabled'] && !$this->data['forceUsername']) { - // display the "remember my username" checkbox - ?> - <td id="regular_remember_username"> - <input type="checkbox" id="remember_username" tabindex="4" - <?php echo ($this->data['rememberUsernameChecked']) ? 'checked="checked"' : ''; ?> - name="remember_username" value="Yes" /> - <small><?php echo $this->t('{login:remember_username}'); ?></small> - </td> - <?php - } - ?> - </tr> - <?php - if ($this->data['rememberUsernameEnabled'] && !$this->data['forceUsername']) { - // display the "remember my username" checkbox - ?> - <tr id="mobile_remember_username"> - <td> </td> - <td> - <input type="checkbox" id="remember_username" tabindex="4" - <?php echo ($this->data['rememberUsernameChecked']) ? 'checked="checked"' : ''; ?> - name="remember_username" value="Yes" /> - <small><?php echo $this->t('{login:remember_username}'); ?></small> - </td> - </tr> - <?php - } - ?> - <tr> - <td><label for="password"><?php echo $this->t('{login:password}'); ?></label></td> - <td><input id="password" type="password" tabindex="2" name="password" autocomplete="current-password" /></td> - <?php - if ($this->data['rememberMeEnabled']) { - // display the remember me checkbox (keep me logged in) - ?> - <td id="regular_remember_me"> - <input type="checkbox" id="remember_me" tabindex="5" - <?php echo ($this->data['rememberMeChecked']) ? 'checked="checked"' : ''; ?> - name="remember_me" value="Yes" /> - <small><?php echo $this->t('{login:remember_me}'); ?></small> - </td> - <?php - } - ?> - </tr> - <?php - if ($this->data['rememberMeEnabled']) { - // display the remember me checkbox (keep me logged in) - ?> - <tr> - <td></td> - <td id="mobile_remember_me"> - <input type="checkbox" id="remember_me" tabindex="5" - <?php echo ($this->data['rememberMeChecked']) ? 'checked="checked"' : ''; ?> - name="remember_me" value="Yes" /> - <small><?php echo $this->t('{login:remember_me}'); ?></small> - </td> - </tr> - <?php - } - ?> - <?php - if (array_key_exists('organizations', $this->data)) { - ?> - <tr> - <td></td> - <td><label for="organization"><?php echo $this->t('{login:organization}'); ?></label></td> - <td><select name="organization" tabindex="3"> - <?php - if (array_key_exists('selectedOrg', $this->data)) { - $selectedOrg = $this->data['selectedOrg']; - } else { - $selectedOrg = null; - } - - foreach ($this->data['organizations'] as $orgId => $orgDesc) { - if (is_array($orgDesc)) { - $orgDesc = $this->t($orgDesc); - } - - if ($orgId === $selectedOrg) { - $selected = 'selected="selected" '; - } else { - $selected = ''; - } - - echo '<option '.$selected.'value="'.htmlspecialchars($orgId).'">'. - htmlspecialchars($orgDesc).'</option>'; - } - ?> - </select></td> - <td style="padding: .4em;"> - <?php - if ($this->data['rememberOrganizationEnabled']) { - echo str_repeat("\t", 4); - echo '<input type="checkbox" id="remember_organization" tabindex="5"'. - ' name="remember_organization" value="Yes" '. - ($this->data['rememberOrganizationChecked'] ? 'checked="Yes" /> ' : '/> '). - $this->t('{login:remember_organization}'); - } - ?> - </td> - </tr> - <?php - } - ?> - <tr id="submit"> - <td class="loginicon"></td><td></td> - <td> - <button id="submit_button" class="btn" tabindex="6" type="submit"> - <?php echo $this->t('{login:login_button}'); ?> - </button> - </td> - </tr> - </table> - <input type="hidden" id="processing_trans" value="<?php echo $this->t('{login:processing}'); ?>" /> - <?php - foreach ($this->data['stateparams'] as $name => $value) { - echo '<input type="hidden" name="'.htmlspecialchars($name).'" value="'.htmlspecialchars($value).'" />'; - } - ?> - </form> -<?php -if (!empty($this->data['links'])) { - echo '<ul class="links" style="margin-top: 2em">'; - foreach ($this->data['links'] as $l) { - echo '<li><a href="'.htmlspecialchars($l['href']).'">'.htmlspecialchars($this->t($l['text'])).'</a></li>'; - } - echo '</ul>'; -} -echo '<h2 class="logintext">'.$this->t('{login:help_header}').'</h2>'; -echo '<p class="logintext">'.$this->t('{login:help_text}').'</p>'; - -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/logout-iframe-wrapper.tpl.php b/modules/core/templates/logout-iframe-wrapper.tpl.php deleted file mode 100644 index a26e55a62b72e87ae1213b0ada1018aa3edc544e..0000000000000000000000000000000000000000 --- a/modules/core/templates/logout-iframe-wrapper.tpl.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php - -use Webmozart\Assert\Assert; - -$id = $this->data['auth_state']; -$SPs = $this->data['SPs']; - -$iframeURL = 'logout-iframe.php?type=embed&id='.urlencode($id); - -// pretty arbitrary height, but should have enough safety margins for most cases -$iframeHeight = 25 + count($SPs) * 4; - -$this->data['header'] = $this->t('{logout:progress}'); -$this->includeAtTemplateBase('includes/header.php'); -echo '<iframe style="width:100%; height:'.$iframeHeight.'em; border:0;" src="'. - htmlspecialchars($iframeURL).'"></iframe>'; - -foreach ($SPs as $assocId => $sp) { - $spId = sha1($assocId); - - if ($sp['core:Logout-IFrame:State'] !== 'inprogress') { - continue; - } - Assert::notNull($sp['core:Logout-IFrame:URL']); - - $url = $sp["core:Logout-IFrame:URL"]; - - echo '<iframe style="width:0; height:0; border:0;" src="'.htmlspecialchars($url).'"></iframe>'; -} - -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/logout-iframe.tpl.php b/modules/core/templates/logout-iframe.tpl.php deleted file mode 100644 index fca62bba7b2762e7fa8bf5532bae9bca3b52b5e1..0000000000000000000000000000000000000000 --- a/modules/core/templates/logout-iframe.tpl.php +++ /dev/null @@ -1,200 +0,0 @@ -<?php - -use Webmozart\Assert\Assert; - -$id = $this->data['auth_state']; -$type = $this->data['type']; -$from = $this->data['from']; -$SPs = $this->data['SPs']; - -$stateImage = [ - 'unsupported' => '/'.$this->data['baseurlpath'].'resources/icons/silk/delete.png', - 'completed' => '/'.$this->data['baseurlpath'].'resources/icons/silk/accept.png', - 'onhold' => '/'.$this->data['baseurlpath'].'resources/icons/bullet16_grey.png', - 'inprogress' => '/'.$this->data['baseurlpath'].'resources/progress.gif', - 'failed' => '/'.$this->data['baseurlpath'].'resources/icons/silk/exclamation.png', -]; - -$stateText = [ - 'unsupported' => '', - 'completed' => $this->t('{logout:completed}'), - 'onhold' => '', - 'inprogress' => $this->t('{logout:progress}'), - 'failed' => $this->t('{logout:failed}'), -]; - -$spStatus = []; -$spTimeout = []; -$nFailed = 0; -$nProgress = 0; -foreach ($SPs as $assocId => $sp) { - Assert::notNull($sp['core:Logout-IFrame:State']); - $state = $sp['core:Logout-IFrame:State']; - $spStatus[sha1($assocId)] = $state; - if (isset($sp['core:Logout-IFrame:Timeout'])) { - $spTimeout[sha1($assocId)] = $sp['core:Logout-IFrame:Timeout'] - time(); - } else { - $spTimeout[sha1($assocId)] = 5; - } - if ($state === 'failed') { - $nFailed += 1; - } elseif ($state === 'inprogress') { - $nProgress += 1; - } -} - -if ($from !== null) { - $from = $this->getTranslator()->getPreferredTranslation($from); -} - -if (!isset($this->data['head'])) { - $this->data['head'] = ''; -} - -$this->data['head'] .= ' -<script type="text/javascript" language="JavaScript"> -window.stateImage = '.json_encode($stateImage).'; -window.stateText = '.json_encode($stateText).'; -window.spStatus = '.json_encode($spStatus).'; -window.spTimeout = '.json_encode($spTimeout).'; -window.type = "'.$type.'"; -</script>'; - -$this->data['head'] .= '<script type="text/javascript" src="logout-iframe.js"></script>'; - -if ($type === 'embed') { - $this->data['head'] .= '<meta http-equiv="refresh" content="1" />'; -} - -$this->data['header'] = $this->t('{logout:progress}'); -if ($type === 'embed') { - $this->includeAtTemplateBase('includes/header-embed.php'); -} else { - $this->includeAtTemplateBase('includes/header.php'); -} -?> -<div id="wrap"> - <div id="content"> -<?php -if ($from !== null) { - echo '<div><img style="float: left; margin-right: 12px" src="/'.$this->data['baseurlpath']. - 'resources/icons/checkmark.48x48.png" alt="Successful logout" />'; - echo '<p style="padding-top: 16px; ">'. - $this->t('{logout:loggedoutfrom}', ['%SP%' => '<strong>'.htmlspecialchars($from).'</strong>']).'</p>'; - echo '<p style="height: 0px; clear: left;"></p></div>'; -} - -echo '<div style="margin-top: 3em; clear: both">'; - -echo '<p style="margin-bottom: .5em">'; -if ($type === 'init') { - echo $this->t('{logout:also_from}'); -} else { - echo $this->t('{logout:logging_out_from}'); -} -?> - </p> - <table id="slostatustable"> -<?php -foreach ($SPs as $assocId => $sp) { - if (isset($sp['core:Logout-IFrame:Name'])) { - $spName = $this->getTranslator()->getPreferredTranslation($sp['core:Logout-IFrame:Name']); - } else { - $spName = $assocId; - } - - Assert::notNull($sp['core:Logout-IFrame:State']); - $spState = $sp['core:Logout-IFrame:State']; - - $spId = sha1($assocId); - - echo '<tr>'; - echo '<td style="width: 3em;"></td>'; - echo '<td>'; - echo '<img class="logoutstatusimage" id="statusimage-'.$spId.'" src="'.htmlspecialchars($stateImage[$spState]). - '" alt="'.htmlspecialchars($stateText[$spState]).'"/>'; - echo '</td>'; - echo '<td>'.htmlspecialchars($spName).'</td>'; - echo '</tr>'; -} - -if (isset($from)) { - $logoutCancelText = $this->t('{logout:logout_only}', ['%SP%' => htmlspecialchars($from)]); -} else { - $logoutCancelText = $this->t('{logout:no}'); -} - -?> - </table> -</div> - -<?php -if ($type === 'init') { -?> -<div id="confirmation" style="margin-top: 1em"> - <p><?php echo $this->t('{logout:logout_all_question}'); ?> <br/></p> - <form id="startform" method="get" style="display:inline;" action="logout-iframe.php"> - <input type="hidden" name="id" value="<?php echo $id; ?>"/> - <input type="hidden" id="logout-type-selector" name="type" value="nojs"/> - <button type="submit" id="logout-all" name="ok" class="btn"> - <?php echo $this->t('{logout:logout_all}'); ?> - </button> - </form> - <form method="get" style="display:inline;" action="logout-iframe-done.php"> - <input type="hidden" name="id" value="<?php echo $id; ?>"/> - <button type="submit" name="cancel" class="btn"><?php echo $logoutCancelText; ?></button> - </form> -</div> -<?php -} else { - if ($nFailed > 0) { - $displayStyle = ''; - } else { - $displayStyle = 'display: none;'; - } - echo '<div id="logout-failed-message" style="margin-top: 1em; border: 1px solid #ccc; padding: 1em; '. - 'background: #eaeaea;'.$displayStyle.'">'; - echo '<img src="/'.$this->data['baseurlpath']. - 'resources/icons/experience/gtk-dialog-warning.48x48.png" alt="" '. - 'style="float: left; margin-right: 5px;" />'; - echo '<p>'.$this->t('{logout:failedsps}').'</p>'; - echo '<form method="post" action="logout-iframe-done.php" id="failed-form" target="_top">'; - echo '<input type="hidden" name="id" value="'.$id.'" />'; - echo '<button type="submit" name="continue" class="btn">'.$this->t('{logout:return}').'</button>'; - echo '</form>'; - echo '</div>'; - - if ($nProgress == 0 && $nFailed == 0) { - echo '<div id="logout-completed">'; - } else { - echo '<div id="logout-completed" style="display:none;">'; - } - echo '<p>'.$this->t('{logout:success}').'</p>'; -?> - <form method="post" action="logout-iframe-done.php" id="done-form" target="_top"> - <input type="hidden" name="id" value="<?php echo $id; ?>"/> - <button type="submit" name="continue" class="btn"><?php echo $this->t('{logout:return}'); ?></button> - </form> -</div> -<?php - if ($type === 'js') { - foreach ($SPs as $assocId => $sp) { - $spId = sha1($assocId); - if ($sp['core:Logout-IFrame:State'] !== 'inprogress') { - continue; - } - Assert::notNull($sp['core:Logout-IFrame:URL']); - echo '<iframe style="width:0; height:0; border:0;" src="'. - htmlspecialchars($sp['core:Logout-IFrame:URL']).'"></iframe>'; - } - } -} -?> - </div><!-- #content --> - </div><!-- #wrap --> -<?php -if ($type === 'embed') { - $this->includeAtTemplateBase('includes/footer-embed.php'); -} else { - $this->includeAtTemplateBase('includes/footer.php'); -} diff --git a/modules/core/templates/no_cookie.tpl.php b/modules/core/templates/no_cookie.tpl.php deleted file mode 100644 index 8c6c34e25288a99051c1675a055886d68881928b..0000000000000000000000000000000000000000 --- a/modules/core/templates/no_cookie.tpl.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php - -use Webmozart\Assert\Assert; - -Assert::keyExists($this->data, 'retryURL'); -$retryURL = $this->data['retryURL']; - -$header = htmlspecialchars($this->t('{core:no_cookie:header}')); -$description = htmlspecialchars($this->t('{core:no_cookie:description}')); -$retry = htmlspecialchars($this->t('{core:no_cookie:retry}')); - -$this->data['header'] = $header; -$this->includeAtTemplateBase('includes/header.php'); - -echo('<h2>'.$header.'</h2>'); -echo('<p>'.$description.'</p>'); - -if ($retryURL !== null) { - echo('<ul>'); - echo('<li><a href="'.htmlspecialchars($retryURL).'" id="retry">'.$retry.'</a></li>'); - echo('</ul>'); -} - -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/no_metadata.tpl.php b/modules/core/templates/no_metadata.tpl.php deleted file mode 100644 index a00f3ce911bd2bf97f7ab11dc6200e4a109dd015..0000000000000000000000000000000000000000 --- a/modules/core/templates/no_metadata.tpl.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php - -echo '<p>'.$this->t('{core:no_metadata:config_problem}').'</p>'; - -echo '<ul>'; -echo '<li>'.$this->t('{core:no_metadata:suggestion_user_link}').'</li>'; -echo '<li>'.$this->t('{core:no_metadata:suggestion_developer}').'</li>'; -echo '</ul>'; diff --git a/modules/core/templates/no_state.tpl.php b/modules/core/templates/no_state.tpl.php deleted file mode 100644 index 1327a4b2dbf7e1b19151e75699517ae65c9c64d1..0000000000000000000000000000000000000000 --- a/modules/core/templates/no_state.tpl.php +++ /dev/null @@ -1,16 +0,0 @@ -<?php - -echo '<h3>'.$this->t('{core:no_state:suggestions}').'</h3>'; -echo '<ul>'; -echo '<li>'.$this->t('{core:no_state:suggestion_badlink}').'</li>'; -echo '<li>'.$this->t('{core:no_state:suggestion_goback}').'</li>'; -echo '<li>'.$this->t('{core:no_state:suggestion_closebrowser}').'</li>'; -echo '</ul>'; - -echo '<h3>'.$this->t('{core:no_state:causes}').'</h3>'; -echo '<ul>'; -echo '<li>'.$this->t('{core:no_state:cause_badlink}').'</li>'; -echo '<li>'.$this->t('{core:no_state:cause_backforward}').'</li>'; -echo '<li>'.$this->t('{core:no_state:cause_openbrowser}').'</li>'; -echo '<li>'.$this->t('{core:no_state:cause_nocookie}').'</li>'; -echo '</ul>'; diff --git a/modules/core/templates/short_sso_interval.tpl.php b/modules/core/templates/short_sso_interval.tpl.php deleted file mode 100644 index 2e305c2b9ddf1ac3a6a190c36a7fc626e3665040..0000000000000000000000000000000000000000 --- a/modules/core/templates/short_sso_interval.tpl.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Template which is shown when there is only a short interval since the user was last authenticated. - * - * Parameters: - * - 'target': Target URL. - * - 'params': Parameters which should be included in the request. - * - * @package SimpleSAMLphp - */ - - -$this->data['header'] = $this->t('{core:short_sso_interval:warning_header}'); -$this->data['autofocus'] = 'contbutton'; - -$this->includeAtTemplateBase('includes/header.php'); -$target = htmlspecialchars($this->data['target']); -$contButton = htmlspecialchars($this->t('{core:short_sso_interval:retry}')); -?> -<h1><?php echo $this->data['header']; ?></h1> -<form style="display: inline; margin: 0px; padding: 0px" action="<?php echo $target; ?>"> - -<?php -// Embed hidden fields... -foreach ($this->data['params'] as $name => $value) { - echo '<input type="hidden" name="'.htmlspecialchars($name).'" value="'.htmlspecialchars($value).'" />'; -} -?> - <p><?php echo $this->t('{core:short_sso_interval:warning}'); ?></p> - <div class="trackidtext"><p> - <?php echo $this->t('{errors:report_trackid}'); ?> - <span class="trackid"><?php echo $this->data['trackId']; ?></span> - </p> - </div> - - <input type="submit" name="continue" id="contbutton" value="<?php echo $contButton; ?>" /> - -</form> - -<?php -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/core/templates/show_metadata.tpl.php b/modules/core/templates/show_metadata.tpl.php deleted file mode 100644 index 2a23d6e91d898fc7c6fc880a50b70962a24d160a..0000000000000000000000000000000000000000 --- a/modules/core/templates/show_metadata.tpl.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$this->includeAtTemplateBase('includes/header.php'); -?> -<div class="metadatabox"> - <button data-clipboard-target="#metadata" id="btncp" class="btn topright" style="margin-right: 0.5em;"> - <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>" - alt="Copy to clipboard" /> - </button> - <pre id="metadata"> -$metadata['<?php echo $this->data['m']['metadata-index']; unset($this->data['m']['metadata-index']) ?>'] = <?php - echo htmlspecialchars(var_export($this->data['m'], true)); -?>; - </pre> -</div> -<script type="text/javascript"> - var clipboard = new ClipboardJS('#btncp'); -</script> -<br/> -<p><a href="<?php echo $this->data['backlink']; ?>"><span class="btn">Back</span></a></p> - -<?php -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/cron/templates/croninfo-result.tpl.php b/modules/cron/templates/croninfo-result.tpl.php deleted file mode 100644 index e4f0dc1695a06d856d5eba5a01732e0810641ca2..0000000000000000000000000000000000000000 --- a/modules/cron/templates/croninfo-result.tpl.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -$this->data['header'] = $this->t('cron_header'); -$this->includeAtTemplateBase('includes/header.php'); -?> - <p><?php echo $this->t('cron_result_title') ?></p> - <pre style="color: #444; padding: 1em; border: 1px solid #eee; margin: .4em "><code> -<?php - -echo ' <h1>'.$this->t('cron_report_title').'</h1><p>'.$this->t('ran_text'). - ' '.$this->data['time'].'</p>'.'<p>URL: <code>'.$this->data['url'].'</code></p>'. - '<p>Tag: '.$this->data['tag']."</p>\n\n". - '<ul><li>'.join('</li><li>', $this->data['summary']).'</li></ul>'; -?> - </code></pre> -</div> - -<?php -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/cron/templates/croninfo.tpl.php b/modules/cron/templates/croninfo.tpl.php deleted file mode 100644 index dc1bf0583098993a14127e1214e9385f8e05afdc..0000000000000000000000000000000000000000 --- a/modules/cron/templates/croninfo.tpl.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php - -$this->data['header'] = $this->t('cron_header'); -$this->includeAtTemplateBase('includes/header.php'); - -$run_text = $this->t('run_text'); -?> - - <p><?php echo $this->t('cron_info') ?></p> - - <p><?php echo $this->t('cron_suggestion') ?></p> - <pre style="font-size: x-small; color: #444; padding: 1em; border: 1px solid #eee; margin: .4em "><code> -<?php -foreach ($this->data['urls'] as $url) { - echo "# ".$run_text. ' ['.$url['tag'].']'."\n"; - echo $url['int']." curl --silent \"".$url['exec_href']."\" > /dev/null 2>&1\n"; -} -?> - </code></pre> - - <br /> - <p><?php echo $this->t('cron_execution') ?></p> - <ul> -<?php -foreach ($this->data['urls'] as $url) { - echo ' <li><a href="'.$url['href'].'">'.$run_text.' ['.$url['tag'].']'.'</a></li>'; -} -?> - </ul> -</div> - -<?php -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/multiauth/templates/selectsource.tpl.php b/modules/multiauth/templates/selectsource.tpl.php deleted file mode 100644 index d40712998d5c636d1a593fda1defc51bb203c6c9..0000000000000000000000000000000000000000 --- a/modules/multiauth/templates/selectsource.tpl.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -$this->data['header'] = $this->t('{multiauth:multiauth:select_source_header}'); -$this->includeAtTemplateBase('includes/header.php'); -?> - -<h2><?php echo $this->t('{multiauth:multiauth:select_source_header}'); ?></h2> - -<p><?php echo $this->t('{multiauth:multiauth:select_source_text}'); ?></p> - -<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="get"> - <input type="hidden" name="AuthState" value="<?php echo htmlspecialchars($this->data['authstate']); ?>" /> - <ul> -<?php -foreach ($this->data['sources'] as $source) { - echo '<li class="'.htmlspecialchars($source['css_class']).' authsource">'; - if ($source['source'] === $this->data['preferred']) { - $autofocus = ' autofocus="autofocus"'; - } else { - $autofocus = ''; - } - $name = 'src-'.base64_encode($source['source']); - echo '<input type="submit" name="'.htmlspecialchars($name).'"'.$autofocus.' '. - 'id="button-'.htmlspecialchars($source['source']).'" '. - 'value="'.htmlspecialchars($source['text']).'" />'; - echo '</li>'; -} -?> - </ul> -</form> -<?php $this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/saml/templates/proxy/invalid_session.tpl.php b/modules/saml/templates/proxy/invalid_session.tpl.php deleted file mode 100644 index ede358580d665a0a8c88c8b340931d97d458debd..0000000000000000000000000000000000000000 --- a/modules/saml/templates/proxy/invalid_session.tpl.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -/** - * Template to ask a user whether to logout because of a reauthentication or not. - * - * @var \SimpleSAML\XHTML\Template $this - * - * @author Jaime PĂ©rez Crespo, UNINETT AS <jaime.perez@uninett.no> - * - * @package SimpleSAMLphp - */ - -if (!isset($this->data['head'])) { - $this->data['head'] = ''; -} -$this->includeAtTemplateBase('includes/header.php'); - -$translator = $this->getTranslator(); - -$params = [ - '%IDP%' => $this->data['idp_name'], - '%SP%' => $this->data['sp_name'], -]; -?> - <h2><?php echo $translator->t('{saml:proxy:invalid_idp}'); ?></h2> - <p><?php echo $translator->t('{saml:proxy:invalid_idp_description}', $params); ?></p> - <form method="post" action="?"> - <input type="hidden" name="AuthState" value="<?php echo htmlspecialchars($this->data['AuthState']); ?>" /> - <input type="submit" name="continue" value="<?php echo $translator->t('{general:yes_continue}'); ?>" /> - <input type="submit" name="cancel" value="<?php echo $translator->t('{general:no_cancel}'); ?>" /> - </form> -<?php -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/modules/saml/templates/sp/wrong_authncontextclassref.tpl.php b/modules/saml/templates/sp/wrong_authncontextclassref.tpl.php deleted file mode 100644 index 1872462c0fbcce863276584be9d2906a8b3f6f11..0000000000000000000000000000000000000000 --- a/modules/saml/templates/sp/wrong_authncontextclassref.tpl.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php - -$header = htmlspecialchars($this->t('{saml:wrong_authncontextclassref:header}')); -$description = htmlspecialchars($this->t('{saml:wrong_authncontextclassref:description}')); -$retry = htmlspecialchars($this->t('{saml:wrong_authncontextclassref:retry}')); - -$this->data['header'] = $header; -$this->includeAtTemplateBase('includes/header.php'); - -echo('<h2>' . $header . '</h2>'); -echo('<p>' . $description . '</p>'); - -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/psalm.xml b/psalm.xml index ff74be3ca12ca4b9b6dad2589ca037f8ae1eeeb2..1cdd446a50fd28975dc53ae6ef2d4a659e5d9f57 100644 --- a/psalm.xml +++ b/psalm.xml @@ -25,20 +25,7 @@ <!-- Ignore deprecated classes --> <ignoreFiles> - <directory name="lib/SimpleSAML/Bindings/Shib13" /> - <directory name="lib/SimpleSAML/XML/Shib13" /> - <directory name="tests/lib/SimpleSAML/XML/Shib13" /> - - <file name="lib/SimpleSAML/Auth/DefaultAuth.php" /> - <file name="lib/SimpleSAML/Auth/TimeLimitedToken.php" /> - <file name="lib/SimpleSAML/Utilities.php" /> - <file name="tests/lib/SimpleSAML/Auth/TimeLimitedTokenTest.php" /> - - <!-- Ignore deprecated PHP-templates - Remove for 2.0 --> - <file name="modules/**/templates/*.tpl.php" /> - <file name="modules/saml/templates/proxy/*.tpl.php" /> - <file name="modules/saml/templates/sp/*.tpl.php" /> - + <directory name="tests/Utils/Stubs" /> <directory name="vendor" /> </ignoreFiles> </projectFiles> diff --git a/templates/IFrameLogoutHandler.tpl.php b/templates/IFrameLogoutHandler.tpl.php deleted file mode 100644 index 2a38f4bb86c6283eced23ce54b3c45ae887629ce..0000000000000000000000000000000000000000 --- a/templates/IFrameLogoutHandler.tpl.php +++ /dev/null @@ -1,16 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <title>Logout response from <?= htmlspecialchars(var_export($this->data['assocId'])); ?></title> - <script> -<?php - if (array_key_exists('errorMsg', $this->data)) { - echo 'window.parent.logoutFailed("'.$this->data['spId'].'", "'.addslashes($this->data['errorMsg']).'");'; - } else { - echo 'window.parent.logoutCompleted("'.$this->data['spId'].'");'; - } -?> - </script> - </head> - <body></body> -</html> diff --git a/templates/attributequery.php b/templates/attributequery.php deleted file mode 100644 index 996d59edb3eefd80f1e5008de7d468289b25fe50..0000000000000000000000000000000000000000 --- a/templates/attributequery.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -$this->includeAtTemplateBase('includes/header.php'); - -$dataId = $this->data['dataId']; -assert(is_string($dataId)); - -$url = $this->data['url']; -assert(is_string($url)); - -$nameIdFormat = $this->data['nameIdFormat']; -assert(is_string($nameIdFormat)); - -$nameIdValue = $this->data['nameIdValue']; -assert(is_string($nameIdValue)); - -$nameIdQualifier = $this->data['nameIdQualifier']; -assert(is_string($nameIdQualifier)); - -$nameIdSPQualifier = $this->data['nameIdSPQualifier']; -assert(is_string($nameIdSPQualifier)); - -$attributes = $this->data['attributes']; -assert($attributes === null || is_array($attributes)); -?> - -<h2>Attribute query test</h2> - -<p>This is a test page for sending an AttributeQuery message.</p> - -<h3>Request</h3> - -<form action="?" method="post"> -<input name="dataId" type="hidden" value="<?php echo htmlspecialchars($dataId); ?>" /> -<p> -<label for="url">URL of attribute query endpoint:</label><br /> -<input name="url" type="text" size="80" value="<?php echo htmlspecialchars($url); ?>" /> -</p> -<p> -<label for="nameIdFormat">NameID format:</label><br /> -<input name="nameIdFormat" type="text" size="80" value="<?php echo htmlspecialchars($nameIdFormat); ?>" /> -</p> - -<p> -<label for="nameIdValue">NameID value:</label><br /> -<input name="nameIdValue" type="text" size="80" value="<?php echo htmlspecialchars($nameIdValue); ?>" /> -</p> - -<p> -<label for="nameIdQualifier">NameID NameQualifier (optional):</label><br /> -<input name="nameIdQualifier" type="text" size="80" value="<?php echo htmlspecialchars($nameIdQualifier); ?>" /> -</p> - -<p> -<label for="nameIdSPQualifier">NameID SPNameQualifier (optional):</label><br /> -<input name="nameIdSPQualifier" type="text" size="80" value="<?php echo htmlspecialchars($nameIdSPQualifier); ?>" /> -</p> - -<p> -<button type="submit" name="send" class="btn">Send query</button> -</p> -</form> - -<?php -if ($attributes !== null) { - echo '<h3>Attributes received</h3><dl>'; - foreach ($attributes as $name => $values) { - echo '<dt>'.htmlspecialchars($name).'</dt><dd><ul>'; - foreach ($values as $value) { - echo '<li>'.htmlspecialchars($value).'</li>'; - } - echo '</dd>'; - } - echo '</dl>'; -} -?> - -<?php $this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/error.php b/templates/error.php deleted file mode 100644 index 1acf83de34f47464709edd15b53fd7ad2ebd7280..0000000000000000000000000000000000000000 --- a/templates/error.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -$this->data['header'] = $this->t($this->data['dictTitle']); - -$this->data['head'] = <<<EOF -<meta name="robots" content="noindex, nofollow" /> -<meta name="googlebot" content="noarchive, nofollow" /> -EOF; - -$this->includeAtTemplateBase('includes/header.php'); -?> - <h2><?php echo $this->t($this->data['dictTitle']); ?></h2> -<?php -echo htmlspecialchars($this->t($this->data['dictDescr'], $this->data['parameters'])); - -// include optional information for error -if (isset($this->data['includeTemplate'])) { - $this->includeAtTemplateBase($this->data['includeTemplate']); -} -?> - <div class="trackidtext"> - <p><?php echo $this->t('report_trackid'); ?></p> - <div class="input-group" style="width: 1em;"> - <pre id="trackid" class="input-left"><?php echo $this->data['error']['trackId']; ?></pre> - <button data-clipboard-target="#trackid" id="btntrackid" class="btnaddonright"> - <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>" - alt="Copy to clipboard" /> - </button> - </div> - </div> -<?php -// print out exception only if the exception is available -if ($this->data['showerrors']) { -?> - <h2><?php echo $this->t('debuginfo_header'); ?></h2> - <p><?php echo $this->t('debuginfo_text'); ?></p> - - <div style="border: 1px solid #eee; padding: 1em; font-size: x-small"> - <p style="margin: 1px"><?php echo htmlspecialchars($this->data['error']['exceptionMsg']); ?></p> - <pre style="padding: 1em; font-family: monospace;"><?php - echo htmlspecialchars($this->data['error']['exceptionTrace']); ?></pre> - </div> -<?php -} - -/* Add error report submit section if we have a valid technical contact. 'errorreportaddress' will only be set if - * the technical contact email address has been set. - */ -if (isset($this->data['errorReportAddress'])) { -?> - <h2><?php echo $this->t('report_header'); ?></h2> - <form action="<?php echo htmlspecialchars($this->data['errorReportAddress']); ?>" method="post"> - <p><?php echo $this->t('report_text'); ?></p> - <p><?php echo $this->t('report_email'); ?> - <input type="email" size="25" name="email" value="<?php echo htmlspecialchars($this->data['email']); ?>" /> - </p> - <p> - <textarea class="metadatabox" name="text" rows="6" cols="50" style="width: 100%; padding: 0.5em;"><?php - echo $this->t('report_explain'); ?></textarea> - </p> - <p> - <input type="hidden" name="reportId" value="<?php echo $this->data['error']['reportId']; ?>"/> - <button type="submit" name="send" class="btn"><?php echo $this->t('report_submit'); ?></button> - </p> - </form> - <?php -} -?> - <h2 style="clear: both"><?php echo $this->t('howto_header'); ?></h2> - <p><?php echo $this->t('howto_text'); ?></p> - <script type="text/javascript"> - var clipboard = new ClipboardJS('#btntrackid'); - </script> -<?php -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/errorreport.php b/templates/errorreport.php deleted file mode 100644 index e1154fa8dd025634754573786dd85fdc528e63d3..0000000000000000000000000000000000000000 --- a/templates/errorreport.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - $this->data['header'] = $this->t('errorreport_header'); - $this->includeAtTemplateBase('includes/header.php'); -?> - -<h2><?php echo $this->t('errorreport_header'); ?></h2> -<p><?php echo $this->t('errorreport_text'); ?></p> -<?php - $this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/hostnames.php b/templates/hostnames.php deleted file mode 100644 index 2404638accde6cd145b732de6cf739f5033cb699..0000000000000000000000000000000000000000 --- a/templates/hostnames.php +++ /dev/null @@ -1,12 +0,0 @@ -<?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'); diff --git a/templates/includes/attributes.php b/templates/includes/attributes.php deleted file mode 100644 index 8894feb268a1004b9fce6fb51f4fbacee3279945..0000000000000000000000000000000000000000 --- a/templates/includes/attributes.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php -/** - * Functions used to present a table of attributes and their values. - */ - -function present_list($attr) -{ - if (is_array($attr) && count($attr) > 1) { - $str = '<ul>'; - foreach ($attr as $value) { - $str .= '<li>'.htmlspecialchars($attr).'</li>'; - } - $str .= '</ul>'; - return $str; - } else { - return htmlspecialchars($attr[0]); - } -} - -function present_assoc($attr) -{ - if (is_array($attr)) { - $str = '<dl>'; - foreach ($attr as $key => $value) { - $str .= "\n".'<dt>'.htmlspecialchars($key).'</dt><dd>'.present_list($value).'</dd>'; - } - $str .= '</dl>'; - return $str; - } else { - return htmlspecialchars($attr); - } -} - -function present_eptid(\SimpleSAML\Locale\Translate $t, \SAML2\XML\saml\NameID $nameID) -{ - $eptid = [ - 'NameID' => [$nameID->getValue()], - ]; - if ($nameID->getFormat() !== null) { - $eptid[$t->t('{status:subject_format}')] = [$nameID->getFormat()]; - } - if ($nameID->getNameQualifier() !== null) { - $eptid['NameQualifier'] = [$nameID->getNameQualifier()]; - } - if ($nameID->getSPNameQualifier() !== null) { - $eptid['SPNameQualifier'] = [$nameID->getSPNameQualifier()]; - } - if ($nameID->getSPProvidedID() !== null) { - $eptid['SPProvidedID'] = [$nameID->getSPProvidedID()]; - } - return '<td class="attrvalue">'.present_assoc($eptid); -} - -function present_attributes(\SimpleSAML\XHTML\Template $t, $attributes, $nameParent) -{ - $alternate = ['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; - $trans = $t->getTranslator(); - $name = $trans->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 .= '<code>'.htmlspecialchars($nameraw).'</code>'; - $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 .= '<code>'.htmlspecialchars($nameraw).'</code>'; - $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 - /** @var \DOMNodeList $value [0] */ - $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; - } - $str .= present_eptid($trans, new \SAML2\XML\saml\NameID($elem)); - break; // we only support one NameID here - } - $str .= '</td></tr>'; - } elseif (is_a($value[0], '\SAML2\XML\saml\NameID')) { - $str .= present_eptid($trans, $value[0]); - $str .= '</td></tr>'; - } else { - $str .= '<td class="attrvalue">'.htmlspecialchars($value[0]).'</td></tr>'; - } - } - } - $str .= "\n"; - } - $str .= '</table>'; - return $str; -} diff --git a/templates/includes/footer-embed.php b/templates/includes/footer-embed.php deleted file mode 100644 index 308b1d01b6ca1e7ab1b1fa896e6a8497bbcd1a37..0000000000000000000000000000000000000000 --- a/templates/includes/footer-embed.php +++ /dev/null @@ -1,2 +0,0 @@ -</body> -</html> diff --git a/templates/includes/footer.php b/templates/includes/footer.php deleted file mode 100644 index ed4d11e6ddd68241c23d69ed943be989a848d165..0000000000000000000000000000000000000000 --- a/templates/includes/footer.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -if (!empty($this->data['htmlinject']['htmlContentPost'])) { - foreach ($this->data['htmlinject']['htmlContentPost'] as $c) { - echo $c; - } -} -?> - </div><!-- #content --> - <div id="footer"> - <hr /> - <img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/ssplogo-fish-small.png" alt="Small fish logo" style="float: right" /> - Copyright © 2007-2020 <a href="https://uninett.no/">UNINETT AS</a> - - <br style="clear: right" /> - - </div><!-- #footer --> - </div><!-- #wrap --> - </body> -</html> diff --git a/templates/includes/header-embed.php b/templates/includes/header-embed.php deleted file mode 100644 index 5b83cbf7da33e845cbdbd65f7d462221fa811522..0000000000000000000000000000000000000000 --- a/templates/includes/header-embed.php +++ /dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> - <title> -<?php -if (array_key_exists('header', $this->data)) { - echo $this->data['header']; -} else { - echo 'SimpleSAMLphp'; -} -?> - </title> - <link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>resources/default.css" /> - <meta name="robots" content="noindex, nofollow" /> - -<?php -if (array_key_exists('head', $this->data)) { - echo '<!-- head -->'.$this->data['head'].'<!-- /head -->'; -} -?> - </head> - <body class="body-embed"> - diff --git a/templates/includes/header.php b/templates/includes/header.php deleted file mode 100644 index 208139d29630c3ccae09f0357656d6146d1e75ed..0000000000000000000000000000000000000000 --- a/templates/includes/header.php +++ /dev/null @@ -1,213 +0,0 @@ -<?php - -/** - * Support the htmlinject hook, which allows modules to change header, pre and post body on all pages. - */ -$this->data['htmlinject'] = [ - 'htmlContentPre' => [], - 'htmlContentPost' => [], - 'htmlContentHead' => [], -]; - -$jquery = []; -if (array_key_exists('jquery', $this->data)) { - $jquery = $this->data['jquery']; -} - -if (array_key_exists('pageid', $this->data)) { - $hookinfo = [ - 'pre' => &$this->data['htmlinject']['htmlContentPre'], - 'post' => &$this->data['htmlinject']['htmlContentPost'], - 'head' => &$this->data['htmlinject']['htmlContentHead'], - 'jquery' => &$jquery, - 'page' => $this->data['pageid'] - ]; - - SimpleSAML\Module::callHooks('htmlinject', $hookinfo); -} -// - o - o - o - o - o - o - o - o - o - o - o - o - - -/** - * Do not allow to frame SimpleSAMLphp pages from another location. - * This prevents clickjacking attacks in modern browsers. - * - * If you don't want any framing at all you can even change this to - * 'DENY', or comment it out if you actually want to allow foreign - * sites to put SimpleSAMLphp in a frame. The latter is however - * probably not a good security practice. - */ -header('X-Frame-Options: SAMEORIGIN'); - -?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta name="viewport" content="initial-scale=1.0" /> -<script type="text/javascript" src="/<?php echo $this->data['baseurlpath']; ?>resources/script.js"></script> -<title><?php -if (array_key_exists('header', $this->data)) { - echo $this->data['header']; -} else { - echo 'SimpleSAMLphp'; -} -?></title> - - <link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>resources/default.css" /> - <link rel="icon" type="image/icon" href="/<?php echo $this->data['baseurlpath']; ?>resources/icons/favicon.ico" /> - -<?php - -if (!empty($jquery)) { - $version = '1.8'; - if (array_key_exists('version', $jquery)) { - $version = $jquery['version']; - } - - if ($version == '1.8') { - if (isset($jquery['core']) && $jquery['core']) { - echo '<script type="text/javascript" src="/'.$this->data['baseurlpath'].'resources/jquery-1.8.js"></script>'."\n"; - } - - if (isset($jquery['ui']) && $jquery['ui']) { - echo '<script type="text/javascript" src="/'.$this->data['baseurlpath'].'resources/jquery-ui-1.8.js"></script>'."\n"; - } - - if (isset($jquery['css']) && $jquery['css']) { - echo '<link rel="stylesheet" media="screen" type="text/css" href="/'.$this->data['baseurlpath']. - 'resources/uitheme1.8/jquery-ui.css" />'."\n"; - } - } -} - -if (isset($this->data['clipboard.js'])) { - echo '<script type="text/javascript" src="/'.$this->data['baseurlpath'].'resources/clipboard.min.js"></script>'."\n"; -} - -if (!empty($this->data['htmlinject']['htmlContentHead'])) { - foreach ($this->data['htmlinject']['htmlContentHead'] as $c) { - echo $c; - } -} - -if ($this->isLanguageRTL()) { - ?> - <link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>resources/default-rtl.css" /> -<?php -} -?> - <meta name="robots" content="noindex, nofollow" /> - -<?php -if (array_key_exists('head', $this->data)) { - echo '<!-- head -->'.$this->data['head'].'<!-- /head -->'; -} -?> -</head> -<?php -$onLoad = ''; -if (array_key_exists('autofocus', $this->data)) { - $onLoad .= ' onload="SimpleSAML_focus(\''.$this->data['autofocus'].'\');"'; -} -?> -<body<?php echo $onLoad; ?>> - -<div id="wrap"> - - <div id="header"> - <h1><a href="/<?php echo $this->data['baseurlpath']; ?>"><?php - echo(isset($this->data['header']) ? $this->data['header'] : 'SimpleSAMLphp'); - ?></a></h1> - </div> - - - <?php - - $includeLanguageBar = true; - if (!empty($_POST)) { - $includeLanguageBar = false; - } - if (isset($this->data['hideLanguageBar']) && $this->data['hideLanguageBar'] === true) { - $includeLanguageBar = false; - } - - if ($includeLanguageBar) { - $languages = $this->getLanguageList(); - ksort($languages); - if (count($languages) > 1) { - echo '<div id="languagebar">'; - $langnames = [ - 'no' => 'BokmĂĄl', // Norwegian BokmĂĄl - 'nn' => 'Nynorsk', // Norwegian Nynorsk - 'se' => 'Sámegiella', // Northern Sami - 'da' => 'Dansk', // Danish - 'en' => 'English', - 'de' => 'Deutsch', // German - 'sv' => 'Svenska', // Swedish - 'fi' => 'Suomeksi', // Finnish - 'es' => 'Español', // Spanish - 'ca' => 'CatalĂ ', // Catalan - 'fr' => 'Français', // French - 'it' => 'Italiano', // Italian - 'nl' => 'Nederlands', // Dutch - 'lb' => 'LĂ«tzebuergesch', // Luxembourgish - 'cs' => 'ÄŚeština', // Czech - 'sl' => 'Slovenščina', // Slovensk - 'lt' => 'LietuviĹł kalba', // Lithuanian - 'hr' => 'Hrvatski', // Croatian - 'hu' => 'Magyar', // Hungarian - 'pl' => 'JÄ™zyk polski', // Polish - 'pt' => 'PortuguĂŞs', // Portuguese - 'pt-br' => 'PortuguĂŞs brasileiro', // Portuguese - 'ru' => 'Ń€ŃŃŃкий язык', // Russian - 'et' => 'eesti keel', // Estonian - 'tr' => 'TĂĽrkçe', // Turkish - 'el' => 'ελληνικά', // Greek - 'ja' => '日本語', // Japanese - 'zh' => '简体ä¸ć–‡', // Chinese (simplified) - 'zh-tw' => 'çąé«”ä¸ć–‡', // Chinese (traditional) - 'ar' => 'العربية', // Arabic - 'he' => 'עִבְרִית', // Hebrew - 'id' => 'Bahasa Indonesia', // Indonesian - 'sr' => 'Srpski', // Serbian - 'lv' => 'Latviešu', // Latvian - 'ro' => 'RomâneČ™te', // Romanian - 'eu' => 'Euskara', // Basque - 'af' => 'Afrikaans', // Afrikaans - 'zu' => 'IsiZulu', // Zulu - 'xh' => 'isiXhosa', // Xhosa - 'st' => 'Sesotho', // Sesotho - ]; - - $textarray = []; - foreach ($languages as $lang => $current) { - $lang = strtolower($lang); - if ($current) { - $textarray[] = $langnames[$lang]; - } else { - $textarray[] = '<a href="'.htmlspecialchars( - \SimpleSAML\Utils\HTTP::addURLParameters( - \SimpleSAML\Utils\HTTP::getSelfURL(), - [$this->getTranslator()->getLanguage()->getLanguageParameterName() => $lang] - ) - ).'">'.$langnames[$lang].'</a>'; - } - } - echo join(' | ', $textarray); - echo '</div>'; - } - } - - ?> - <div id="content"> - -<?php - -if (!empty($this->data['htmlinject']['htmlContentPre'])) { - foreach ($this->data['htmlinject']['htmlContentPre'] as $c) { - echo $c; - } -} -$config = \SimpleSAML\Configuration::getInstance(); -if(! $config->getBoolean('production', true)) { - echo '<div class="caution">' . $this->t('{preprodwarning:warning:warning}'). '</div>'; -} diff --git a/templates/login-ldapmulti.php b/templates/login-ldapmulti.php deleted file mode 100644 index 64159298d9faca906aeda4427657a1cd25eb8290..0000000000000000000000000000000000000000 --- a/templates/login-ldapmulti.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php - $this->includeAtTemplateBase('includes/header.php'); -?> - -<?php -if (isset($this->data['error'])) { -?> - <div style="border-left: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8; background: #f5f5f5"> - <img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-error.48x48.png" class="float-l erroricon" style="margin: 15px" alt="" /> - <h2><?php echo $this->t('error_header'); ?></h2> - - <p class="logintext"><?php echo htmlspecialchars($this->data['error']); ?> </p> - </div> -<?php -} -?> - <h2 style="break: both"><?php echo $this->t('user_pass_header'); ?></h2> - - <p><?php echo $this->t('user_pass_text'); ?></p> - - <form action="?" method="post" name="f"> - - <table> - <tr> - <td rowspan="3"><img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-authentication.48x48.png" id="loginicon" alt="" /></td> - <td style="padding: .3em;"><?php echo $this->t('username'); ?></td> - <td><input type="text" tabindex="1" name="username" autocomplete="username" -<?php -if (isset($this->data['username'])) { - echo 'value="'.htmlspecialchars($this->data['username']).'"'; -} -?> - /></td> - - <td style="padding: .4em;" rowspan="3"> - <button type="submit" tabindex="3" id="regularsubmit" class="btn"><?php echo $this->t('login_button'); ?></button> - <input type="hidden" name="RelayState" value="<?php echo htmlspecialchars($this->data['relaystate']); ?>" /> - </td> - </tr> - <tr> - <td style="padding: .3em;"><?php echo $this->t('organization'); ?></td> - <td><select name="org" tabindex="2"> -<?php -foreach ($this->data['ldapconfig'] as $key => $entry) { - echo '<option '.($key == $this->data['org'] ? 'selected="selected" ' : ''). - 'value="'.htmlspecialchars($key).'">'.htmlspecialchars($entry['description']).'</option>'; -} -?> - </select></td> - </tr> - - <tr> - <td style="padding: .3em;"><?php echo $this->t('password'); ?></td> - <td><input type="password" tabindex="2" name="password" autocomplete="current-password" /></td> - </tr> - <tr><td></td><td> - <button type="submit" tabindex="5" id="mobilesubmit" class="btn"><?php echo $this->t('login_button'); ?></button> - </td></tr> - </table> - </form> - <h2 class="logintext"><?php echo $this->t('help_header'); ?>.</h2> - <p class="logintext"><?php echo $this->t('help_text'); ?>!</p> -<?php - $this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/login.php b/templates/login.php deleted file mode 100644 index 04502944ddf6e32667fbb86b7bcaba7163f2c330..0000000000000000000000000000000000000000 --- a/templates/login.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php - if (!isset($this->data['autofocus'])) { - $this->data['autofocus'] = 'username'; - } - $this->includeAtTemplateBase('includes/header.php'); - if (isset($this->data['error'])) { -?> - <div style="border-left: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8; background: #f5f5f5"> - <img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-error.48x48.png" class="float-l erroricon" style="margin: 15px" alt="" /> - <h2><?php echo $this->t('error_header'); ?></h2> - - <p><?php echo $this->t($this->data['error']); ?> </p> - </div> -<?php -} -?> - <h2 style="break: both"><?php echo $this->t('user_pass_header'); ?></h2> - <p class="logintext"><?php echo $this->t('user_pass_text'); ?></p> - - <form action="?" method="post" name="f"> - - <table> - <tr> - <td rowspan="2"><img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-authentication.48x48.png" id="loginicon" alt="" /></td> - <td style="padding: .3em;"><?php echo $this->t('username'); ?></td> - <td> -<?php -if (array_key_exists('admin', $this->data)) { - echo '<strong style="font-size: medium">Administrator</strong>'; -} else { - echo '<input type="text" id="username" tabindex="1" name="username" autocomplete="username" '; - if (isset($this->data['username'])) { - echo 'value="'.htmlspecialchars($this->data['username']).'"'; - } - echo '/>'; -} -?> - </td> - <td style="padding: .4em;" rowspan="2"> - <button type="submit" class="regularsubmit" tabindex="3" class="btn"><?php echo $this->t('login_button'); ?></button> - <input type="hidden" name="RelayState" value="<?php echo htmlspecialchars($this->data['relaystate']); ?>" /> - </td> - </tr> - <tr> - <td style="padding: .3em;"><?php echo $this->t('password'); ?></td> - <td><input id="password" type="password" tabindex="2" name="password" autocomplete="current-password" /></td> - </tr> - <tr> - <td></td> - <td></td> - <td> - <button type="submit" tabindex="5" id="mobilesubmit" class="btn"><?php echo $this->t('login_button'); ?></button> - </td> - </tr> - </table> - </form> - <h2 class="logintext"><?php echo $this->t('help_header'); ?></h2> - <p class="logintext"><?php echo $this->t('help_text'); ?></p> -<?php - $this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/logout.php b/templates/logout.php deleted file mode 100644 index 92ecd7ae4f7609c0e594eb4b4ea442e8d33bc1e1..0000000000000000000000000000000000000000 --- a/templates/logout.php +++ /dev/null @@ -1,16 +0,0 @@ -<?php - -$this->data['header'] = $this->t('{logout:title}'); - -$this->includeAtTemplateBase('includes/header.php'); - -echo '<h2>'.$this->data['header'].'</h2>'; -echo '<p>'.$this->t('{logout:logged_out_text}').'</p>'; - -if ($this->getTranslator()->getTag($this->data['text']) !== null) { - $this->data['text'] = $this->t($this->data['text']); -} -echo '<p>[ <a href="'.htmlspecialchars($this->data['link']).'">'. - htmlspecialchars($this->data['text']).'</a> ]</p>'; - -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/metadata-converter.php b/templates/metadata-converter.php deleted file mode 100644 index bc46d3a949d8d3279f5539788b72889341810dd4..0000000000000000000000000000000000000000 --- a/templates/metadata-converter.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -$this->data['header'] = $this->t('metaconv_title'); -$this->includeAtTemplateBase('includes/header.php'); -?> - <h2><?php echo $this->t('metaconv_title'); ?></h2> - <form action="?" method="post" enctype="multipart/form-data"> - <p><?php echo($this->t('{admin:metaconv_xmlmetadata}')); ?></p> - <p> - <textarea rows="20" style="width: 100%" - name="xmldata"><?php echo htmlspecialchars($this->data['xmldata']); ?></textarea> - </p> - <p> - <?php echo $this->t('metaconv_selectfile'); ?> - <input type="file" name="xmlfile" /></p> - <p> - <button type="submit" class="btn"><?php echo $this->t('metaconv_parse'); ?></button> - </p> - </form> -<?php -$output = $this->data['output']; - -if (!empty($output)) { -?> - <h2><?php echo $this->t('metaconv_converted'); ?></h2> -<?php - $i = 1; - foreach ($output as $type => $text) { - if ($text === '') { - continue; - } -?> - <h3><?php echo htmlspecialchars($type); ?></h3> - <div class="metadatabox"> - <button data-clipboard-target="#metadata<?php echo $i; ?>" id="btn<?php echo $i; ?>" - class="btn topright" style="margin-right: 0.5em;"> - <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>" - alt="Copy to clipboard" /> - </button> - <pre id="metadata<?php echo $i; ?>"><?php - echo htmlspecialchars($text); - ?></pre> - </div> -<?php - $i++; - } -?> - <script type="text/javascript"> -<?php - for ($j = 1; $j <= $i; $j++) { -?> - var clipboard<?php echo $j; ?> = new ClipboardJS('#btn<?php echo $j; ?>'); -<?php - } -?> - </script> -<?php -} -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/metadata.tpl.php b/templates/metadata.tpl.php deleted file mode 100644 index c851afea27b49696fd6fecfd714ffddab3720402..0000000000000000000000000000000000000000 --- a/templates/metadata.tpl.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -$this->data['header'] = $this->t($this->data['headerString']); -$this->includeAtTemplateBase('includes/header.php'); ?> - <h2><?php echo $this->data['header']; ?></h2> - <p><?php echo $this->t('metadata_intro'); ?></p> -<?php if (isset($this->data['metaurl'])) { ?> - <p><?php echo($this->t('metadata_xmlurl', ['%METAURL%' => htmlspecialchars($this->data['metaurl'])])); ?></p> - <div class="input-group"> - <pre id="metadataurl" class="input-left"><?php echo htmlspecialchars($this->data['metaurl']); ?></pre> - <button data-clipboard-target="#metadataurl" id="btnurl" class="btnaddonright"> - <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>" - alt="Copy to clipboard" /> - </button> - </div> -<?php } ?> - <h2><?php echo($this->t('metadata_metadata')); ?></h2> - <p><?php echo($this->t('metadata_xmlformat')); ?></p> - <div class="metadatabox"> - <button data-clipboard-target="#xmlmetadata" id="btnxml" class="btn topright" style="margin-right: 0.5em;"> - <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>" - alt="Copy to clipboard" /> - </button> - <pre id="xmlmetadata"><?php echo $this->data['metadata']; ?></pre> - </div> - - <p><?php echo($this->t('metadata_simplesamlformat')); ?></p> - <div class="metadatabox"> - <button data-clipboard-target="#phpmetadata" id="btnphp" class="btn topright" style="margin-right: 0.5em;"> - <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>" - alt="Copy to clipboard" /> - </button> - <pre id="phpmetadata"><?php echo $this->data['metadataflat']; ?></pre> - </div> - <script type="text/javascript"> - var clipboard1 = new ClipboardJS('#btnurl'), - clipboard2 = new ClipboardJS('#btnxml'), - clipboard3 = new ClipboardJS('#btnphp'); - </script> -<?php -if (array_key_exists('available_certs', $this->data)) { ?> - <h2><?php echo($this->t('metadata_cert')); ?></h2> - <p><?php echo($this->t('metadata_cert_intro')); ?></p> - <ul> -<?php - foreach (array_keys($this->data['available_certs']) as $certName) { - echo '<li><a href="'. - htmlspecialchars(SimpleSAML\Module::getModuleURL('saml/idp/certs.php').'/'.$certName).'">'.$certName. - '</a>'; - - if ($this->data['available_certs'][$certName]['certFingerprint'][0] === - 'afe71c28ef740bc87425be13a2263d37971da1f9') { - echo ' <img style="display: inline;" src="/'.$this->data['baseurlpath']. - 'resources/icons/silk/exclamation.png" alt="default certificate" />'. - 'This is the default certificate. Generate a new certificate if this is a production system.'; - } - echo '</li>'; - } ?> - </ul> -<?php -} -$this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/post.php b/templates/post.php deleted file mode 100644 index e8aeaa12d2451bd390e8e8cd4e36e321b9fcadac..0000000000000000000000000000000000000000 --- a/templates/post.php +++ /dev/null @@ -1,75 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <title>POST data</title> - <script src="/<?php echo $this->data['baseurlpath']; ?>resources/post.js"></script> - <link type="text/css" rel="stylesheet" href="/<?php echo $this->data['baseurlpath']; ?>resources/post.css" /> -</head> -<body> - - <noscript> - <p><strong>Note:</strong> - Since your browser does not support JavaScript, - you must press the button below once to proceed.</p> - </noscript> - - <form method="post" - action="<?php echo htmlspecialchars($this->data['destination']); ?>"> - <!-- Need to add this element and call click method, because calling - submit() on the form causes failed submission if the form has another - element with name or id of submit. - See: https://developer.mozilla.org/en/DOM/form.submit#Specification --> - <input type="submit" id="postLoginSubmitButton"/> -<?php -if (array_key_exists('post', $this->data)) { - $post = $this->data['post']; -} else { - // For backwards compatibility - assert(array_key_exists('response', $this->data)); - assert(array_key_exists('RelayStateName', $this->data)); - assert(array_key_exists('RelayState', $this->data)); - $post = [ - 'SAMLResponse' => $this->data['response'], - $this->data['RelayStateName'] => $this->data['RelayState'], - ]; -} - -/** - * Write out one or more INPUT elements for the given name-value pair. - * - * If the value is a string, this function will write a single INPUT element. - * If the value is an array, it will write multiple INPUT elements to - * recreate the array. - * - * @param string $name The name of the element. - * @param string|array $value The value of the element. - */ -function printItem($name, $value) -{ - assert(is_string($name)); - assert(is_string($value) || is_array($value)); - if (is_string($value)) { - echo '<input type="hidden" name="'. - htmlspecialchars($name).'" value="'. - htmlspecialchars($value).'" />'; - return; - } - // This is an array... - foreach ($value as $index => $item) { - printItem($name.'['.$index.']', $item); - } -} - -foreach ($post as $name => $value) { - printItem($name, $value); -} -?> - <noscript> - <button type="submit" class="btn">Submit</button> - </noscript> - </form> - -</body> -</html> diff --git a/templates/selectidp-dropdown.php b/templates/selectidp-dropdown.php deleted file mode 100644 index 4fa03d6ff05a5c07a3d98e2d961a026f894283f7..0000000000000000000000000000000000000000 --- a/templates/selectidp-dropdown.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php - -if (!array_key_exists('header', $this->data)) { - $this->data['header'] = 'selectidp'; -} -$this->data['header'] = $this->t($this->data['header']); -$this->data['autofocus'] = 'dropdownlist'; -$this->includeAtTemplateBase('includes/header.php'); - -$translator = $this->getTranslator(); -foreach ($this->data['idplist'] as $idpentry) { - if (!empty($idpentry['name'])) { - $translator->includeInlineTranslation( - 'idpname_'.$idpentry['entityid'], - $idpentry['name'] - ); - } elseif (!empty($idpentry['OrganizationDisplayName'])) { - $translator->includeInlineTranslation( - 'idpname_'.$idpentry['entityid'], - $idpentry['OrganizationDisplayName'] - ); - } - if (!empty($idpentry['description'])) { - $translator->includeInlineTranslation('idpdesc_'.$idpentry['entityid'], $idpentry['description']); - } -} -?> - <h2><?php echo $this->data['header']; ?></h2> - <p><?php echo $this->t('selectidp_full'); ?></p> - <form method="get" action="<?php echo $this->data['urlpattern']; ?>"> - <input type="hidden" name="entityID" value="<?php echo htmlspecialchars($this->data['entityID']); ?>"/> - <input type="hidden" name="return" value="<?php echo htmlspecialchars($this->data['return']); ?>"/> - <input type="hidden" name="returnIDParam" - value="<?php echo htmlspecialchars($this->data['returnIDParam']); ?>"/> - <select id="dropdownlist" name="idpentityid"> - <?php - usort($this->data['idplist'], function($idpentry1, $idpentry2) { - return strcasecmp( - $this->t('idpname_'.$idpentry1['entityid']), - $this->t('idpname_'.$idpentry2['entityid']) - ); - }); - - foreach ($this->data['idplist'] as $idpentry) { - echo '<option value="'.htmlspecialchars($idpentry['entityid']).'"'; - if (isset($this->data['preferredidp']) && $idpentry['entityid'] == $this->data['preferredidp']) { - echo ' selected="selected"'; - } - echo '>'.htmlspecialchars($this->t('idpname_'.$idpentry['entityid'])).'</option>'; - } - ?> - </select> - <button class="btn" type="submit"><?php echo $this->t('select'); ?></button> - <?php - if ($this->data['rememberenabled']) { - echo('<br/><input type="checkbox" name="remember" value="1" />'.$this->t('remember')); - } - ?> - </form> -<?php $this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/selectidp-links.php b/templates/selectidp-links.php deleted file mode 100644 index 6c4eabad3c5fbccb57f33671b5c0ce8b2e693fce..0000000000000000000000000000000000000000 --- a/templates/selectidp-links.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -if (!array_key_exists('header', $this->data)) { - $this->data['header'] = 'selectidp'; -} -$this->data['header'] = $this->t($this->data['header']); -$this->data['autofocus'] = 'preferredidp'; -$this->includeAtTemplateBase('includes/header.php'); -foreach ($this->data['idplist'] as $idpentry) { - if (isset($idpentry['name'])) { - $this->getTranslator()->includeInlineTranslation('idpname_'.$idpentry['entityid'], $idpentry['name']); - } elseif (isset($idpentry['OrganizationDisplayName'])) { - $this->getTranslator()->includeInlineTranslation( - 'idpname_'.$idpentry['entityid'], - $idpentry['OrganizationDisplayName'] - ); - } - if (isset($idpentry['description'])) { - $this->getTranslator()->includeInlineTranslation('idpdesc_'.$idpentry['entityid'], $idpentry['description']); - } -} -?> - <h2><?php echo $this->data['header']; ?></h2> - <form method="get" action="<?php echo $this->data['urlpattern']; ?>"> - <input type="hidden" name="entityID" value="<?php echo htmlspecialchars($this->data['entityID']); ?>"/> - <input type="hidden" name="return" value="<?php echo htmlspecialchars($this->data['return']); ?>"/> - <input type="hidden" name="returnIDParam" - value="<?php echo htmlspecialchars($this->data['returnIDParam']); ?>"/> - <p><?php - echo $this->t('selectidp_full'); - if ($this->data['rememberenabled']) { - echo '<br /><input type="checkbox" name="remember" value="1" title="'.$this->t('remember').'" />'. - $this->t('remember'); - } - ?></p> -<?php - usort($this->data['idplist'], function($idpentry1, $idpentry2) { - return strcasecmp( - $this->t('idpname_'.$idpentry1['entityid']), - $this->t('idpname_'.$idpentry2['entityid']) - ); - }); - - if (!empty($this->data['preferredidp'])) { - foreach ($this->data['idplist'] as $idpentry) { - if ($idpentry['entityid'] != $this->data['preferredidp']) { - continue; - } - echo '<div class="preferredidp">'; - echo ' <img src="/'.$this->data['baseurlpath']. - 'resources/icons/experience/gtk-about.64x64.png" class="float-r" alt="'. - $this->t('icon_prefered_idp').'" />'; - - if (array_key_exists('icon', $idpentry) && $idpentry['icon'] !== null) { - $iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($idpentry['icon']); - echo '<img class="float-l" style="margin: 1em; padding: 3px; border: 1px solid #999" src="'. - htmlspecialchars($iconUrl).'" />'; - } - echo "\n".' <h3 style="margin-top: 8px">'. - htmlspecialchars($this->t('idpname_'.$idpentry['entityid'])).'</h3>'; - - if (!empty($idpentry['description'])) { - echo ' <p>'.htmlspecialchars($this->t('idpdesc_'.$idpentry['entityid'])).'<br />'; - } - echo('<button id="preferredidp" type="submit" class="btn" name="idp_'. - htmlspecialchars($idpentry['entityid']).'">'. - $this->t('select').'</button></p>'); - echo '</div>'; - } - } - - foreach ($this->data['idplist'] as $idpentry) { - if ($idpentry['entityid'] != $this->data['preferredidp']) { - if (array_key_exists('icon', $idpentry) && $idpentry['icon'] !== null) { - $iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($idpentry['icon']); - echo '<img class="float-l" style="clear: both; margin: 1em; padding: 3px; border: 1px solid #999"'. - ' src="'.htmlspecialchars($iconUrl).'" />'; - } - echo "\n".' <h3 style="margin-top: 8px">'.htmlspecialchars($this->t('idpname_'.$idpentry['entityid'])); - echo '</h3>'; - - if (!empty($idpentry['description'])) { - echo ' <p>'.htmlspecialchars($this->t('idpdesc_'.$idpentry['entityid'])).'<br />'; - } - echo '<button type="submit" class="btn" name="idp_'.htmlspecialchars($idpentry['entityid']).'">'. - $this->t('select').'</button></p>'; - } - } -?> - </form> -<?php $this->includeAtTemplateBase('includes/footer.php'); diff --git a/templates/status.php b/templates/status.php deleted file mode 100644 index be24c273d2207dd435eef93199e0197bff428dd4..0000000000000000000000000000000000000000 --- a/templates/status.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -if (array_key_exists('header', $this->data)) { - if ($this->getTranslator()->getTag($this->data['header']) !== null) { - $this->data['header'] = $this->t($this->data['header']); - } -} - -$this->includeAtTemplateBase('includes/header.php'); -$this->includeAtTemplateBase('includes/attributes.php'); -?> - <h2><?php if (isset($this->data['header'])) { - echo $this->data['header']; - } else { - echo $this->t('{status:some_error_occurred}'); - } ?></h2> - - <p><?php echo $this->t('{status:intro}'); ?></p> - -<?php -if (isset($this->data['remaining'])) { - echo '<p>'.$this->t('{status:validfor}', ['%SECONDS%' => $this->data['remaining']]).'</p>'; -} - -if (isset($this->data['sessionsize'])) { - echo '<p>'.$this->t('{status:sessionsize}', ['%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) { - /** @var \SAML2\XML\saml\NameID $nameid */ - echo "<h2>".$this->t('{status:subject_header}')."</h2>"; - if ($nameid->getValue() === null) { - $list = ["NameID" => [$this->t('{status:subject_notset}')]]; - echo "<p>NameID: <span class=\"notset\">".$this->t('{status:subject_notset}')."</span></p>"; - } else { - $list = [ - "NameId" => [$nameid->getValue()], - ]; - if ($nameid->getFormat() !== null) { - $list[$this->t('{status:subject_format}')] = [$nameid->getFormat()]; - } - if ($nameid->getNameQualifier() !== null) { - $list['NameQualifier'] = [$nameid->getNameQualifier()]; - } - if ($nameid->getSPNameQualifier() !== null) { - $list['SPNameQualifier'] = [$nameid->getSPNameQualifier()]; - } - if ($nameid->getSPProvidedID() !== null) { - $list['SPProvidedID'] = [$nameid->getSPProvidedID()]; - } - } - echo present_attributes($this, $list, ''); -} - -$authData = $this->data['authData']; -if (!empty($authData)) { - echo "<h2>".$this->t('{status:authData_header}')."</h2>"; - echo '<details><summary>'.$this->t('{status:authData_summary}').'</summary>'; - echo '<pre>'.htmlspecialchars(json_encode($this->data['authData'], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)).'</pre>'; - echo '</details>'; -} -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');