migrar_claves no nos está funcionando

A cada profesor nuevo le asignamos una clave preestablecida para hacer doble comando en la capacitación, y luego de la capacitación le pedimos que la cambie siguiendo el link de “Olvide mi clave”
Hasta la version anterior la veníamos asignando por tabla mdp_personas en MD5 y usando ./guarani migrar_claves

En la 3.20 no nos está funcionando. Luego de correr migrar_claves, aparece “La migración fue realizada con éxito” pero sigue en MD5 y en algún momento que no supimos determinar todavía, vuelve a vacío. Pero nunca llega a la estructura $2a$10… del resto de las claves.

Gracias !!

Hola
Estará dando algún error, revisaron el log del comando en la aplicación?
No pude replicar el caso, pero tal vez leyendo el log esta avisando algún podemos ver que error informa.

Tal vez si vuelven a correr el comando para revisar los logs de la aplicación de esa hora y en una terminal revisan el log de apache.
Por favor no publicar el log sin eliminar la información sensible de clave entre otras.

Cualquier consulta avísanos
Saludos
2

El log de Apache no muestra nada porque es un comando por terminal …
Y el comando en su salida dice “Migración realizada con éxito”…

En el log de Gestión tampoco hay nada, supongo que por la misma razón…ser un comando de terminal…

¿Hay más logs para mirar ?

Hola
En la carpeta dentro de instalacion/ logs_comandos?
no hay registro de logs?
Muchas gracias
Saludos

En logs_comandos sale igual que en Agosto, cuando andaba sin problemas

-o-o-o-o-o-
Fecha: 08-11-2021 17:41:06
Version-PHP: 7.4.25
Ruta: /usr/local/proyectos/guarani/vendor/siu-toba/framework/bin
Argumentos: proyecto migrar_claves
==========
[DEBUG][guarani] INSTALACION "/usr/local/proyectos/guarani/instalacion"
[DEBUG][guarani] Parametros instancia desarrollo: array (
  'base' => 'toba_3_0',
  'proyectos' => 'toba_editor, toba_usuarios, toba_referencia, guarani',
  'tipo' => 'normal',
  'toba_editor' =>
  array (
    'path' => '/usr/local/proyectos/guarani/vendor/siu-toba/framework/proyectos/toba_editor',
    'url' => '/toba_editor/3.0',
  ),
  'toba_usuarios' =>
  array (
    'path' => '/usr/local/proyectos/guarani/vendor/siu-toba/framework/proyectos/toba_usuarios',
    'url' => '/toba_usuarios/3.0',
  ),
  'toba_referencia' =>
  array (
    'path' => '/usr/local/proyectos/guarani/vendor/siu-toba/framework/proyectos/toba_referencia',
    'url' => '/toba_referencia/3.0',
  ),
  'guarani' =>
  array (
    'path' => '/usr/local/proyectos/guarani',
    'url' => '/guarani/3.15',
    'url_pers' => '/guarani_pers/3.15',
    'usar_perfiles_propios' => '1',
    'metadatos_compilados' => '1',
  ),
)
[DEBUG][guarani] INSTANCIA "desarrollo"
[DEBUG][guarani] Conectando a base 'toba_3_0'
[DEBUG][guarani] Parametros de conexion: array (
  'motor' => 'postgres7',
  'profile' => 'localhost',
  'usuario' => '********',
  'clave' => '********',
  'base' => 'toba_3_0',
  'puerto' => '5432',
  'encoding' => 'LATIN1',
  'schema' => 'desarrollo',
)
[DEBUG][guarani] PROYECTO "guarani"
[DEBUG][guarani] Conectando a base 'desarrollo guarani guarani'
[DEBUG][guarani] Parametros de conexion: array (
  'motor' => 'postgres7',
  'profile' => 'localhost',
  'usuario' => '********',
  'clave' => '********',
  'puerto' => '5432',
  'encoding' => 'LATIN1',
  'base' => 'toba_3_0',
  'schema' => 'negocio',
)
[DEBUG][toba] ************ ABRIR transaccion (toba_3_0@localhost) ****************
[DEBUG][toba] ************ CERRAR transaccion (toba_3_0@localhost) ****************


Lo más raro que encuentro es que el md5 que pongo en “clave”, en determinado momento desaparece y se hace null, independientemente del comando migrar_claves … pero nunca llega a “$a2$10%” con el comando, que sale por la parte positiva… “La migración fue realizada con éxito”

       function migrar_claves()
        {
                $base = $this->get_base();
                try {
                        require_once(dirname(__FILE__).'/../3ros/bcrypt.php');
                        $enc = new bcrypt(10);
                        $base->abrir_transaccion();
                        $this->manejador_interface->mensaje('Migrando las contrase�as...', true);
                        $this->manejador_interface->enter();
                        $sql = "SELECT usuario, clave FROM mdp_personas WHERE clave NOT LIKE ('$2a%')";
                        $datos = $base->consultar($sql);
                        foreach ($datos as $dato) {
                                $clave = $enc->hash($dato['clave']);
                                $sql = "UPDATE mdp_personas SET clave = '$clave' WHERE usuario = '{$dato['usuario']}'\n";
                                $base->ejecutar($sql);
                                $this->manejador_interface->progreso_avanzar();
                        }
                        $this->manejador_interface->enter();
                        $this->manejador_interface->enter();
                        $this->manejador_interface->mensaje('La migraci�n fue realizada con �xito.', true);
                        $this->manejador_interface->enter();
                        $base->cerrar_transaccion();
                } catch (Exception $e) {
                        $base->abortar_transaccion();
                        $this->manejador_interface->mensaje($e->getMessage());
                }
        }

Lo próximo que se me ocurre es intertar agregar cosas al código como para debuggear… como ver cuantas veces pasa por el foreach, o qué está guardando en $clave …

Lo otro que se me ocurre es que el migrar_claves me esté guardando el NULL … pero lo veo con demora por alguna especie de caché…

Hola
El migrar_claves hace lo que ves ahí, busca las claves que no tengan el formato $2a%
y luego actualiza actualiza el valor.
Lo que podrían hacer es ver que tiene la base antes ejecutan
SELECT usuario, clave FROM mdp_personas WHERE clave NOT LIKE (‘$2a%’)
que usuarios trae
También revisaría si es la misma base que guaraní tiene configurada. Si es la misma donde estas haciendo las modificaciones

muchas gracias
saludos

4

Encontré el problema… (mi problema) …
El Dbeaver , browser de la base, dejó de estar en modo Auto-commit.
Entonces todas las modificaciones que le hacía a la base no quedaban commiteadas … Yo las veía en pantalla , pero en la realidad no estaban… eran solo transacciones abiertas…
Entonces los md5 no estaban cargados en realidad… y el migrar_claves no los reconocía simplemente porque no estaban…

Perdón por las molestias ocasionadas…