Add SETUP_MODE checks

This commit is contained in:
Darren Clarke 2023-08-28 14:36:34 +02:00
parent 859c11fb1c
commit 0b5e242ed0
2 changed files with 18 additions and 13 deletions

View file

@ -25,13 +25,18 @@ const fetchUser = async (email: string) => {
};
const getUserRoles = async (email: string) => {
const user = await fetchUser(email);
const allRoles = await fetchRoles();
const roles = user.role_ids.map((roleID: number) => {
const role = allRoles[roleID];
return role ? role.toLowerCase().replace(" ", "_") : null;
});
return roles.filter((role: string) => role !== null);
try {
const user = await fetchUser(email);
const allRoles = await fetchRoles();
const roles = user.role_ids.map((roleID: number) => {
const role = allRoles[roleID];
return role ? role.toLowerCase().replace(" ", "_") : null;
});
return roles.filter((role: string) => role !== null);
} catch (e) {
console.log({ e });
return [];
}
};
const login = async (email: string, password: string) => {
@ -88,19 +93,19 @@ const handler = NextAuth({
callbacks: {
signIn: async ({ user, account, profile }) => {
const roles = await getUserRoles(user.email);
return roles.includes("admin") || roles.includes("agent");
const roles = await getUserRoles(user.email) ?? [];
return roles.includes("admin") || roles.includes("agent") || process.env.SETUP_MODE === "true";
},
session: async ({ session, user, token }) => {
// @ts-ignore
session.user.roles = token.roles;
session.user.roles = token.roles ?? [];
// @ts-ignore
session.user.leafcutter = token.leafcutter;
session.user.leafcutter = token.leafcutter; // remove
return session;
},
jwt: async ({ token, user, account, profile, trigger }) => {
if (user) {
token.roles = await getUserRoles(user.email);
token.roles = await getUserRoles(user.email) ?? [];
}
return token;
}

View file

@ -63,7 +63,7 @@ export default withAuth(
}
const roles: any = token?.roles ?? [];
if (roles.includes("admin") || roles.includes("agent")) {
if (roles.includes("admin") || roles.includes("agent") || process.env.SETUP_MODE === "true") {
return true;
}