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;
}) {
if (!query || !query.oobCode || !query.mode) {
res.setHeader("location", "/login");
res.statusCode = 302;
res.end();
return {
props: {},
redirect: {
destination: "/login",
permanent: false,
}
};
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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