fix(turnero): anexar_formulario usa UUID() en vez de bin2hex para el token
bin2hex(random_bytes(16)) genera hex sin guiones que no pasa la validación de ver_formulario_enviado.php — el formulario adicional daba token inválido al intentar firmar. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
fcfdcccba9
commit
4fee7f753a
@@ -29,15 +29,14 @@ $form = $pdo->prepare("SELECT id, nombre FROM lab_formularios WHERE id = ? AND i
|
|||||||
$form->execute([$formularioId]);
|
$form->execute([$formularioId]);
|
||||||
if (!$form->fetch()) jsonError('Formulario no encontrado o inactivo.', 404);
|
if (!$form->fetch()) jsonError('Formulario no encontrado o inactivo.', 404);
|
||||||
|
|
||||||
// Crear el consentimiento con token único
|
// Crear el consentimiento con token UUID (mismo formato que create_solicitud)
|
||||||
$token = bin2hex(random_bytes(16));
|
|
||||||
|
|
||||||
$ins = $pdo->prepare(
|
$ins = $pdo->prepare(
|
||||||
"INSERT INTO turnero_consentimientos (turno_id, formulario_id, token, estado, datos_respuestas)
|
"INSERT INTO turnero_consentimientos (turno_id, formulario_id, token, estado, datos_respuestas)
|
||||||
VALUES (?, ?, ?, 'enviado', '{}')"
|
VALUES (?, ?, UUID(), 'enviado', '{}')"
|
||||||
);
|
);
|
||||||
$ins->execute([$turnoId, $formularioId, $token]);
|
$ins->execute([$turnoId, $formularioId]);
|
||||||
$newId = (int)$pdo->lastInsertId();
|
$newId = (int)$pdo->lastInsertId();
|
||||||
|
$token = $pdo->query("SELECT token FROM turnero_consentimientos WHERE id = $newId")->fetchColumn();
|
||||||
|
|
||||||
notificarSSE((int)$t['sesion_id']);
|
notificarSSE((int)$t['sesion_id']);
|
||||||
jsonOk(['id' => $newId, 'token' => $token], 'Formulario agregado.');
|
jsonOk(['id' => $newId, 'token' => $token], 'Formulario agregado.');
|
||||||
|
|||||||
Reference in New Issue
Block a user