Hola,
En la UNQ, hicimos una pantalla que hacia lo mismo, y fue implementado en el SIU-Pilaga, pero de una manera mas engorrosa, sin utilizar algunas herramientas que da el toba, que aca se muestran, el unico detalle que le veo a el codigo que ustedes muestran, es que no encriptan la clave antes de guardarla. Me tome un minuto y convine los dos codigos (y tambien mejore un poco mi codigo usando mas funciones toba)
<?php
class cambiar_clave extends toba_ci
{
//-----------------------------------------------------------------------------------
//---- DEPENDENCIAS -----------------------------------------------------------------
//-----------------------------------------------------------------------------------
//---- formulario -------------------------------------------------------------------
function evt__formulario__modificacion($datos)
{
$id_usuario = toba::usuario()->get_id();
if (!(toba_usuario_basico::autenticar($usuario, $datos['clave_vieja']))) {
toba::notificacion()->agregar("La clave actual ingresada no es la correcta.");
return;
}
if($datos['clave_nueva'] == $datos['clave_nueva_confirmar']) {
$datos_usuario = toba::instancia()->get_info_autenticacion($id_usuario);
$algoritmo = $datos_usuario['autentificacion'];
$clave = $datos['clave_nueva'];
if ($algoritmo != 'plano') {
if ($algoritmo == 'md5') {
$clave = hash($algoritmo, $clave);
} else {
$clave = encriptar_con_sal($clave, $algoritmo, $datos_usuario['clave']);
}
}
$sql = "UPDATE apex_usuario SET clave = '".$clave."' WHERE usuario = '$id_usuario'";
//toba::db('toba')->ejecutar($sql);
toba_instancia::instancia()->get_db()->ejecutar($sql);
$this->pantalla()->set_descripcion('La clave fue actualizada correctamente.<br>');
}else{
toba::notificacion()->agregar("La clave y la confirmacion de la clave no son iguales!");
}
}
//El formato del retorno debe ser array('id_ef' => $valor, ...)
function conf__formulario($componente)
{
$datos = array( 'usuario' => toba::usuario()->get_id(),
'nombre' => toba::usuario()->get_nombre() );
return $datos;
}
}
?>
Espero que les sirva a ustedes, mientras tanto... voy a volver a enviar este codigo al proyecto SIU-Pilaga