. * --------------------------------------------------------------------- * @copyright Copyright © 2021 - 2022 Edgard * @license http://www.gnu.org/licenses/gpl.txt GPLv3+ * @link https://github.com/edgardmessias/glpi-singlesignon/ * --------------------------------------------------------------------- */ //Disable CSRF token define('GLPI_USE_CSRF_CHECK', 0); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); include('../../../inc/includes.php'); $provider_id = PluginSinglesignonToolbox::getCallbackParameters('provider'); if (!$provider_id) { Html::displayErrorAndDie(__sso("Provider not defined."), false); } $signon_provider = new PluginSinglesignonProvider(); if (!$signon_provider->getFromDB($provider_id)) { Html::displayErrorAndDie(__sso("Provider not found."), true); } if (!$signon_provider->fields['is_active']) { Html::displayErrorAndDie(__sso("Provider not active."), true); } $signon_provider->checkAuthorization(); $test = PluginSinglesignonToolbox::getCallbackParameters('test'); if ($test) { $signon_provider->debug = true; Html::nullHeader("Login", $CFG_GLPI["root_doc"] . '/index.php'); echo '
'; echo "### BEGIN ###\n"; $signon_provider->getResourceOwner(); echo "### END ###"; echo ''; Html::nullFooter(); exit(); } $user_id = Session::getLoginUserID(); $REDIRECT = ""; if ($user_id || $signon_provider->login()) { $user_id = $user_id ?: Session::getLoginUserID(); if ($user_id) { $signon_provider->linkUser($user_id); } $params = PluginSinglesignonToolbox::getCallbackParameters('q'); if (isset($params['redirect'])) { $REDIRECT = '?redirect=' . $params['redirect']; } else if (isset($_GET['state']) && is_integer(strpos($_GET['state'], "&redirect="))) { $REDIRECT = '?' . substr($_GET['state'], strpos($_GET['state'], "&redirect=") + 1); } $url_redirect = ''; if (isset($params['redirect'])) { $REDIRECT = '?redirect=' . $params['redirect']; } else if (isset($_GET['state']) && is_integer(strpos($_GET['state'], "&redirect="))) { $REDIRECT = '?' . substr($_GET['state'], strpos($_GET['state'], "&redirect=") + 1); } if ($_SESSION["glpiactiveprofile"]["interface"] == "helpdesk") { if ($_SESSION['glpiactiveprofile']['create_ticket_on_login'] && empty($REDIRECT)) { $url_redirect = $CFG_GLPI['root_doc'] . "/front/helpdesk.public.php?create_ticket=1"; } else { $url_redirect = $CFG_GLPI['root_doc'] . "/front/helpdesk.public.php$REDIRECT"; } } else { if ($_SESSION['glpiactiveprofile']['create_ticket_on_login'] && empty($REDIRECT)) { $url_redirect = $CFG_GLPI['root_doc'] . "/front/ticket.form.php"; } else { $url_redirect = $CFG_GLPI['root_doc'] . "/front/central.php$REDIRECT"; } } Html::nullHeader("Login", $CFG_GLPI["root_doc"] . '/index.php'); echo ''; Html::nullFooter(); exit(); // Auth::redirectIfAuthenticated(); } // we have done at least a good login? No, we exit. Html::nullHeader("Login", $CFG_GLPI["root_doc"] . '/index.php'); echo '