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

View file

@ -63,7 +63,7 @@ export default withAuth(
} }
const roles: any = token?.roles ?? []; 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; return true;
} }