fix(curriculum): robustly normalize student grade across app and backend to display subjects

This commit is contained in:
Hamza-Ayed
2026-09-09 01:28:31 +03:00
parent a8e895d5da
commit a4d6e34a40
4 changed files with 55 additions and 24 deletions
+7 -4
View File
@@ -514,9 +514,11 @@ class AuthController
[$userId]
);
if ($user) {
if (($user['grade_level'] ?? '') === 'tawjihi_2008') {
Database::query("UPDATE students SET grade_level = 'grade_10', updated_at = NOW() WHERE id = ?", [$userId]);
$user['grade_level'] = 'grade_10';
$rawGrade = (string)($user['grade_level'] ?? 'grade_10');
$normGrade = \App\Services\StudentAccessControlService::normalizeGrade($rawGrade);
if ($rawGrade === 'tawjihi_2008' || $rawGrade !== $normGrade) {
Database::query("UPDATE students SET grade_level = ?, updated_at = NOW() WHERE id = ?", [$normGrade, $userId]);
$user['grade_level'] = $normGrade;
}
$isCompleted = !empty($user['full_name']) && $user['full_name'] !== 'طالب جديد' && $user['full_name'] !== 'الطالب المتميز' && !empty($user['grade_level']);
$userData = [
@@ -669,7 +671,8 @@ class AuthController
$identityToken = $body['identity_token'] ?? '';
$fullName = trim((string)($body['full_name'] ?? ''));
$gradeLevel = trim((string)($body['grade_level'] ?? 'grade_10'));
$rawGrade = trim((string)($body['grade_level'] ?? 'grade_10'));
$gradeLevel = \App\Services\StudentAccessControlService::normalizeGrade($rawGrade);
$stream = trim((string)($body['stream'] ?? 'scientific'));
$nationalId = trim((string)($body['national_id'] ?? ''));
$deviceFingerprint = trim((string)($request->getHeader('x-device-fingerprint', '')));