From eb33e5130ab2241807a8fbb496dea08011fd57ae Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 20 Jan 2022 12:30:07 +0100 Subject: [PATCH] regenerate passphrase if needed --- backend/src/graphql/resolver/UserResolver.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index bf4ef2a68..5221de334 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -585,11 +585,17 @@ export class UserResolver { }) const loginUserBackupRepository = await getRepository(LoginUserBackup) - const loginUserBackup = await loginUserBackupRepository - .findOneOrFail({ userId: loginUser.id }) - .catch(() => { - throw new Error('Could not find corresponding BackupUser') - }) + let loginUserBackup = await loginUserBackupRepository.findOne({ userId: loginUser.id }) + + // Generate Passphrase if needed + if (!loginUserBackup) { + const passphrase = PassphraseGenerate() + loginUserBackup = new LoginUserBackup() + loginUserBackup.userId = loginUser.id + loginUserBackup.passphrase = passphrase.join(' ') + ' ' // login server saves trailing space + loginUserBackup.mnemonicType = 2 // ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER; + loginUserBackupRepository.save(loginUserBackup) + } const passphrase = loginUserBackup.passphrase.slice(0, -1).split(' ') if (passphrase.length < PHRASE_WORD_COUNT) {