Updated redirect implementation

This commit is contained in:
Joao Ramos
2024-03-11 17:00:38 +00:00
parent 330c177ff9
commit 37c3c6f7f4
14 changed files with 111 additions and 150 deletions

View File

@@ -23,11 +23,11 @@ export function getServerSideProps({
res: any; res: any;
}) { }) {
if (!query || !query.oobCode || !query.mode) { if (!query || !query.oobCode || !query.mode) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: {}, redirect: {
destination: "/login",
permanent: false,
}
}; };
} }

View File

@@ -10,24 +10,20 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
if (shouldRedirectHome(user)) { if (shouldRedirectHome(user)) {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }

View File

@@ -10,24 +10,20 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
if (shouldRedirectHome(user)) { if (shouldRedirectHome(user)) {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }

View File

@@ -26,24 +26,20 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
if (shouldRedirectHome(user) || user.type !== "developer") { if (shouldRedirectHome(user) || user.type !== "developer") {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }

View File

@@ -35,6 +35,7 @@ import Select from "react-select";
import {USER_TYPE_LABELS} from "@/resources/user"; import {USER_TYPE_LABELS} from "@/resources/user";
export const getServerSideProps = withIronSessionSsr(({req, res}) => { export const getServerSideProps = withIronSessionSsr(({req, res}) => {
debugger;
const user = req.session.user; const user = req.session.user;
const envVariables: {[key: string]: string} = {}; const envVariables: {[key: string]: string} = {};
@@ -45,14 +46,11 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
}); });
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
envVariables, permanent: false,
}, }
}; };
} }
@@ -61,7 +59,13 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
}; };
}, sessionOptions); }, sessionOptions);
export default function Home({envVariables}: {envVariables: {[key: string]: string}}) { interface Props {
user: any;
envVariables: {[key: string]: string};
}
export default function Home(props: Props) {
const { envVariables} = props;
debugger;
const [showDiagnostics, setShowDiagnostics] = useState(false); const [showDiagnostics, setShowDiagnostics] = useState(false);
const [showDemographicInput, setShowDemographicInput] = useState(false); const [showDemographicInput, setShowDemographicInput] = useState(false);
const [selectedScreen, setSelectedScreen] = useState<Type>("admin"); const [selectedScreen, setSelectedScreen] = useState<Type>("admin");

View File

@@ -22,14 +22,11 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
}); });
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
envVariables, permanent: false,
}, }
}; };
} }

View File

@@ -31,14 +31,11 @@ export const getServerSideProps = withIronSessionSsr(({ req, res }) => {
}); });
if (user && user.isVerified) { if (user && user.isVerified) {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
envVariables, permanent: false,
}, }
}; };
} }

View File

@@ -42,24 +42,20 @@ export const getServerSideProps = withIronSessionSsr(({ req, res }) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
if (shouldRedirectHome(user) || !["admin", "developer"].includes(user.type)) { if (shouldRedirectHome(user) || !["admin", "developer"].includes(user.type)) {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }

View File

@@ -7,6 +7,7 @@ import PaymentDue from "./(status)/PaymentDue";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
export const getServerSideProps = withIronSessionSsr(({ req, res }) => { export const getServerSideProps = withIronSessionSsr(({ req, res }) => {
debugger;
const user = req.session.user; const user = req.session.user;
const envVariables: { [key: string]: string } = {}; const envVariables: { [key: string]: string } = {};
@@ -17,14 +18,11 @@ export const getServerSideProps = withIronSessionSsr(({ req, res }) => {
}); });
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
envVariables, permanent: false,
}, }
}; };
} }
@@ -38,6 +36,7 @@ export default function Home({
}: { }: {
envVariables: { [key: string]: string }; envVariables: { [key: string]: string };
}) { }) {
debugger;
const { user } = useUser({ redirectTo: "/login" }); const { user } = useUser({ redirectTo: "/login" });
const router = useRouter(); const router = useRouter();

View File

@@ -37,24 +37,20 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
if (shouldRedirectHome(user)) { if (shouldRedirectHome(user)) {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }

View File

@@ -30,24 +30,20 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
if (shouldRedirectHome(user)) { if (shouldRedirectHome(user)) {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }

View File

@@ -18,24 +18,20 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
if (shouldRedirectHome(user) || user.type !== "developer") { if (shouldRedirectHome(user) || user.type !== "developer") {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }

View File

@@ -35,24 +35,20 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
if (shouldRedirectHome(user)) { if (shouldRedirectHome(user)) {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }

View File

@@ -35,13 +35,11 @@ export const getServerSideProps = withIronSessionSsr(({ req, res }) => {
const user = req.session.user; const user = req.session.user;
if (!user || !user.isVerified) { if (!user || !user.isVerified) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/login",
}, permanent: false,
}
}; };
} }
@@ -49,13 +47,11 @@ export const getServerSideProps = withIronSessionSsr(({ req, res }) => {
shouldRedirectHome(user) || shouldRedirectHome(user) ||
["admin", "developer", "agent"].includes(user.type) ["admin", "developer", "agent"].includes(user.type)
) { ) {
res.setHeader("location", "/");
res.statusCode = 302;
res.end();
return { return {
props: { redirect: {
user: null, destination: "/",
}, permanent: false,
}
}; };
} }