From 49ee91c601c985262453734e0054a47772678c96 Mon Sep 17 00:00:00 2001 From: jeremy bayse Date: Tue, 14 Apr 2026 19:35:26 +0200 Subject: [PATCH] fix: bypass tenant scope in recalculateScore - null quiz when candidate finishes quiz --- app/Http/Controllers/AttemptController.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/AttemptController.php b/app/Http/Controllers/AttemptController.php index bfae613..b6f6e79 100644 --- a/app/Http/Controllers/AttemptController.php +++ b/app/Http/Controllers/AttemptController.php @@ -142,12 +142,21 @@ class AttemptController extends Controller private function recalculateScore(Attempt $attempt) { - $attempt->load(['quiz.questions.options', 'answers.option']); + // Bypass tenant scope: candidates have no tenant_id + $quiz = Quiz::withoutGlobalScopes() + ->with(['questions.options']) + ->find($attempt->quiz_id); + + $attempt->load(['answers.option']); $score = 0; $maxScore = 0; - foreach ($attempt->quiz->questions as $question) { + if (!$quiz) { + return; + } + + foreach ($quiz->questions as $question) { $maxScore += $question->points; $userAnswer = $attempt->answers->where('question_id', $question->id)->first();