From 2490f8e69f7016b63b80e3572ed214ac196ea3c9 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Wed, 21 Feb 2024 07:08:56 +0100 Subject: [PATCH] chore(users): add password to user data for addNewUser --- src/Handler/Users/Add.hs | 13 +++++-------- src/Utils/Users.hs | 6 ++---- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/Handler/Users/Add.hs b/src/Handler/Users/Add.hs index c168009af..5537c7d8c 100644 --- a/src/Handler/Users/Add.hs +++ b/src/Handler/Users/Add.hs @@ -1,4 +1,4 @@ --- SPDX-FileCopyrightText: 2022-2023 Gregor Kleen , Sarah Vaupel , Steffen Jost , Winnie Ros +-- SPDX-FileCopyrightText: 2022-2024 Sarah Vaupel , Gregor Kleen , Sarah Vaupel , Steffen Jost , Winnie Ros -- -- SPDX-License-Identifier: AGPL-3.0-or-later @@ -35,21 +35,18 @@ adminUserForm template = renderAForm FormStandard <*> aopt (textField & cfStrip) (fslI MsgAdminUserPinPassword) (audPinPassword <$> template) <*> areq (emailField & cfCI) (fslI MsgAdminUserEmail) (audEmail <$> template) <*> areq (textField & cfStrip & cfCI) (fslI MsgAdminUserIdent) (audIdent <$> template) - <*> areq (selectField optionsFinite) (fslI MsgAdminUserAuth & setTooltip MsgAdminUserAuthTooltip) (audAuth <$> template <|> Just AuthKindLDAP) - <*> aopt uuidField (fslI MsgAdminUserAzureId) (audAzureId <$> template) + <*> aopt passwordField (fslI MsgAdminUserPassword) (audPassword <$> template) --- | Like `addNewUser`, but starts background jobs and tries to notify users, if applicable (i.e. /= AuthNoLogin ) +-- | Like `addNewUser`, but starts background jobs and tries to notify users addNewUserNotify :: AddUserData -> Handler (Maybe UserId) addNewUserNotify aud = do mbUid <- addNewUser aud case mbUid of Nothing -> return Nothing Just uid -> runDBJobs $ do - queueDBJob $ JobSynchroniseUserdbUser uid - let authKind = audAuth aud - when (authKind /= AuthKindNoLogin) $ + queueDBJob $ JobSynchroniseUser uid + when (is _Just $ audPassword aud) $ do queueDBJob . JobQueueNotification $ NotificationUserAuthModeUpdate uid - when (authKind == AuthKindPWHash) $ queueDBJob $ JobSendPasswordReset uid return $ Just uid diff --git a/src/Utils/Users.hs b/src/Utils/Users.hs index 20b9bcd37..946bfc080 100644 --- a/src/Utils/Users.hs +++ b/src/Utils/Users.hs @@ -12,9 +12,6 @@ module Utils.Users import Import --- TODO: addNewUser might be redundant; use upsertUser instead? - - data AddUserData = AddUserData { audTitle :: Maybe Text , audFirstName :: Text @@ -33,6 +30,7 @@ data AddUserData = AddUserData , audPinPassword :: Maybe Text , audEmail :: UserEmail , audIdent :: UserIdent + , audPassword :: Maybe Text } @@ -45,7 +43,7 @@ addNewUser AddUserData{..} = do newUser = User { userIdent = audIdent , userLastAuthentication = Nothing - , userPasswordHash = Nothing + , userPasswordHash = audPassword , userMaxFavourites = userDefaultMaxFavourites , userMaxFavouriteTerms = userDefaultMaxFavouriteTerms , userTheme = userDefaultTheme