chore(jobs): upsertAzureUser on synchronise user job with azure config

This commit is contained in:
Sarah Vaupel 2024-01-30 21:52:30 +01:00
parent 24dbaf36bc
commit f39de71c02

View File

@ -11,8 +11,10 @@ import Import
import qualified Data.CaseInsensitive as CI
import qualified Data.Conduit.List as C
import qualified Data.UUID as UUID
import Auth.LDAP
import Auth.OAuth2
import Foundation.Yesod.Auth (CampusUserConversionException, upsertLdapUser, upsertAzureUser)
import Jobs.Queue
@ -44,23 +46,25 @@ dispatchJobSynchroniseUserdb numIterations epoch iteration
dispatchJobSynchroniseUserdbUser :: UserId -> JobHandler UniWorX
dispatchJobSynchroniseUserdbUser jUser = JobHandlerException $ do
UniWorX{..} <- getYesod
case appUserSourceConf of
UserSourceConfSingleSource (UserSourceLdap ldapConf) ->
userSourceConf <- getsYesod $ view _appUserSourceConf
case userSourceConf of
UserSourceConfSingleSource (UserSourceLdap _ldapConf) ->
runDB . void . runMaybeT . handleExc $ do
ldapPool <- MaybeT . getsYesod $ view _appLdapPool
user@User{userIdent,userLdapPrimaryKey} <- MaybeT $ get jUser
let upsertIdent = maybe userIdent CI.mk userLdapPrimaryKey
$logInfoS "SynchroniseUserdb" [st|Synchronising #{upsertIdent} with LDAP|]
-- reTestAfter <- getsYesod $ view _appUserdbRetestFailover
-- ldapAttrs <- MaybeT $ campusUserReTest' ldapConf ((>= reTestAfter) . realToFrac) FailoverUnlimited user
ldapAttrs <- MaybeT $ ldapUser ldapConf user
ldapAttrs <- MaybeT $ ldapUser' ldapPool user
void . lift $ upsertLdapUser (UpsertUserSync upsertIdent) ldapAttrs
UserSourceConfSingleSource (UserSourceAzureAdV2 azureConf) ->
runDB . void . runMaybeT . handleExc $ do
user@User{userIdent,userAzurePrimaryKey} <- MaybeT $ get jUser
let upsertIdent = maybe userIdent CI.mk userAzurePrimaryKey
let upsertIdent = maybe userIdent (CI.mk . UUID.toText) userAzurePrimaryKey -- TODO: use userPrincipalName
$logInfoS "SynchroniseUserdb" [st|Synchronising #{upsertIdent} with Azure|]
void . lift $ upsertAzureUser (UpsertUserSync upsertIdent) azureConf
azureAttrs <- MaybeT $ azureUser' azureConf user
void . lift $ upsertAzureUser (UpsertUserSync upsertIdent) azureAttrs
where
handleExc :: MaybeT DB a -> MaybeT DB a
handleExc