diff --git a/public_html/includes/class/class.LSauth.php b/public_html/includes/class/class.LSauth.php
index 021246ee..ba1b3231 100644
--- a/public_html/includes/class/class.LSauth.php
+++ b/public_html/includes/class/class.LSauth.php
@@ -104,7 +104,23 @@ class LSauth {
* @retval void
**/
public static function logout() {
- if (!is_null(self :: $provider)) {
+ if (!is_null(self :: $provider)) {
+ return self :: $provider -> logout();
+ }
+ LSerror :: addErrorCode('LSauth_06');
+ return;
+ }
+
+ /**
+ * After logout
+ *
+ * This method is run by LSsession after the local session was
+ * was successfully destroyed.
+ *
+ * @retval void
+ **/
+ public static function afterLogout() {
+ if (!is_null(self :: $provider)) {
return self :: $provider -> logout();
}
LSerror :: addErrorCode('LSauth_06');
diff --git a/public_html/includes/class/class.LSauthMethod.php b/public_html/includes/class/class.LSauthMethod.php
index a61365d5..535db1ed 100644
--- a/public_html/includes/class/class.LSauthMethod.php
+++ b/public_html/includes/class/class.LSauthMethod.php
@@ -94,6 +94,18 @@ class LSauthMethod {
return true;
}
+ /**
+ * After logout
+ *
+ * This method is run by LSsession after the local session was
+ * was successfully destroyed.
+ *
+ * @retval void
+ **/
+ public static function afterLogout() {
+ return true;
+ }
+
/**
* Get LDAP credentials
*
diff --git a/public_html/includes/class/class.LSsession.php b/public_html/includes/class/class.LSsession.php
index e2bb8b87..3a61a505 100644
--- a/public_html/includes/class/class.LSsession.php
+++ b/public_html/includes/class/class.LSsession.php
@@ -533,15 +533,23 @@ class LSsession {
}
if (isset($_GET['LSsession_logout'])) {
+ // Trigger LSauth logout
LSauth :: logout();
- session_destroy();
-
+
+ // Delete temporaries files
if (is_array($_SESSION['LSsession']['tmp_file'])) {
self :: $tmp_file = $_SESSION['LSsession']['tmp_file'];
}
self :: deleteTmpFile();
+
+ // Destroy local session
unset($_SESSION['LSsession']);
-
+ session_destroy();
+
+ // Trigger LSauth after logout
+ LSauth :: afterLogout();
+
+ // Redirect user on home page
self :: redirect('index.php');
return;
}