diff --git a/src/Handler/Users.hs b/src/Handler/Users.hs index 3f3f6660d..890f6fce7 100644 --- a/src/Handler/Users.hs +++ b/src/Handler/Users.hs @@ -44,7 +44,7 @@ import Data.Aeson hiding (Result(..)) -- import Handler.Users.Add as Handler.Users -import qualified Data.Conduit.List as C +-- import qualified Data.Conduit.List as C import qualified Data.HashSet as HashSet @@ -424,7 +424,8 @@ postUsersR = do formResult allUsersRes $ \case AllUsersLdapSync -> do - runDBJobs . runConduit $ selectSource [] [] .| C.mapM_ (queueDBJob . JobSynchroniseLdapUser . entityKey) + -- runDBJobs . runConduit $ selectSource [] [] .| C.mapM_ (queueDBJob . JobSynchroniseLdapUser . entityKey) -- to slow to execute directly + queueJob' JobSynchroniseLdapAll addMessageI Success MsgSynchroniseLdapAllUsersQueued redirect UsersR AllUsersAvsSync -> do diff --git a/src/Jobs/Handler/SynchroniseLdap.hs b/src/Jobs/Handler/SynchroniseLdap.hs index c0fc5758a..2b14ace76 100644 --- a/src/Jobs/Handler/SynchroniseLdap.hs +++ b/src/Jobs/Handler/SynchroniseLdap.hs @@ -3,7 +3,9 @@ -- SPDX-License-Identifier: AGPL-3.0-or-later module Jobs.Handler.SynchroniseLdap - ( dispatchJobSynchroniseLdap, dispatchJobSynchroniseLdapUser + ( dispatchJobSynchroniseLdap + , dispatchJobSynchroniseLdapUser + , dispatchJobSynchroniseLdapAll , SynchroniseLdapException(..) ) where @@ -49,7 +51,7 @@ dispatchJobSynchroniseLdapUser jUser = JobHandlerException $ do Just ldapPool -> runDB . void . runMaybeT . handleExc $ do user@User{userIdent,userLdapPrimaryKey} <- MaybeT $ get jUser - let upsertIdent = maybe userIdent CI.mk userLdapPrimaryKey + let upsertIdent = maybe userIdent CI.mk userLdapPrimaryKey $logInfoS "SynchroniseLdap" [st|Synchronising #{upsertIdent}|] reTestAfter <- getsYesod $ view _appLdapReTestFailover @@ -62,3 +64,6 @@ dispatchJobSynchroniseLdapUser jUser = JobHandlerException $ do handleExc = catchMPlus (Proxy @CampusUserException) . catchMPlus (Proxy @CampusUserConversionException) + +dispatchJobSynchroniseLdapAll :: JobHandler UniWorX +dispatchJobSynchroniseLdapAll = JobHandlerAtomic . runConduit $ selectSource [] [] .| C.mapM_ (queueDBJob . JobSynchroniseLdapUser . entityKey) \ No newline at end of file diff --git a/src/Jobs/Types.hs b/src/Jobs/Types.hs index 24bb89c3a..77e27c963 100644 --- a/src/Jobs/Types.hs +++ b/src/Jobs/Types.hs @@ -97,6 +97,7 @@ data Job , jIteration :: Natural } | JobSynchroniseLdapUser { jUser :: UserId } + | JobSynchroniseLdapAll | JobSynchroniseAvs { jNumIterations , jEpoch , jIteration :: Natural @@ -350,6 +351,7 @@ jobNoQueueSame = \case JobDeleteTransactionLogIPs{} -> Just JobNoQueueSame JobSynchroniseLdap{} -> Just JobNoQueueSame JobSynchroniseLdapUser{} -> Just JobNoQueueSame + JobSynchroniseLdapAll{} -> Just JobNoQueueSameTag JobSynchroniseAvs{} -> Just JobNoQueueSame -- JobSynchroniseAvsUser{} -> Just JobNoQueueSame -- JobSynchroniseAvsId{} -> Just JobNoQueueSame