From 885de4403c0172b3e9c3b59c277628106a7e925b Mon Sep 17 00:00:00 2001 From: Sarah Vaupel <> Date: Wed, 16 Sep 2020 15:42:57 +0200 Subject: [PATCH] fix(eexamlistr): allow access for users with exam results --- src/Foundation/Authorization.hs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Foundation/Authorization.hs b/src/Foundation/Authorization.hs index 0997791f4..9b7b211bd 100644 --- a/src/Foundation/Authorization.hs +++ b/src/Foundation/Authorization.hs @@ -1196,6 +1196,10 @@ tagAccessPredicate AuthEmpty = APDB $ \mAuthId route _ -> case route of hasExternalExams <- $cachedHereBinary authId . lift . E.selectExists . E.from $ \(eexam `E.InnerJoin` eexamStaff) -> do E.on $ eexam E.^. ExternalExamId E.==. eexamStaff E.^. ExternalExamStaffExam E.where_ $ eexamStaff E.^. ExternalExamStaffUser E.==. E.val authId + E.||. E.exists (E.from $ \externalExamResult -> + E.where_ $ externalExamResult E.^. ExternalExamResultExam E.==. eexam E.^. ExternalExamId + E.&&. externalExamResult E.^. ExternalExamResultUser E.==. E.val authId + ) guardMExceptT (not hasExternalExams) $ unauthorizedI MsgUnauthorizedExternalExamListNotEmpty return Authorized CourseR tid ssh csh _ -> maybeT (unauthorizedI MsgCourseNotEmpty) $ do