From f0356b3da1874997cc76a148b2c34d110f645e7d Mon Sep 17 00:00:00 2001 From: ChesnoTech <263363000+ChesnoTech@users.noreply.github.com> Date: Thu, 26 Mar 2026 12:01:00 +0300 Subject: [PATCH] Fix: remove preferred_server from technician UPDATE + accept id alias - handle_update_tech tried to UPDATE preferred_server column (doesn't exist) - Also accept 'id' as alias for 'tech_id' in update payload - Removes preferred_server validation that blocked updates Found during interactive CRUD testing on fresh Docker stack. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../controllers/admin/TechniciansController.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/FINAL_PRODUCTION_SYSTEM/controllers/admin/TechniciansController.php b/FINAL_PRODUCTION_SYSTEM/controllers/admin/TechniciansController.php index 72760b2..9980625 100644 --- a/FINAL_PRODUCTION_SYSTEM/controllers/admin/TechniciansController.php +++ b/FINAL_PRODUCTION_SYSTEM/controllers/admin/TechniciansController.php @@ -182,10 +182,9 @@ function handle_update_tech(PDO $pdo, array $admin_session, ?array $json_input = return; } - $techId = intval($input['tech_id'] ?? 0); + $techId = intval($input['tech_id'] ?? $input['id'] ?? 0); $fullName = trim($input['full_name'] ?? ''); $email = trim($input['email'] ?? ''); - $preferredServer = $input['preferred_server'] ?? 'oem'; $preferredLang = preg_replace('/[^a-z]/', '', strtolower($input['preferred_language'] ?? 'en')); if (empty($preferredLang)) $preferredLang = 'en'; $isActive = intval($input['is_active'] ?? 0); @@ -200,17 +199,12 @@ function handle_update_tech(PDO $pdo, array $admin_session, ?array $json_input = return; } - if (!in_array($preferredServer, ['oem', 'alternative'], true)) { - jsonResponse(['success' => false, 'error' => 'Invalid preferred server']); - return; - } - $stmt = $pdo->prepare(" UPDATE technicians - SET full_name = ?, email = ?, preferred_server = ?, preferred_language = ?, is_active = ? + SET full_name = ?, email = ?, preferred_language = ?, is_active = ? WHERE id = ? "); - $stmt->execute([$fullName, $email, $preferredServer, $preferredLang, $isActive, $techId]); + $stmt->execute([$fullName, $email, $preferredLang, $isActive, $techId]); logAdminActivity( $admin_session['admin_id'],