find((int)$payload['sub']); if (!$user || (int)$user['is_active'] !== 1) { Response::error('Unauthorized: User account is inactive or deleted', 401); } // Set global session context if (session_status() === PHP_SESSION_NONE) { session_start(); } $_SESSION['user_id'] = (int)$user['id']; $_SESSION['user_role'] = $user['role']; $_SESSION['branch_id'] = (int)($user['branch_id'] ?? 1); unset($user['password_hash'], $user['two_factor_secret'], $user['two_factor_recovery_codes']); return $user; } }