From e2a8feee3b186881fb2b323ed9fd9e0cc93787c8 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Thu, 23 Feb 2023 12:17:49 +0100 Subject: [PATCH] fix(avs): update names from avs too --- src/Handler/Utils/Avs.hs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Handler/Utils/Avs.hs b/src/Handler/Utils/Avs.hs index db27e663b..1bd028aa0 100644 --- a/src/Handler/Utils/Avs.hs +++ b/src/Handler/Utils/Avs.hs @@ -430,13 +430,19 @@ upsertAvsUserById api = do upsertUserCompany uid mbCompany userFirmAddr return mbUid - (Just (Entity _ UserAvs{userAvsUser=uid}), Just AvsDataPerson{avsPersonPersonCards}) -> do -- known user, update address and pinPassword + (Just (Entity _ UserAvs{userAvsUser=uid}) + , Just AvsDataPerson{avsPersonPersonCards, avsPersonInternalPersonalNo, avsPersonFirstName= Text.strip -> avsFirstName, avsPersonLastName= Text.strip -> avsSurname}) -> do -- known user, update address and pinPassword let (mbCompany, mbCoFirmAddr, _) = guessLicenceAddress avsPersonPersonCards - userFirmAddr= plaintextToStoredMarkup <$> mbCoFirmAddr - pinCard = Set.lookupMax avsPersonPersonCards - userPin = personCard2pin <$> pinCard + userFirmAddr = plaintextToStoredMarkup <$> mbCoFirmAddr + pinCard = Set.lookupMax avsPersonPersonCards + userPin = personCard2pin <$> pinCard + now <- liftIO getCurrentTime runDB $ do - now <- liftIO getCurrentTime + update uid [ UserFirstName =. avsFirstName -- update in case of name changes via AVS; might be changed again through LDAP + , UserSurname =. avsSurname + , UserDisplayName =. avsFirstName <> Text.cons ' ' avsSurname + , UserCompanyPersonalNumber =. avsInternalPersonalNo <$> canonical avsPersonInternalPersonalNo + ] oldCards <- selectList [UserAvsCardPersonId ==. api] [] let oldAddrs = Set.fromList $ mapMaybe (snd3 . getCompanyAddress . userAvsCardCard . entityVal) oldCards unless (maybe True (`Set.member` oldAddrs) mbCoFirmAddr) $ do -- update postal address, unless the exact address had been seen before