Estimados, tenemos instalada la versión 1.14.3 de SIU-Diaguita.
En el archivo “extension_usuario” tengo estos dos métodos configurados de la siguiente manera, y funcionando.
Además, desde el toba_editor, se debe dejar configurado en “Conf./Propiedades/Usuario” como en la imagen que adjunto.
static function autenticar($id_usuario, $clave, $datos_iniciales=null, $usar_log=true)
{
$datos_usuario = toba::instancia()->get_info_autenticacion($id_usuario);
if ( empty($datos_usuario) ) {
$error = "El usuario '$id_usuario' no existe";
if ($usar_log) {
toba::logger()->error($error, 'toba');
}
throw new toba_error_usuario($error);
return false;
} else {
//--- Autentificación vía LDAP.
if(!(self::autenticar_ldap($id_usuario, $clave, $datos_iniciales))) {
$error = "El usuario '$id_usuario' ingreso una clave incorrecta";
if ($usar_log) {
toba::logger()->error($error, 'toba');
}
throw new toba_error_usuario($error);
return false;
}
//Control de que el área del usuario tenga asociado una oficina de contratación o que el usuario exista.
$temp_usuario = dao_consultas::get_datos_usuario(array('id_toba'=>$id_usuario,'count' =>true));
if($temp_usuario[0]['count'] ==0)
{
$error = "El usuario '$id_usuario' no existe o se encuentra inhabilitado, por favor contactese con el administrador.";
if ($usar_log) {
toba::logger()->error($error, 'toba');
}
throw new toba_error_usuario($error);
return false;
}
//Control de que el usuario tenga asociado alguna área.
$temp_area = dao_consultas::get_usuarios_areas(array('id_toba'=>$id_usuario,'count' =>true));
if($temp_area[0]['count'] ==0)
{
$error = "El usuario '$id_usuario' no tiene asociado un área, por favor contactese con el administrador";
if ($usar_log) {
toba::logger()->error($error, 'toba');
}
throw new toba_error_usuario($error);
return false;
}
}
return true;
}
static function autenticar_ldap($id_usuario, $clave, $datos_iniciales=null)
{
if (! extension_loaded('ldap')) {
throw new toba_error("[Autenticación LDAP] no se encuentra habilitada la extensión LDAP");
}
//$ldap_server = ldap_connect(TU_SERVIDOR.edu.ar',xxx);// <------servidor,puerto
$ldap_server = ldap_connect('xxx.xxx.xxx.xxx',xxx);// <------ IP,puerto
ldap_set_option($ldap_server, LDAP_OPT_PROTOCOL_VERSION, 3);
$usuario_cn = "uid=$id_usuario,ou=people, dc=TU_DOMINIO,dc=gov,dc=ar";
$result = ldap_bind($ldap_server, $usuario_cn, $clave);
if ($result == false) {
toba::logger()->error("[Autenticación LDAP] Usuario/Contraseña incorrecta: ".ldap_error($conexion));
return false;
}
ldap_close($ldap_server);
toba::logger()->debug("[Autenticación LDAP] OK");
return true;
}
Espero a alguien le sea de utilidad, Saludos!