summaryrefslogtreecommitdiff
path: root/inject/disable-password-login.js
blob: bd0ed8e2eea64ae1c1d10de6ed11a5d9afc39665 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
export function disablePasswordLogin() {
  const queryString = new URLSearchParams(window.location.search);
  if (queryString.get("pwauth") == null) {
    document.addEventListener("DOMContentLoaded", function () {
      if (document.querySelector(".alert") || queryString.get("oauth_error")) {
        console.warn("Not redirecting to SSO due to error");
        return;
      }

      const sso = document.querySelector(".o_auth_oauth_providers");
      if (sso) {
        const link = sso.getElementsByTagName("a")[0];
        if (link.innerText.search("Authentik") + link.innerText.search("TONI SSO") > 0) {
          const curUrl = URL.parse(window.location);
          let targetUrl = URL.parse(link.href);
          let SSOQueryString = new URLSearchParams(targetUrl.search);

          let redirectUrl = URL.parse(SSOQueryString.get("redirect_uri"));
          redirectUrl["hostname"] = curUrl["hostname"];
          SSOQueryString.set("redirect_uri", redirectUrl.toString());
          targetUrl["search"] = SSOQueryString.toString();

          console.info("Redirecting to SSO login:", targetUrl.toString());
          window.location.replace(targetUrl.toString());
        }
      }
    });
  }
  else {
    console.info("Not redirecting to SSO due to pwauth query string");
  }
}