diff --git a/action/logout.php b/action/logout.php
index d4be5a7..d1cd472 100644
--- a/action/logout.php
+++ b/action/logout.php
@@ -13,6 +13,7 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/cookie');
+include_spip('inc/my_auth');
/* Loading simplesamlphp */
include_spip('inc/simplesamlphp/lib/_autoload');
@@ -20,44 +21,15 @@ include_spip('inc/simplesamlphp/lib/_autoload');
// http://doc.spip.org/@action_logout_dist
function action_logout_dist()
{
- global $auteur_session, $ignore_auth_http;
-
$simplesaml = new SimpleSAML_Auth_Simple('default-sp');
- $logout =_request('logout');
- $url = _request('url');
- spip_log("logout $logout $url" . $auteur_session['id_auteur']);
- // cas particulier, logout dans l'espace public
- if ($logout == 'public' AND !$url)
- $url = url_de_base();
+ // Spip logout
+ my_spip_logout();
- // seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee)
- if (is_numeric($auteur_session['id_auteur'])) {
- spip_query("UPDATE spip_auteurs SET en_ligne = DATE_SUB(NOW(),INTERVAL 15 MINUTE) WHERE id_auteur = ".$auteur_session['id_auteur']);
- // le logout explicite vaut destruction de toutes les sessions
- if ($_COOKIE['spip_session']) {
- $session = charger_fonction('session', 'inc');
- $session($auteur_session['id_auteur']);
- preg_match(',^[^/]*//[^/]*(.*)/$,',
- url_de_base(),
- $r);
- spip_setcookie('spip_session', '', -1,$r[1]);
- spip_setcookie('spip_session', '', -1);
- }
- if ($_SERVER['PHP_AUTH_USER'] AND !$ignore_auth_http) {
- include_spip('inc/actions');
- if (verifier_php_auth()) {
- ask_php_auth(_T('login_deconnexion_ok'),
- _T('login_verifiez_navigateur'),
- _T('login_retour_public'),
- "redirect=". _DIR_RESTREINT_ABS,
- _T('login_test_navigateur'),
- true);
- exit;
- }
- }
- }
// Logout SAML
- spip_log("[auth_saml] logout " . url_de_base());
- $simplesaml->logout(url_de_base());
+ if ($simplesaml->isAuthenticated())
+ {
+ spip_log("[auth_saml] logout " . url_de_base());
+ $simplesaml->logout(url_de_base());
+ }
}
?>
diff --git a/inc/my_auth.php b/inc/my_auth.php
new file mode 100644
index 0000000..79b8478
--- /dev/null
+++ b/inc/my_auth.php
@@ -0,0 +1,49 @@
+
diff --git a/plugin.xml b/plugin.xml
index e1e6c90..3260173 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -12,6 +12,9 @@
[http://repos.entrouvert.org/spip-saml.git->http://repos.entrouvert.org/spip-saml.git]
-
saml
+
+ definir_session
+ saml_pipelines.php
+
diff --git a/saml_pipelines.php b/saml_pipelines.php
new file mode 100644
index 0000000..e24d607
--- /dev/null
+++ b/saml_pipelines.php
@@ -0,0 +1,23 @@
+isAuthenticated())
+ {
+ my_spip_logout();
+ }
+ }
+ return $session;
+}
+
+?>