diff --git a/modules/admin/lib/Controller/Sandbox.php b/modules/admin/lib/Controller/Sandbox.php new file mode 100644 index 0000000000000000000000000000000000000000..fc34d4cd839d4f24f49f04e187da61f0d5a6093a --- /dev/null +++ b/modules/admin/lib/Controller/Sandbox.php @@ -0,0 +1,57 @@ +<?php + +declare(strict_types=1); + +namespace SimpleSAML\Module\admin\Controller; + +use SimpleSAML\Configuration; +use SimpleSAML\Session; +use SimpleSAML\XHTML\Template; + +/** + * Controller class for the admin module. + * + * This class serves the 'sandbox' views available in the module. + * + * @package SimpleSAML\Module\admin + */ +class Sandbox +{ + /** @var \SimpleSAML\Configuration */ + protected Configuration $config; + + /** @var \SimpleSAML\Session */ + protected Session $session; + + + /** + * Sandbox constructor. + * + * @param \SimpleSAML\Configuration $config The configuration to use. + * @param \SimpleSAML\Session $session The current user session. + */ + public function __construct(Configuration $config, Session $session) + { + $this->config = $config; + $this->session = $session; + } + + + /** + * Display the sandbox page + * + * @return \SimpleSAML\XHTML\Template + */ + public function main(): Template + { + $template = new Template($this->config, 'sandbox.twig'); + $template->data['pagetitle'] = 'Sandbox'; + $template->data['sometext'] = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.' . + ' Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit.' . + ' Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. ' . + 'Nam tincidunt congue enim, ut porta lorem lacinia consectetur.'; + $template->data['remaining'] = $this->session->getAuthData('admin', 'Expire') - time(); + $template->data['logout'] = null; + return $template; + } +} diff --git a/modules/admin/lib/Controller/Test.php b/modules/admin/lib/Controller/Test.php index 334d027d9a426825fb201867fa9e09187e57aeab..36f3c3714bf59c47c09ea24e3218428b55675ed0 100644 --- a/modules/admin/lib/Controller/Test.php +++ b/modules/admin/lib/Controller/Test.php @@ -55,7 +55,7 @@ class Test /** - * ConfigController constructor. + * TestController constructor. * * @param \SimpleSAML\Configuration $config The configuration to use. * @param \SimpleSAML\Session $session The current user session. @@ -109,7 +109,7 @@ class Test * @param string|null $as * @return \SimpleSAML\XHTML\Template|\SimpleSAML\HTTP\RunnableResponse */ - public function main(Request $request, string $as = null) + public function main(Request $request, string $as = null): Response { $this->authUtils->requireAdmin(); if (is_null($as)) { diff --git a/modules/admin/routing/routes/routes.yml b/modules/admin/routing/routes/routes.yml index 3cff6ed4c5fb4ec82a4e83a7d3c5df5bae7812fa..9fc4902bcd007624f3dcb45ab2e2603284d6e13b 100644 --- a/modules/admin/routing/routes/routes.yml +++ b/modules/admin/routing/routes/routes.yml @@ -7,6 +7,9 @@ admin-diagnostics: admin-phpinfo: path: /phpinfo defaults: { _controller: 'SimpleSAML\Module\admin\Controller\Config::phpinfo' } +admin-sandbox: + path: /sandbox + defaults: { _controller: 'SimpleSAML\Module\admin\Controller\Sandbox::main' } admin-test: path: /test/{as} defaults: { _controller: 'SimpleSAML\Module\admin\Controller\Test::main', as: null } diff --git a/routing/routes/routes.yml b/routing/routes/routes.yml index bcc6ae92545bf279d382376795a1a9ab7825d0cb..cbfd6908c0acb0b2ad6788cf3b6bcd5a2b4b0e4a 100644 --- a/routing/routes/routes.yml +++ b/routing/routes/routes.yml @@ -27,3 +27,6 @@ websso-legacy-single-logout: websso-legacy-init-single-logout: path: /saml2/idp/initSLO.php defaults: { _controller: 'SimpleSAML\Module\saml\Controller\SingleLogout::initSingleLogout', path: /saml2/idp/initSingleLogout, permanent: true } +admin-legacy: + path: /admin + defaults: { _controller: 'SimpleSAML\Module\admin\Controller\Config::main', path: /admin, permanent: true } diff --git a/tests/modules/admin/lib/Controller/SandboxTest.php b/tests/modules/admin/lib/Controller/SandboxTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c3246e851e15461a992c007368b4be92c1ed32a6 --- /dev/null +++ b/tests/modules/admin/lib/Controller/SandboxTest.php @@ -0,0 +1,56 @@ +<?php + +declare(strict_types=1); + +namespace SimpleSAML\Test\Module\admin\Controller; + +use PHPUnit\Framework\TestCase; +use SimpleSAML\Configuration; +use SimpleSAML\Module\admin\Controller; +use SimpleSAML\Session; +use SimpleSAML\XHTML\Template; + +/** + * Set of tests for the controllers in the "admin" module. + * + * @covers \SimpleSAML\Module\admin\Controller\Sandbox + * @package SimpleSAML\Test + */ +class SandboxTest extends TestCase +{ + /** @var \SimpleSAML\Configuration */ + protected Configuration $config; + + /** @var \SimpleSAML\Session */ + protected Session $session; + + + /** + * Set up for each test. + */ + protected function setUp(): void + { + parent::setUp(); + + $this->config = Configuration::loadFromArray( + [ + 'module.enable' => ['admin' => true], + ], + '[ARRAY]', + 'simplesaml' + ); + + $this->session = Session::getSessionFromRequest(); + } + + + /** + */ + public function testSandbox(): void + { + $c = new Controller\Sandbox($this->config, $this->session); + $response = $c->main(); + + $this->assertInstanceOf(Template::class, $response); + } +} diff --git a/www/admin/index.php b/www/admin/index.php deleted file mode 100644 index b77e3e4097cb7b21942baf87d1ef2693aa7c77da..0000000000000000000000000000000000000000 --- a/www/admin/index.php +++ /dev/null @@ -1,6 +0,0 @@ -<?php - -require_once('../_include.php'); - -$httpUtils = new \SimpleSAML\Utils\HTTP(); -$httpUtils->redirectTrustedURL(\SimpleSAML\Module::getModuleURL('admin/')); diff --git a/www/admin/sandbox.php b/www/admin/sandbox.php deleted file mode 100644 index 07b3a245b1e996d6df599e4e08712894fabd089d..0000000000000000000000000000000000000000 --- a/www/admin/sandbox.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -require_once('../_include.php'); - -// Load SimpleSAMLphp configuration -$config = \SimpleSAML\Configuration::getInstance()->toArray(); -$config = \SimpleSAML\Configuration::loadFromArray($config, '[ARRAY]', 'simplesaml'); -$session = \SimpleSAML\Session::getSessionFromRequest(); - -$template = new \SimpleSAML\XHTML\Template($config, 'sandbox.twig'); -$template->data['pagetitle'] = 'Sandbox'; -$template->data['sometext'] = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.' . - ' Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit.' . - ' Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. ' . - 'Nam tincidunt congue enim, ut porta lorem lacinia consectetur.'; -$template->data['remaining'] = $session->getAuthData('admin', 'Expire') - time(); -$template->data['logout'] = null; - -$template->send();