From 6c75705cc3d9e22d3805e1d51484821dd1b16398 Mon Sep 17 00:00:00 2001 From: Claus-Peter Huebner Date: Tue, 12 Mar 2024 00:07:50 +0100 Subject: [PATCH] overwork update gms attributes, mocking gms still open --- backend/src/graphql/resolver/UserResolver.ts | 3 ++- .../util/compareGmsRelevantUserSettings.ts | 20 +++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index eb2368e4e..261d84caa 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -562,6 +562,7 @@ export class UserResolver { `updateUserInfos(${firstName}, ${lastName}, ${alias}, ${language}, ***, ***, ${hideAmountGDD}, ${hideAmountGDT}, ${gmsAllowed}, ${gmsPublishName}, ${gmsLocation}, ${gmsPublishLocation})...`, ) const user = getUser(context) + const updateUserInGMS = compareGmsRelevantUserSettings(user, updateUserInfosArgs) // try { if (firstName) { @@ -645,7 +646,7 @@ export class UserResolver { await EVENT_USER_INFO_UPDATE(user) // validate if user settings are changed with relevance to update gms-user - if (CONFIG.GMS_ACTIVE && compareGmsRelevantUserSettings(user, updateUserInfosArgs)) { + if (CONFIG.GMS_ACTIVE && updateUserInGMS) { logger.debug(`changed user-settings relevant for gms-user update...`) const homeCom = await getHomeCommunity() if (homeCom.gmsApiKey !== null) { diff --git a/backend/src/graphql/resolver/util/compareGmsRelevantUserSettings.ts b/backend/src/graphql/resolver/util/compareGmsRelevantUserSettings.ts index ac99aca29..e40cdcdfe 100644 --- a/backend/src/graphql/resolver/util/compareGmsRelevantUserSettings.ts +++ b/backend/src/graphql/resolver/util/compareGmsRelevantUserSettings.ts @@ -2,6 +2,7 @@ import { Point } from '@dbTools/typeorm' import { User as DbUser } from '@entity/User' import { UpdateUserInfosArgs } from '@/graphql/arg/UpdateUserInfosArgs' +import { GmsPublishNameType } from '@/graphql/enum/GmsPublishNameType' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' @@ -15,7 +16,18 @@ export function compareGmsRelevantUserSettings( throw new LogError('comparison without any user is impossible') } logger.debug('compareGmsRelevantUserSettings:', orgUser, updateUserInfosArgs) - if (updateUserInfosArgs.alias && orgUser.alias !== updateUserInfosArgs.alias) { + // nach GMS updaten, wenn alias gesetzt wird oder ist und PublishLevel die alias-Übermittlung erlaubt + if ( + updateUserInfosArgs.alias && + orgUser.alias !== updateUserInfosArgs.alias && + ((updateUserInfosArgs.gmsPublishName && + updateUserInfosArgs.gmsPublishName.valueOf === + GmsPublishNameType.GMS_PUBLISH_NAME_ALIAS_OR_INITALS.valueOf) || + (!updateUserInfosArgs.gmsPublishName && + orgUser.gmsPublishName && + orgUser.gmsPublishName.valueOf === + GmsPublishNameType.GMS_PUBLISH_NAME_ALIAS_OR_INITALS.valueOf)) + ) { return true } if ( @@ -24,7 +36,11 @@ export function compareGmsRelevantUserSettings( ) { return true } - if (updateUserInfosArgs.gmsAllowed && orgUser.gmsAllowed !== updateUserInfosArgs.gmsAllowed) { + if ( + updateUserInfosArgs.gmsAllowed !== undefined && + updateUserInfosArgs.gmsAllowed && + orgUser.gmsAllowed !== updateUserInfosArgs.gmsAllowed + ) { return true } if (