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 Import
|
||||||
|
|
||||||
import qualified Data.Conduit.List as C
|
import Foundation.Yesod.Auth (userLookupAndUpsert)
|
||||||
|
|
||||||
import Auth.LDAP
|
import qualified Data.CaseInsensitive as CI
|
||||||
import Auth.OAuth2
|
import qualified Data.Conduit.List as C
|
||||||
import Foundation.Yesod.Auth (UserConversionException, upsertUser)
|
|
||||||
|
|
||||||
import Jobs.Queue
|
import Jobs.Queue
|
||||||
|
|
||||||
@ -43,27 +42,7 @@ dispatchJobSynchroniseUsers numIterations epoch iteration
|
|||||||
return $ JobSynchroniseUser userId
|
return $ JobSynchroniseUser userId
|
||||||
|
|
||||||
dispatchJobSynchroniseUser :: UserId -> JobHandler UniWorX
|
dispatchJobSynchroniseUser :: UserId -> JobHandler UniWorX
|
||||||
dispatchJobSynchroniseUser jUser = JobHandlerException $ do
|
dispatchJobSynchroniseUser jUser = JobHandlerException . runDB $ do
|
||||||
userSourceConf <- getsYesod $ view _appUserAuthConf
|
User{userIdent = upsertUserIdent} <- getJust jUser
|
||||||
case userSourceConf of
|
$logInfoS "SynchroniseUser" [st|Synchronising #{upsertUserIdent} with external sources|]
|
||||||
UserAuthConfSingleSource (AuthSourceConfLdap _ldapConf) ->
|
void $ userLookupAndUpsert (CI.original upsertUserIdent) UpsertUserSync{..}
|
||||||
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)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user