chore(exams): allow email for exam result entry as well

This commit is contained in:
Steffen Jost 2025-02-24 16:12:22 +01:00
parent 89b0d87bde
commit 515eddc032

View File

@ -1,4 +1,4 @@
-- SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Sarah Vaupel <vaupel.sarah@campus.lmu.de> -- SPDX-FileCopyrightText: 2022-25 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Sarah Vaupel <vaupel.sarah@campus.lmu.de>,Steffen Jost <s.jost@fraport.de>
-- --
-- SPDX-License-Identifier: AGPL-3.0-or-later -- SPDX-License-Identifier: AGPL-3.0-or-later
@ -20,6 +20,7 @@ import Handler.Utils.Exam (fetchExam)
import Utils.Exam.Correct import Utils.Exam.Correct
{-# ANN module ("HLint: ignore Functor law" :: String) #-}
-- | Minimum length of a participant identifier. Identifiers that are shorter would result in too many query results and are therefor rejected. -- | Minimum length of a participant identifier. Identifiers that are shorter would result in too many query results and are therefor rejected.
minNeedleLength :: Int minNeedleLength :: Int
@ -84,14 +85,16 @@ postECorrectR tid ssh csh examn = do
mUserIdent = euid ^? _Left mUserIdent = euid ^? _Left
E.where_ $ uidMatch E.where_ $ uidMatch
E.||. (case mUserIdent of E.||. (case mUserIdent of
Just userIdent -> user E.^. UserSurname E.==. E.val userIdent Just userIdent -> user E.^. UserSurname E.==. E.val userIdent
E.||. user E.^. UserSurname `E.hasInfix` E.val userIdent E.||. user E.^. UserSurname `E.hasInfix` E.val userIdent
E.||. user E.^. UserFirstName E.==. E.val userIdent E.||. user E.^. UserFirstName E.==. E.val userIdent
E.||. user E.^. UserFirstName `E.hasInfix` E.val userIdent E.||. user E.^. UserFirstName `E.hasInfix` E.val userIdent
E.||. user E.^. UserDisplayName E.==. E.val userIdent E.||. user E.^. UserDisplayName E.==. E.val userIdent
E.||. user E.^. UserDisplayName `E.hasInfix` E.val userIdent E.||. user E.^. UserDisplayName `E.hasInfix` E.val userIdent
E.||. user E.^. UserMatrikelnummer E.==. E.val mUserIdent E.||. user E.^. UserMatrikelnummer E.==. E.val mUserIdent
E.||. user E.^. UserMatrikelnummer `E.hasInfix` E.val mUserIdent E.||. user E.^. UserMatrikelnummer `E.hasInfix` E.val mUserIdent
E.||. user E.^. UserEmail E.==. E.val (userIdent & CI.mk)
E.||. user E.^. UserDisplayEmail E.==. E.val (userIdent & CI.mk)
Nothing -> E.val False) Nothing -> E.val False)
E.limit $ succ maxCountUserMatches E.limit $ succ maxCountUserMatches
return user return user