mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
fix: make auth migration more flexible
This commit is contained in:
@ -25,30 +25,42 @@ export function meta() {
|
|||||||
export async function loader() {
|
export async function loader() {
|
||||||
const { user } = getLoaderSession();
|
const { user } = getLoaderSession();
|
||||||
|
|
||||||
const accounts = await prisma.account.findMany({
|
// Todo: Use providers instead after RR7 migration.
|
||||||
where: {
|
// const accounts = await prisma.account.findMany({
|
||||||
userId: user.id,
|
// where: {
|
||||||
},
|
// userId: user.id,
|
||||||
select: {
|
// },
|
||||||
provider: true,
|
// 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 {
|
return {
|
||||||
providers,
|
// providers,
|
||||||
|
hasEmailPasswordAccount,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function SettingsSecurity({ loaderData }: Route.ComponentProps) {
|
export default function SettingsSecurity({ loaderData }: Route.ComponentProps) {
|
||||||
const { providers } = loaderData;
|
const { hasEmailPasswordAccount } = loaderData;
|
||||||
|
|
||||||
const { _ } = useLingui();
|
const { _ } = useLingui();
|
||||||
const { user } = useSession();
|
const { user } = useSession();
|
||||||
|
|
||||||
const hasEmailPasswordAccount = providers.includes('DOCUMENSO');
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<SettingsHeader
|
<SettingsHeader
|
||||||
|
|||||||
@ -58,15 +58,16 @@ export const createUser = async ({ name, email, password, signature, url }: Crea
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
await tx.account.create({
|
// Todo: Migrate to use this after RR7.
|
||||||
data: {
|
// await tx.account.create({
|
||||||
userId: user.id,
|
// data: {
|
||||||
type: 'emailPassword', // Todo
|
// userId: user.id,
|
||||||
provider: 'DOCUMENSO', // Todo: Enums
|
// type: 'emailPassword', // Todo
|
||||||
providerAccountId: user.id.toString(),
|
// provider: 'DOCUMENSO', // Todo: Enums
|
||||||
password: hashedPassword,
|
// providerAccountId: user.id.toString(),
|
||||||
},
|
// password: hashedPassword,
|
||||||
});
|
// },
|
||||||
|
// });
|
||||||
|
|
||||||
return user;
|
return user;
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user