From 969cc4df63bf552ce152dc0c012a31ef07fceb44 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Fri, 8 Mar 2024 09:56:27 +0100 Subject: [PATCH] chore(jobs): use userLookupAndUpsert for synchronise user job --- src/Jobs/Handler/SynchroniseUser.hs | 35 ++++++----------------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/src/Jobs/Handler/SynchroniseUser.hs b/src/Jobs/Handler/SynchroniseUser.hs index 883dc8ca6..231dd851d 100644 --- a/src/Jobs/Handler/SynchroniseUser.hs +++ b/src/Jobs/Handler/SynchroniseUser.hs @@ -9,11 +9,10 @@ module Jobs.Handler.SynchroniseUser import Import -import qualified Data.Conduit.List as C +import Foundation.Yesod.Auth (userLookupAndUpsert) -import Auth.LDAP -import Auth.OAuth2 -import Foundation.Yesod.Auth (UserConversionException, upsertUser) +import qualified Data.CaseInsensitive as CI +import qualified Data.Conduit.List as C import Jobs.Queue @@ -43,27 +42,7 @@ dispatchJobSynchroniseUsers numIterations epoch iteration return $ JobSynchroniseUser userId dispatchJobSynchroniseUser :: UserId -> JobHandler UniWorX -dispatchJobSynchroniseUser jUser = JobHandlerException $ do - userSourceConf <- getsYesod $ view _appUserAuthConf - case userSourceConf of - UserAuthConfSingleSource (AuthSourceConfLdap _ldapConf) -> - runDB . void . runMaybeT . handleExc $ do - ldapPool@(upsertUserLdapConf,_) <- MaybeT . getsYesod $ view _appLdapPool - user@User{userIdent = upsertUserIdent} <- MaybeT $ get jUser - $logInfoS "SynchroniseUser" [st|Synchronising #{upsertUserIdent} with LDAP|] - -- reTestAfter <- getsYesod $ view _appUserdbRetestFailover - -- ldapAttrs <- MaybeT $ campusUserReTest' ldapConf ((>= reTestAfter) . realToFrac) FailoverUnlimited user - upsertUserLdapData <- MaybeT $ ldapUser' ldapPool user - void . lift $ upsertUser UpsertUserSync{..} UpsertUserDataLdap{..} - UserAuthConfSingleSource (AuthSourceConfAzureAdV2 upsertUserAzureConf) -> - runDB . void . runMaybeT . handleExc $ do - user@User{userIdent = upsertUserIdent} <- MaybeT $ get jUser - $logInfoS "SynchroniseUser" [st|Synchronising #{upsertUserIdent} with Azure|] - upsertUserAzureData <- MaybeT $ azureUser' upsertUserAzureConf user - void . lift $ upsertUser UpsertUserSync{..} UpsertUserDataAzure{..} - where - handleExc :: MaybeT DB a -> MaybeT DB a - handleExc - = catchMPlus (Proxy @AzureUserException) - . catchMPlus (Proxy @LdapUserException) - . catchMPlus (Proxy @UserConversionException) +dispatchJobSynchroniseUser jUser = JobHandlerException . runDB $ do + User{userIdent = upsertUserIdent} <- getJust jUser + $logInfoS "SynchroniseUser" [st|Synchronising #{upsertUserIdent} with external sources|] + void $ userLookupAndUpsert (CI.original upsertUserIdent) UpsertUserSync{..}