chore(jobs): use userLookupAndUpsert for synchronise user job
This commit is contained in:
parent
2480efc345
commit
969cc4df63
@ -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{..}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user