chore(users): tweak assimilateUsers for new config
This commit is contained in:
parent
9bf7033eac
commit
8a353c357f
@ -27,17 +27,16 @@ import Import
|
|||||||
import Auth.LDAP (ldapUserMatr')
|
import Auth.LDAP (ldapUserMatr')
|
||||||
import Foundation.Yesod.Auth (upsertUser)
|
import Foundation.Yesod.Auth (upsertUser)
|
||||||
|
|
||||||
import Crypto.Hash (hashlazy)
|
-- import Crypto.Hash (hashlazy)
|
||||||
|
|
||||||
import Data.ByteArray (constEq)
|
import Data.ByteArray (constEq)
|
||||||
import Data.Maybe (fromJust)
|
import Data.Maybe (fromJust)
|
||||||
import qualified Data.List.NonEmpty as NonEmpty (fromList)
|
import qualified Data.List.NonEmpty as NonEmpty (fromList)
|
||||||
|
|
||||||
import qualified Data.Aeson as JSON
|
-- import qualified Data.Aeson as JSON
|
||||||
import qualified Data.Aeson.Types as JSON
|
import qualified Data.Aeson.Types as JSON
|
||||||
|
|
||||||
import qualified Data.Set as Set
|
import qualified Data.Set as Set
|
||||||
-- import qualified Data.List as List
|
|
||||||
import qualified Data.CaseInsensitive as CI
|
import qualified Data.CaseInsensitive as CI
|
||||||
|
|
||||||
import Database.Esqueleto.Experimental ((:&)(..))
|
import Database.Esqueleto.Experimental ((:&)(..))
|
||||||
@ -235,11 +234,12 @@ guessUser (((Set.toList . toNullable) <$>) . Set.toList . dnfTerms -> criteria)
|
|||||||
| EQ <- x `closeness` x' = x : takeClosest (x':xs)
|
| EQ <- x `closeness` x' = x : takeClosest (x':xs)
|
||||||
| otherwise = [x]
|
| otherwise = [x]
|
||||||
|
|
||||||
|
-- TODO: Generalize
|
||||||
doLdap userMatr = do
|
doLdap userMatr = do
|
||||||
ldapPool' <- getsYesod $ view _appLdapPool
|
ldapPool' <- getsYesod $ view _appLdapPool
|
||||||
fmap join . for ldapPool' $ \ldapPool -> do
|
fmap join . for ldapPool' $ \ldapPool@(upsertUserLdapConf,_) -> do
|
||||||
ldapData <- ldapUserMatr' ldapPool userMatr
|
ldapData <- ldapUserMatr' ldapPool userMatr
|
||||||
for ldapData $ upsertLdapUser UpsertUserGuessUser
|
for ldapData $ \upsertUserLdapData -> upsertUser UpsertUserGuessUser UpsertUserDataLdap{..}
|
||||||
|
|
||||||
let
|
let
|
||||||
getTermMatr :: [PredLiteral GuessUserInfo] -> Maybe UserMatriculation
|
getTermMatr :: [PredLiteral GuessUserInfo] -> Maybe UserMatriculation
|
||||||
@ -909,9 +909,8 @@ assimilateUser newUserId oldUserId = mapReaderT execWriterT $ do
|
|||||||
mergeMaybe = mergeBy (\oldV newV -> isNothing newV && isJust oldV)
|
mergeMaybe = mergeBy (\oldV newV -> isNothing newV && isJust oldV)
|
||||||
|
|
||||||
update newUserId $ catMaybes -- NOTE: persist does shortcircuit null updates as expected
|
update newUserId $ catMaybes -- NOTE: persist does shortcircuit null updates as expected
|
||||||
[ mergeMaybe UserLdapPrimaryKey
|
[ mergeMaybe UserPasswordHash
|
||||||
, mergeBy (<) UserAuthentication
|
, mergeBy (>) UserLastLogin
|
||||||
, mergeBy (>) UserLastAuthentication
|
|
||||||
, mergeBy (<) UserCreated
|
, mergeBy (<) UserCreated
|
||||||
, toMaybe (not (validEmail' (newUser ^. _userEmail )) && validEmail' (oldUser ^. _userEmail))
|
, toMaybe (not (validEmail' (newUser ^. _userEmail )) && validEmail' (oldUser ^. _userEmail))
|
||||||
(UserEmail =. oldUser ^. _userEmail)
|
(UserEmail =. oldUser ^. _userEmail)
|
||||||
|
|||||||
Reference in New Issue
Block a user