diff --git a/lib/SimpleSAML/IdP/IFrameLogoutHandler.php b/lib/SimpleSAML/IdP/IFrameLogoutHandler.php index 58374cf69931e036de06a42de5132d24a269169f..7abe0c192fcff212fd8cacb74fc12415b14585c2 100644 --- a/lib/SimpleSAML/IdP/IFrameLogoutHandler.php +++ b/lib/SimpleSAML/IdP/IFrameLogoutHandler.php @@ -96,16 +96,35 @@ class IFrameLogoutHandler implements LogoutHandlerInterface { assert(is_string($assocId)); - $config = Configuration::getInstance(); $this->idp->terminateAssociation($assocId); + $config = Configuration::getInstance(); + $usenewui = $config->getBoolean('usenewui', false); + + // Force the use of Twig for this method. Remove if-clause in 2.0 + if ($usenewui === false) { + $config = Configuration::loadFromArray([ + 'usenewui' => true, + ]); + } + $t = new Template($config, 'IFrameLogoutHandler.twig'); $t->data['assocId'] = var_export($assocId, true); $t->data['spId'] = sha1($assocId); if (!is_null($error)) { $t->data['errorMsg'] = $error->getMessage(); } - $t->show(); - exit(0); + + // Remove the if-clause in 2.0, leave the else-part + if ($usenewui === false) { + $twig = $t->getTwig(); + if (!isset($twig)) { + throw new \Exception('Even though we explicitly configure that we want Twig, the Template class does not give us Twig. This is a bug.'); + } + $result = $twig->render('IFrameLogoutHandler.twig', $t->data); + echo $result; + } else { + $t->show(); + } } }