Problema con personalización insc Cursadas.

Buen día
Estoy desarrollando una personalización de la operación cursada(inscripcion a cursada) de 3w que consiste en mostrar solo las subcomisiones de un tipo que tienen el menor numero de inscriptos a fin de balancear las mismas (tener el mismo nro de inscriptos) esto ya esta resuelto extendiendo el método info__lista_comisiones de la estrategia para que aplique el filtrado deseado. esto funciona perfecto mientras los alumnos ingresen a la operación uno detrás de otro en fila.

Cuando dos alumno ingresan al mismo tiempo, le muestra el mismo subconjunto de subcomisiones porque todavía ninguno se inscribió y si ambos seleccionan la misma subcomisión, el primero se inscribirá sin problemas y al segundo arrojara le arroja un error, el cual ya logre detectar y personalizar para que muestre un mensaje más ilustrativo al alumno y es exactamente el comportamiento que deseamos.

Ahora el problema:
Después de que el alumno es alertado de la situación y selecciona otra subcomision valida al darle inscribirse una vez más falla, ahora por el control csrf y recién a la tercer intento de inscribirse logra hacerlo sin error.
detalle del error:

Error de validación en 'siu\operaciones\cursada\controlador::accion__inscribir'. Clave $_post ['__csrf']:

No encuentro razón por la cual falla el control csrf en el segundó intento si al enviar el primer error también se refresca el código csrf del cliente.

Versión de guaraní 2.20.1

Hola Carlos,

Lo que puede llegar a estar pasando es que no estés generando un nuevo CSRF, si te fijas por ejemplo en la función accion__inscribir de src/siu/operaciones/cursada/controlador.php va a ver que hace lo siguiente:

  1. Valida en CSRF

// Chequeo de CSRF
$this->check_csrf();

  1. En caso de que falla y entra al catch genera un nuevo CSRF:

// Se genera un nuevo csrf xq el anterior ya se consumió
kernel::renderer()->add_csrf($this->generar_csrf());

Podes verlo acá:
https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unne/3w/trunk/3.20.1/src/siu/operaciones/cursada/controlador.php#L135

Te dejo otro foro que quizas te sirva: https://foro.comunidad.siu.edu.ar/index.php?topic=22177.0

¿en los logs que error te muestra?
En caso de CSRF invalido muestra:


clase: SIU\Chulupi\acceso\ErrorKernelSeguridad
mensaje: ERROR: Error de chequeo de CSRF [csrfe00064f48f5e9778915f741373f919f1be8146a2]
traza: [TRAZA]

En caso de CSRF vacío muestra:


clase: SIU\Chulupi\ErrorKernelValidacion
mensaje: ERROR: Error de validación en 'siu\operaciones\cursada\controlador::accion__inscribir_prioridad'. Clave $_post ['__csrf']: <pre>Array
(
    [key] => __csrf
    [value] => 
    [method] => post
    [type] => TIPO_ALPHANUM
    [options] => Array
        (
        )

)
</pre>
traza: [TRAZA]

saludos.
4