Browse Source

When log out redirect to the logout of "azure_active_directory" plugin

See BT#9859
jmontoyaa 7 years ago
parent
commit
8e8c82d177

+ 13 - 1
main/inc/lib/online.inc.php

@@ -151,11 +151,23 @@ function online_logout($user_id = null, $logout_redirect = false)
         }
     }
 
+    // After logout redirect to
+    $url = api_get_path(WEB_PATH).'index.php';
+
+    if ($logout_redirect && api_get_plugin_setting('azure_active_directory', 'enable') == 'true') {
+        $activeDirectoryPlugin = AzureActiveDirectory::create();
+        $azureLogout = $activeDirectoryPlugin->getUrl(AzureActiveDirectory::URL_TYPE_SIGNOUT);
+        if (!empty($azureLogout)) {
+            $url = $azureLogout;
+        }
+    }
+
     CourseChatUtils::exitChat($user_id);
     session_regenerate_id();
     Session::destroy();
+
     if ($logout_redirect) {
-        header("Location: ".api_get_path(WEB_PATH)."index.php");
+        header("Location: ".$url);
         exit;
     }
 }

+ 2 - 2
plugin/azure_active_directory/src/AzureActiveDirectory.php

@@ -39,9 +39,9 @@ class AzureActiveDirectory extends Plugin
     /**
      * Instance the plugin
      * @staticvar null $result
-     * @return Tour
+     * @return $this
      */
-    static function create()
+    public static function create()
     {
         static $result = null;