From 9e2f2214ce5c7ee1e8d80e6fa75298b7a70d9043 Mon Sep 17 00:00:00 2001 From: Steffen Date: Tue, 2 Jul 2024 15:27:56 +0200 Subject: [PATCH] fix(avs): do not associate users by AvsInfoPersonEmail --- src/Handler/Utils/Avs.hs | 12 ++++++------ src/Handler/Utils/AvsUpdate.hs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Handler/Utils/Avs.hs b/src/Handler/Utils/Avs.hs index 0fce84082..b53d1c097 100644 --- a/src/Handler/Utils/Avs.hs +++ b/src/Handler/Utils/Avs.hs @@ -484,18 +484,18 @@ createAvsUserById muid api = do case Set.toList contactRes of [] -> throwM $ AvsUserUnknownByAvs api (_:_:_) -> throwM $ AvsUserAmbiguous api - [AvsDataContact{avsContactPersonInfo=cpi, avsContactFirmInfo=firmInfo, avsContactPersonID}] + [adc@AvsDataContact{avsContactPersonInfo=cpi, avsContactFirmInfo=firmInfo, avsContactPersonID}] | avsContactPersonID /= api -> throwM $ AvsIdMismatch api avsContactPersonID | otherwise -> do -- check for matching existing user let internalPersNo :: Maybe Text = cpi ^? _avsInfoInternalPersonalNo . _Just . _avsInternalPersonalNo - persMail :: Maybe UserEmail = cpi ^? _avsInfoPersonEMail . _Just . from _CI + -- persMail :: Maybe UserEmail = cpi ^? _avsInfoPersonEMail . _Just . from _CI oldUsr <- runDB $ do mbUid <- if isJust muid then return muid else firstJustM $ catMaybes [ internalPersNo <&> (\ipn -> getKeyByFilter [UserCompanyPersonalNumber ==. Just ipn]) -- must ensure filter isnt ==. Nothing - , persMail <&> guessUserByEmail + -- , persMail <&> guessUserByEmail -- this did not work, as unfortunately, superiors are sometimes listed under _avsInfoPersonEMail! ] mbUAvs <- (getBy . UniqueUserAvsUser) `traverseJoin` mbUid return (mbUid, mbUAvs) @@ -533,9 +533,9 @@ createAvsUserById muid api = do , audFirstName = cpi ^. _avsInfoFirstName & Text.strip , audSurname = cpi ^. _avsInfoLastName & Text.strip , audDisplayName = cpi ^. _avsInfoDisplayName - , audDisplayEmail = persMail & fromMaybe mempty - , audEmail = persMail & fromMaybe ("AVSNO:" <> cpi ^. _avsInfoPersonNo . from _CI) - , audIdent = persMail & fromMaybe ("AVSID:" <> ciShow api ) + , audDisplayEmail = adc ^. _avsContactPrimaryEmail . to (fromMaybe mempty) . from _CI + , audEmail = "AVSNO:" <> cpi ^. _avsInfoPersonNo . from _CI + , audIdent = "AVSID:" <> ciShow api , audAuth = maybe AuthKindNoLogin (const AuthKindLDAP) internalPersNo , audMatriculation = cpi ^. _avsInfoPersonNo & Just , audSex = Nothing diff --git a/src/Handler/Utils/AvsUpdate.hs b/src/Handler/Utils/AvsUpdate.hs index 8a88cb6b0..5ff7c55fa 100644 --- a/src/Handler/Utils/AvsUpdate.hs +++ b/src/Handler/Utils/AvsUpdate.hs @@ -109,7 +109,7 @@ data CU_UserAvs_User | CU_UA_UserMatrikelnummer | CU_UA_UserCompanyPersonalNumber | CU_UA_UserLdapPrimaryKey - -- CU_UA_UserDisplayEmail -- use _avsContactPrimaryEmailAddress instead + -- CU_UA_UserDisplayEmail -- use _avsContactPrimaryEmail instead deriving (Show, Eq) instance MkCheckUpdate CU_UserAvs_User where