chore(users): tweak addNewUser to conform to new model

This commit is contained in:
Sarah Vaupel 2024-02-19 23:48:33 +01:00
parent ed54b666ec
commit 3d1908d71a
2 changed files with 5 additions and 28 deletions

View File

@ -460,8 +460,7 @@ upsertAvsUserById api = do
, audPinPassword = userPin , audPinPassword = userPin
, audEmail = fakeNo -- Email is unknown in this version of the avs query, to be updated later (FUTURE TODO) , audEmail = fakeNo -- Email is unknown in this version of the avs query, to be updated later (FUTURE TODO)
, audIdent = fakeIdent -- use AvsPersonId instead , audIdent = fakeIdent -- use AvsPersonId instead
, audAuth = maybe AuthKindNoLogin (const AuthKindAzure) avsPersonInternalPersonalNo -- FUTURE TODO: if email is known, use AuthKinfPWHash for email invite, if no internal personnel number is known --, audAuth = maybe AuthKindNoLogin (const AuthKindAzure) avsPersonInternalPersonalNo -- FUTURE TODO: if email is known, use AuthKinfPWHash for email invite, if no internal personnel number is known
, audAzureId = Nothing -- TODO
} }
mbUid <- addNewUser newUsr -- triggers JobSynchroniseUserdbUser, JobSendPasswordReset and NotificationUserAutoModeUpdate -- TODO: check if these are failsafe mbUid <- addNewUser newUsr -- triggers JobSynchroniseUserdbUser, JobSendPasswordReset and NotificationUserAutoModeUpdate -- TODO: check if these are failsafe
whenIsJust mbUid $ \uid -> runDB $ do whenIsJust mbUid $ \uid -> runDB $ do

View File

@ -5,31 +5,15 @@
{-# OPTIONS_GHC -fno-warn-unused-top-binds #-} {-# OPTIONS_GHC -fno-warn-unused-top-binds #-}
module Utils.Users module Utils.Users
( AuthenticationKind(..) ( AddUserData(..)
, AddUserData(..)
, addNewUser , addNewUser
) where ) where
import Import import Import
data AuthenticationKind = AuthKindLDAP | AuthKindAzure | AuthKindPWHash | AuthKindNoLogin -- TODO: addNewUser might be redundant; use upsertUser instead?
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic, Universe, Finite)
embedRenderMessage ''UniWorX ''AuthenticationKind id
nullaryPathPiece ''AuthenticationKind $ camelToPathPiece' 2
mkAuthMode :: AuthenticationKind -> AuthenticationMode
mkAuthMode AuthKindLDAP = AuthLDAP
mkAuthMode AuthKindAzure = AuthAzure
mkAuthMode AuthKindPWHash = AuthPWHash ""
mkAuthMode AuthKindNoLogin = AuthNoLogin
{-
classifyAuth :: AuthenticationMode -> AuthenticationKind
classifyAuth AuthLDAP = AuthKindLDAP
classifyAuth AuthPWHash{} = AuthKindPWHash
classifyAuth AuthNoLogin = AuthKindNoLogin
-}
data AddUserData = AddUserData data AddUserData = AddUserData
{ audTitle :: Maybe Text { audTitle :: Maybe Text
@ -49,8 +33,6 @@ data AddUserData = AddUserData
, audPinPassword :: Maybe Text , audPinPassword :: Maybe Text
, audEmail :: UserEmail , audEmail :: UserEmail
, audIdent :: UserIdent , audIdent :: UserIdent
, audAuth :: AuthenticationKind
, audAzureId :: Maybe UUID
} }
@ -62,6 +44,8 @@ addNewUser AddUserData{..} = do
let let
newUser = User newUser = User
{ userIdent = audIdent { userIdent = audIdent
, userLastLogin = Nothing
, userPasswordHash = Nothing
, userMaxFavourites = userDefaultMaxFavourites , userMaxFavourites = userDefaultMaxFavourites
, userMaxFavouriteTerms = userDefaultMaxFavouriteTerms , userMaxFavouriteTerms = userDefaultMaxFavouriteTerms
, userTheme = userDefaultTheme , userTheme = userDefaultTheme
@ -78,11 +62,6 @@ addNewUser AddUserData{..} = do
, userCsvOptions = def { csvFormat = review csvPreset CsvPresetXlsx } , userCsvOptions = def { csvFormat = review csvPreset CsvPresetXlsx }
, userTokensIssuedAfter = Nothing , userTokensIssuedAfter = Nothing
, userCreated = now , userCreated = now
, userLastLdapSynchronisation = Nothing
, userLdapPrimaryKey = audFPersonalNumber
, userLastAzureSynchronisation = Nothing
, userAzurePrimaryKey = audAzureId
, userLastAuthentication = Nothing
, userEmail = audEmail , userEmail = audEmail
, userDisplayName = audDisplayName , userDisplayName = audDisplayName
, userDisplayEmail = audDisplayEmail , userDisplayEmail = audDisplayEmail
@ -100,6 +79,5 @@ addNewUser AddUserData{..} = do
, userPrefersPostal = audPrefersPostal , userPrefersPostal = audPrefersPostal
, userPinPassword = audPinPassword , userPinPassword = audPinPassword
, userMatrikelnummer = audMatriculation , userMatrikelnummer = audMatriculation
, userAuthentication = mkAuthMode audAuth
} }
runDB $ insertUnique newUser runDB $ insertUnique newUser