fix: make auth migration more flexible

This commit is contained in:
David Nguyen
2025-02-14 19:22:11 +11:00
parent df8ea09021
commit 595e901bc2
2 changed files with 35 additions and 22 deletions

View File

@ -25,30 +25,42 @@ export function meta() {
export async function loader() {
const { user } = getLoaderSession();
const accounts = await prisma.account.findMany({
where: {
userId: user.id,
},
select: {
provider: true,
},
});
// Todo: Use providers instead after RR7 migration.
// const accounts = await prisma.account.findMany({
// where: {
// userId: user.id,
// },
// select: {
// provider: true,
// },
// });
const providers = accounts.map((account) => account.provider);
// const providers = accounts.map((account) => account.provider);
// let hasEmailPasswordAccount = providers.includes('DOCUMENSO');
const hasEmailPasswordAccount: boolean = await prisma.user
.count({
where: {
id: user.id,
password: {
not: null,
},
},
})
.then((value) => value > 0);
return {
providers,
// providers,
hasEmailPasswordAccount,
};
}
export default function SettingsSecurity({ loaderData }: Route.ComponentProps) {
const { providers } = loaderData;
const { hasEmailPasswordAccount } = loaderData;
const { _ } = useLingui();
const { user } = useSession();
const hasEmailPasswordAccount = providers.includes('DOCUMENSO');
return (
<div>
<SettingsHeader

View File

@ -58,15 +58,16 @@ export const createUser = async ({ name, email, password, signature, url }: Crea
},
});
await tx.account.create({
data: {
userId: user.id,
type: 'emailPassword', // Todo
provider: 'DOCUMENSO', // Todo: Enums
providerAccountId: user.id.toString(),
password: hashedPassword,
},
});
// Todo: Migrate to use this after RR7.
// await tx.account.create({
// data: {
// userId: user.id,
// type: 'emailPassword', // Todo
// provider: 'DOCUMENSO', // Todo: Enums
// providerAccountId: user.id.toString(),
// password: hashedPassword,
// },
// });
return user;
});