diff --git a/.circleci/config.yml b/.circleci/config.yml index 9880409a8..d25bf73ff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -78,7 +78,6 @@ jobs: - run: | export LHCI_SITES="[\"https://malibu-perfadvanced.quintype.io/\"]" npx @lhci/cli@0.6.x autorun - workflows: version: 2 build_and_test: diff --git a/app/isomorphic/components/layouts/header/nav-bar/index.js b/app/isomorphic/components/layouts/header/nav-bar/index.js index f21dcda04..9acea752b 100644 --- a/app/isomorphic/components/layouts/header/nav-bar/index.js +++ b/app/isomorphic/components/layouts/header/nav-bar/index.js @@ -7,7 +7,7 @@ import { OPEN_HAMBURGER_MENU, OPEN_SEARCHBAR, MEMBER_UPDATED } from "../../../st import { MenuItem } from "../../menu-item"; import HamburgerMenu from "../../../atoms/hamburger-menu"; import MessageWrapper from "../../../molecules/forms/message-wrapper"; - +import { getAutoSSOUrl } from "@quintype/bridgekeeper-js"; import { SvgIconHandler } from "../../../atoms/svg-icon-hadler"; import "./navbar.m.css"; @@ -34,6 +34,7 @@ const NavBar = () => { : get(publisherAttributes, ["sso_login", "redirect_Url"], ""); const ssoLoginIsEnable = get(publisherAttributes, ["sso_login", "is_enable"], false); + const isAutoSSOEnabled = get(publisherAttributes, ["auto_sso", "is_enable"], false); const toggleHandler = () => { dispatch({ @@ -60,6 +61,7 @@ const NavBar = () => { try { const currentUserResp = await currentUser(); dispatch({ type: MEMBER_UPDATED, member: get(currentUserResp, ["user"], null) }); + return currentUserResp; } catch (err) { console.log("error--------", err); } @@ -139,7 +141,15 @@ const NavBar = () => { const imageUrl = member && member["avatar-url"]; useEffect(() => { - getCurrentUser(); + const queryParams = new URLSearchParams(window.location.search); + const queryParamExists = queryParams.has("logged_in"); + + getCurrentUser().then(({ user }) => { + if (isAutoSSOEnabled && !user && !queryParamExists) { + const autoSsoUrl = getAutoSSOUrl(clientId, redirectUrl, window.location.href); + window.location.replace(autoSsoUrl); + } + }); switch (global.location.hash) { case "#email-verified": @@ -157,10 +167,12 @@ const NavBar = () => { const userLogin = loading => { setLoading(loading); - if (window) + if (window) { + const callbackUrl = window.location.href.replace("?logged_in=false", ""); window.location.replace( - `/api/auth/v1/oauth/authorize?client_id=${clientId}&redirect_uri=${redirectUrl}&callback_uri=${window.location.href}&response_type=code` + `/api/auth/v1/oauth/authorize?client_id=${clientId}&redirect_uri=${redirectUrl}&callback_uri=${callbackUrl}&response_type=code` ); + } }; const messageModal = message => { diff --git a/config/publisher.yml b/config/publisher.yml index fe877cf94..6f7caf1f8 100644 --- a/config/publisher.yml +++ b/config/publisher.yml @@ -19,6 +19,8 @@ publisher: redirect_Url: "/api/auth/v1/oauth/token" callback_Url: "Callback Url" timezone: "Asia/Baku" + auto_sso: + is_enable: false google_tag_manager: id: "gtm-id" is_enable: true diff --git a/package-lock.json b/package-lock.json index 7acc6c28a..7a5852109 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4372,9 +4372,9 @@ } }, "@quintype/bridgekeeper-js": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@quintype/bridgekeeper-js/-/bridgekeeper-js-2.7.0.tgz", - "integrity": "sha512-mDtz/24d0Bfxu8D8ZfFP2b2wUanL/oJJNLDRDsPDlnZqCbyTlZP4wL5JlMj/+xFrPHLvJY1Q8Hj38zooyN076g==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@quintype/bridgekeeper-js/-/bridgekeeper-js-2.8.0.tgz", + "integrity": "sha512-LT4s5h3PVw8iRqKZ7jri2REIS5mC/+ui8gZnhVlRKAjdjC4WvzfOUYTLDemYuM28CoE4n8Mv9M18wsKfUMoY4g==", "requires": { "@babel/polyfill": "^7.12.1", "@babel/runtime": "^7.4.4", diff --git a/package.json b/package.json index 1890cce7b..b7a38e507 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@loadable/component": "^5.14.1", "@loadable/server": "^5.14.2", "@quintype/arrow": "^2.9.9", - "@quintype/bridgekeeper-js": "^2.7.0", + "@quintype/bridgekeeper-js": "^2.8.0", "@quintype/components": "^2.31.7", "@quintype/framework": "^6.1.1", "@quintype/seo": "^1.38.39",