From f5cd91e75268ee42a87b0efc172d2a7b9e933e1e Mon Sep 17 00:00:00 2001
From: clauspeterhuebner
Date: Wed, 10 Dec 2025 00:06:28 +0100
Subject: [PATCH] correct storing foreignUsers emailContact
---
core/src/graphql/logic/storeForeignUser.ts | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/core/src/graphql/logic/storeForeignUser.ts b/core/src/graphql/logic/storeForeignUser.ts
index 48616ba24..7f6ca2786 100644
--- a/core/src/graphql/logic/storeForeignUser.ts
+++ b/core/src/graphql/logic/storeForeignUser.ts
@@ -57,7 +57,8 @@ export async function storeForeignUser(
user.firstName !== committingResult.recipFirstName ||
user.lastName !== committingResult.recipLastName ||
user.alias !== committingResult.recipAlias ||
- user.emailContact.email !== committingResult.recipEmail
+ (user.emailContact === null && committingResult.recipEmail !== null) ||
+ (user.emailContact !== null && user.emailContact.email !== committingResult.recipEmail)
) {
logger.warn(
'foreignUser still exists, but with different name, alias or email:',
@@ -73,10 +74,22 @@ export async function storeForeignUser(
if (committingResult.recipAlias !== null) {
user.alias = committingResult.recipAlias
}
- if (committingResult.recipEmail != null) {
+ if(user.emailContact === null && committingResult.recipEmail !== null) {
+ let foreignUserEmail = DbUserContact.create()
+ foreignUserEmail.email = committingResult.recipEmail!
+ foreignUserEmail.emailChecked = true
+ foreignUserEmail.user = user
+ foreignUserEmail = await DbUserContact.save(foreignUserEmail)
+ logger.debug('new foreignUserEmail inserted:', foreignUserEmail)
+ user.emailContact = foreignUserEmail
+ user.emailId = foreignUserEmail.id
+ }
+ else if (user.emailContact !== null && committingResult.recipEmail != null) {
const userContact = user.emailContact
userContact.email = committingResult.recipEmail
user.emailContact = await DbUserContact.save(userContact)
+ user.emailId = userContact.id
+ logger.debug('foreignUserEmail updated:', userContact)
}
await DbUser.save(user)
logger.debug('update recipient successful.', user)