This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/lib/logout.js
2020-03-12 13:29:55 -04:00

32 lines
1.0 KiB
JavaScript

import { isEmpty } from "@ember/utils";
import { findAll } from "discourse/models/login-method";
export default function logout(siteSettings, keyValueStore) {
if (!siteSettings || !keyValueStore) {
const container = Discourse.__container__;
siteSettings = siteSettings || container.lookup("site-settings:main");
keyValueStore = keyValueStore || container.lookup("key-value-store:main");
}
keyValueStore.abandonLocal();
const redirect = siteSettings.logout_redirect;
if (!isEmpty(redirect)) {
window.location.href = redirect;
return;
}
const sso = siteSettings.enable_sso;
const oneAuthenticator =
!siteSettings.enable_local_logins && findAll().length === 1;
if (siteSettings.login_required && (sso || oneAuthenticator)) {
// In this situation visiting most URLs will start the auth process again
// Go to the `/login` page to avoid an immediate redirect
window.location.href = Discourse.getURL("/login");
return;
}
window.location.href = Discourse.getURL("/");
}