problemas al crear un usuario en preinscripcion

Hola

Al intentar crear un nuevo usuario en preinscripcion 3.12 nos aparece un “error de seguridad”

Adjunto captura de pantalla y el log.

Alguna idea para resolverlo?

Emilio


error_crear_usuario_prein.png

error_crear_usuario_prein.png

20210608_183929___1344.zip (1.53 KB)

hola
¿Ese error sucede siempre ? ¿Hay alguna personalización en la operación ?
Es CSRF que esta dando este error de seguridad
Muchas gracias
Saludos

Hola

No hay ninguna personalización en esa operación.
Siempre ocurre.
Inclusive en una máquina virtual.

Emilio

Hola!
Unas consultas mas. Están usando ‘produccion’ => true, o están en desarrollo?
y es una instalación nueva desde cero?
Para adelantarnos y descartar algún error. Podrías enviarnos el composer.lock y composer json?
muchas gracias
saludos
4

Hola Emilio, agrego a lo de Jessica:

En Preinscripción 3.12.0 y Autogestión 3.19.0 hubo cambios en el framework Chulupí. Revisa tener los archivos composer.json y composer.lock actualizados y sin cambios locales (svn status), luego correr el comando composer install para que se actualicen las dependencias.

¿En el formulario de Crear nuevo usuario tiene algún valor el input con name=“__csrf” (dejo captura)?

saludos.
2


Screenshot from 2021-06-10 12-25-20.png

Screenshot from 2021-06-10 12-25-20.png

Hola

Es produccion
produccion=true

los archivos composer.json y composer.lock son los mismos que estan en colab. Lo controlé por las dudas.
No hay cambios locales

No hay ningun campo __cs…
pueden verlo en preinscripcion.unca.edu.ar está publico.

ejecuto composer install nuevamente y les comento.

Nothing to install or update


fallo_preinscripcion_crear_usuario.JPG

fallo_preinscripcion_crear_usuario.JPG_thumb.png

la instalacion de producción se actualiza con svn switch.

macro_csrf.twig

no existe. Debería?

Hola Emilio,

En el archivo src/siu/operaciones/alta_usuario/crear_usuario/default.twig se hace uso de dicho macro:


{% import "kernel/macro_csrf.twig" as input_csrf %}
{{ input_csrf.mostrar(this.data.csrf) }}

El cual se encuentra acá: vendor/siu/chulupi-framework/src/SIU/Chulupi/interfaz/templates/kernel/macro_csrf.twig.

¿vos decís que en modo desarrollo funciona y en producción no?
Si es así se puede deber a la cache de TWIG que se almacena en instalacion/temp/ cuando se usa en modo producción.

Fíjate tener bien los permisos de las carpetas.

¿tenes personalizaciones?

Probé acá (http://preinscripcion.unca.edu.ar/alta_usuario) y ni siquiera esta en input del CSRF.

saludos.
2

Hola

Revisé los permisos y están bien

Tenemos personalizaciones pero no sobre esa operacion. Dias atras le pasé a Hernan las mismas.

Producción y desarrollo funcionan igual. O sea no anda esto.

Si borro la carpeta vendor, composer me la crea de nuevo? Puede ir por ahi el inconveniente?

Emilio

Hola Emilio,

Si, podes borrar la carpeta vendor, luego corres composer install y te la vuelve a descargar.

saludos.
2

Hola

Seguimos en la misma

El cual se encuentra acá: vendor/siu/chulupi-framework/src/SIU/Chulupi/interfaz/templates/kernel/macro_csrf.twig.

donde se referencia este archivo? o por donde lo busca el chulupi?
hay alguna referencia que no está quedando bien.

Emilio

Hola Emilio,

En Preinscripción se referencia en dos lugares:
src/siu/operaciones/alta_usuario/crear_usuario/default.twig
src/siu/operaciones/ayuda_menu/contacto/default.twig

La definición se encuentra acá: vendor/siu/chulupi-framework/src/SIU/Chulupi/interfaz/templates/kernel/macro_csrf.twig

¿en modo desarrollo funciona bien? ¿que pasa si volves a correr el comando bin/preinscripcion compilar_recursos?

saludos.
2

Hola

produccion=false

funciona. Al menos aparece el campo en cuestion.

Emilio

Hola Emilio, gracias por el dato!!!

Si buscas dentro de la carpeta instalacion/temp/ el siguiente texto return “kernel/macro_csrf.twig”; ¿te encuentra algún archivo?

En mi caso encuentra el archivo instalacion/temp/alumno_id_trunk/34/92/4eff407d6d59fa8009f5a65a7d02.php.

Lo que ocurre es que cuando la aplicación esta en producción los Twigs se compilan a archivos PHP por cuestiones de eficiencia, deberías tener el compilado.

saludos.
2

No esta. Y compilar_recursos no lo genera (con produccion=true).
Genera otros. pero no ese.

Hola Emilio,

Hay que ver porque el comando bin/preinscripcion compilar_recursos --verbose no lo genera, ¿te da algún error cuando lo ejecutas? ¿tenes permisos en la carpeta instalacion/temp?

saludos.
2

Hola Emilio,

Te explique mal, los Twigs no se compilan con el comando bin/preinscripcion compilar_recursos, sino que cuando estas en modo producción se van compilando “on demand” cada vez que se usan.

Esto se puede ver en la función load_template de vendor/siu/chulupi-framework/src/SIU/Chulupi/kernel.php:


		if (kernel::proyecto()->get_produccion()) {
			$cache = kernel::proyecto()->get_dir_temp();
		} else {
			$cache = false;
		}
		
		$loader = self::template_loader();
        $env = new \Twig_Environment($loader, array(
            'debug' => false,
			'cache' => $cache,
			'charset' => kernel::proyecto()->get_encoding()
        ));

....................

La carpeta de cache es lo que se define en el parámetro dir_temp de instalacion/config.php, sino se define toma instalacion/temp.

Preguntas:
¿tenes definido el parámetro dir_temp en instalacion/config.php? Podes no tenerlo y todo ok.
¿Apache tiene permisos de escritura en dir_temp o instalacion/temp en su defecto?

Referencia: https://twig.symfony.com/doc/1.x/api.html#compilation-cache

saludos.
2

Hola

Borré el directorio de compilacion de los twig y salió andando.
Si vuelve a ocurrir trataré de ver porque andaba mal, o se armó mal.

Emilio

Hola Emilio,

Quizás se compilo mal la primera vez, y luego quedo mal compilado para el resto de los usos.

Perfecto, cualquier cosa nos avisas.

saludos.
2