diff --git a/components/case/representation/utils/buildRepsArrRules.js b/components/case/representation/utils/buildRepsArrRules.js index b9439c8f..c917cabc 100644 --- a/components/case/representation/utils/buildRepsArrRules.js +++ b/components/case/representation/utils/buildRepsArrRules.js @@ -169,20 +169,28 @@ export const addStatements = (options, ctx) => { }; export const addFinalComments = (options, ctx) => { - const canSubmitFinalComments = + const canSubmitFinalCommentsDefault = ctx.isSelectedAppellant || ctx.isSelectedAgent || ctx.isSelectedInterestedParty || ctx.isLPA; + const canSubmitFinalComments = ctx.isDNS + ? ctx.isLPA + : canSubmitFinalCommentsDefault; + const isSpecialistNonHearing = ctx.specialistProcess !== SPECIALIST_PROCESS.HEARING; + const finalCommentsWindowStart = ctx.isDNS + ? ctx.startDate + : ctx.statementDueDate; + const canAdd = canSubmitFinalComments && isWithinWindow( ctx.now, - ctx.statementDueDate, + finalCommentsWindowStart, ctx.finalCommentsDueDate ) && (ctx.appealType !== APPEAL_TYPES.HOUSEHOLDER || isSpecialistNonHearing); diff --git a/components/header.js b/components/header.js index 090dacd9..2e6568ca 100644 --- a/components/header.js +++ b/components/header.js @@ -7,7 +7,7 @@ import { connect } from "react-redux"; import Banner from "../components/banner"; import { setLogout } from "../store/accountDetails/action"; -import { signOut } from "next-auth/react"; +import { performPortalSignOut } from "../lib/auth/sessionClient"; const Header = (props) => { let { t, lang } = useTranslation(); @@ -84,15 +84,7 @@ const Header = (props) => { } const handleLogout = () => { - console.info("////////////\n" + "logout" + "\n////////////"); - (window.localStorage.clear(), - destroyCookie(null, "next-auth.csrf-token", { path: "/" }), - destroyCookie(null, "next-auth.callback-url", { path: "/" }), - destroyCookie(null, "pedw_locale", { path: "/" }), - destroyCookie(null, "pinsUser", { path: "/" }), - signOut({ - callbackUrl: locale == "cy" ? "/cy/allgofnodi" : "/logout" - })); + performPortalSignOut(locale); }; //const switchLocale = locale === "en" ? "cy" : "en"; diff --git a/components/myportal.js b/components/myportal.js index 4597b5a8..6b31f3e5 100644 --- a/components/myportal.js +++ b/components/myportal.js @@ -2,7 +2,6 @@ import { signOut } from "next-auth/react"; import useTranslation from "next-translate/useTranslation"; import Link from "next/link"; import { useRouter } from "next/router"; -import { destroyCookie } from "nookies"; import TimeOut from "../components/timeout"; import AwaitingSubmissionFromBlob from "./myportal/awaitingsubmissionfromblob"; @@ -17,6 +16,7 @@ import MySubmittedReps from "./myportal/mysubmittedrepresentations"; import ServiceBanner from "./myportal/servicebanner"; import { JSONPath as jsonpath } from "jsonpath-plus"; import transLookup from "../data/lookuptranslations.json"; +import { performPortalSignOut } from "../lib/auth/sessionClient"; const MyPortal = (props) => { const { showFileUpload, showLoginCheck, docsOffline } = props; @@ -26,15 +26,7 @@ const MyPortal = (props) => { const { locale } = router; const handleLogout = () => { - console.info("////////////\n" + "logout" + "\n////////////"); - (window.localStorage.clear(), - destroyCookie(null, "next-auth.csrf-token", { path: "/" }), - destroyCookie(null, "next-auth.callback-url", { path: "/" }), - destroyCookie(null, "pedw_locale", { path: "/" }), - destroyCookie(null, "pinsUser", { path: "/" }), - signOut({ - callbackUrl: locale == "cy" ? "/cy/allgofnodi" : "/logout" - })); + performPortalSignOut({ locale, signOutFn: signOut }); }; const isLPA = diff --git a/components/myportal/servicebanner.js b/components/myportal/servicebanner.js index 6f6768e1..d69a1dcb 100644 --- a/components/myportal/servicebanner.js +++ b/components/myportal/servicebanner.js @@ -1,8 +1,7 @@ import useTranslation from "next-translate/useTranslation"; import router from "next/router"; import Link from "next/link"; -import { destroyCookie } from "nookies"; -import { signOut } from "next-auth/react"; +import { performPortalSignOut } from "../../lib/auth/sessionClient"; const ServiceBanner = (props) => { props = props.props; @@ -19,23 +18,14 @@ const ServiceBanner = (props) => { }; const handleLogout = (locale) => { - console.info("////////////\n" + "logout" + "\n////////////"); - window.localStorage.clear(), - destroyCookie(null, "next-auth.csrf-token"), - { path: "/" }, - destroyCookie(null, "next-auth.callback-url", { path: "/" }), - destroyCookie(null, "pedw_locale", { path: "/" }), - destroyCookie(null, "pinsUser", { path: "/" }), - signOut({ - callbackUrl: locale == "cy" ? "/cy/allgofnodi" : "/logout", - }); + performPortalSignOut(locale); }; const portalLogoLink = [ "/myportal/[appealtypes]", "/newappeal", "/newappeal/[appealtypes]", - "/myportal/representation", + "/myportal/representation" ]; return (