Skip to content
Snippets Groups Projects
Commit 99622ed3 authored by Thijs Kinkhorst's avatar Thijs Kinkhorst
Browse files

Remove now obsolete portal module

parent 88d27781
No related branches found
No related tags found
No related merge requests found
<?php
/*
* Configuration for the module portal.
*/
$config = [
'pagesets' => [
['frontpage_welcome', 'frontpage_config', 'frontpage_auth', 'frontpage_federation'],
['sanitycheck', 'statistics'],
],
];
<?php
use Webmozart\Assert\Assert;
/**
* Hook to inject HTML content into all pages...
*
* @param array &$hookinfo hookinfo
* @return void
*/
function portal_hook_htmlinject(array &$hookinfo)
{
Assert::keyExists($hookinfo, 'pre');
Assert::keyExists($hookinfo, 'post');
Assert::keyExists($hookinfo, 'page');
$links = ['links' => []];
\SimpleSAML\Module::callHooks('frontpage', $links);
Assert::isArray($links);
$portalConfig = \SimpleSAML\Configuration::getOptionalConfig('module_portal.php');
$allLinks = [];
foreach ($links as $ls) {
$allLinks = array_merge($allLinks, $ls);
}
$pagesets = $portalConfig->getValue('pagesets', [
['frontpage_welcome', 'frontpage_config', 'frontpage_auth', 'frontpage_federation'],
]);
\SimpleSAML\Module::callHooks('portalextras', $pagesets);
$portal = new \SimpleSAML\Module\portal\Portal($allLinks, $pagesets);
if (!$portal->isPortalized($hookinfo['page'])) {
return;
}
// Include jquery UI CSS files in header
$hookinfo['jquery']['css'] = true;
// Header
$hookinfo['pre'][] = '<div id="portalmenu" class="ui-tabs ui-widget ui-widget-content ui-corner-all">' .
$portal->getMenu($hookinfo['page']) .
'<div id="portalcontent" class="ui-tabs-panel ui-widget-content ui-corner-bottom">';
// Footer
$hookinfo['post'][] = '</div></div>';
}
<?php
declare(strict_types=1);
namespace SimpleSAML\Module\portal;
use SimpleSAML\Configuration;
use SimpleSAML\Module;
use SimpleSAML\Locale\Translate;
class Portal
{
/** @var array */
private $pages;
/** @var array|null */
private $config;
/**
* @param array $pages
* @param array|null $config
*/
public function __construct(array $pages, array $config = null)
{
$this->pages = $pages;
$this->config = $config;
}
/**
* @param string $thispage
* @return array|null
*/
public function getTabset(string $thispage): ?array
{
if (!isset($this->config)) {
return null;
}
foreach ($this->config as $set) {
if (in_array($thispage, $set, true)) {
return $set;
}
}
return null;
}
/**
* @param string $thispage
* @return bool
*/
public function isPortalized(string $thispage): bool
{
if (!isset($this->config)) {
return false;
}
foreach ($this->config as $set) {
if (in_array($thispage, $set, true)) {
return true;
}
}
return false;
}
/**
* @param \SimpleSAML\Locale\Translate $translator
* @param string $thispage
* @return string
*/
public function getLoginInfo(Translate $translator, string $thispage): string
{
$info = ['info' => '', 'translator' => $translator, 'thispage' => $thispage];
Module::callHooks('portalLoginInfo', $info);
return $info['info'];
}
/**
* @param string $thispage
* @return string
*/
public function getMenu(string $thispage): string
{
$config = Configuration::getInstance();
$t = new Translate($config);
$tabset = $this->getTabset($thispage);
$logininfo = $this->getLoginInfo($t, $thispage);
$classes = 'tabset_tabs ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all';
$text = '<ul class="' . $classes . '">';
foreach ($this->pages as $pageid => $page) {
if (isset($tabset) && !in_array($pageid, $tabset, true)) {
continue;
}
$name = 'uknown';
if (isset($page['text'])) {
$name = $page['text'];
}
if (isset($page['shorttext'])) {
$name = $page['shorttext'];
}
/** @var string $name */
$name = $t->t($name);
if (!isset($page['href'])) {
$text .= '<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#">' .
$name . '</a></li>';
} elseif ($pageid === $thispage) {
$text .= '<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#">' .
$name . '</a></li>';
} else {
$text .= '<li class="ui-state-default ui-corner-top"><a href="' . $page['href'] . '">' .
$name . '</a></li>';
}
}
$text .= '</ul>';
if (!empty($logininfo)) {
$text .= '<p class="logininfo" style="text-align: right; margin: 0px">' . $logininfo . '</p>';
}
return $text;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment