Viewing file: dt_apex_usuario.php (19.95 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class dt_apex_usuario extends toba_datos_tabla
{
function get_listado($filtro=array())
{
$where = array();
if (isset($filtro['usuario'])) {
$where[] = "t_au.usuario ILIKE ".quote("%{$filtro['usuario']}%");
}
if (isset($filtro['nombre'])) {
$where[] = "t_au.nombre ILIKE ".quote("%{$filtro['nombre']}%");
}
if (isset($filtro['parametro_a'])) {
$where[] = "t_au.parametro_a = '".$filtro['parametro_a']."'";
}
#$and = '';
if (isset($filtro['usuario_grupo_acc'])) {
$where[] = "t_aup.usuario_grupo_acc = '".$filtro['usuario_grupo_acc']."'";
}else{
$where[] = "t_aup.usuario_grupo_acc <> 'admin'";
}
if (isset($filtro['grupo_empresa'])) {
$where[] = "t_aup.usuario_grupo_acc IN ('administrador', 'admin_publicidades')";
}
$sql = "SELECT DISTINCT
t_au.usuario,
t_au.clave,
t_au.nombre,
t_au.email,
t_au.autentificacion,
t_au.bloqueado,
t_au.parametro_a,
t_au.parametro_b,
t_au.parametro_c,
t_au.solicitud_registrar,
t_au.solicitud_obs_tipo_proyecto,
t_au.solicitud_obs_tipo,
t_au.solicitud_observacion,
t_aut.descripcion as usuario_tipodoc_nombre,
t_au.pre,
t_au.ciu,
t_au.suf,
t_au.telefono,
t_au.vencimiento,
t_au.dias,
t_au.hora_entrada,
t_au.hora_salida,
t_au.ip_permitida
FROM
desarrollo.apex_usuario as t_au
LEFT OUTER JOIN desarrollo.apex_usuario_tipodoc as t_aut ON (t_au.usuario_tipodoc = t_aut.usuario_tipodoc),
desarrollo.apex_usuario_proyecto as t_aup
WHERE t_aup.proyecto = 'tdfonline'
AND t_au.usuario = t_aup.usuario
AND t_au.usuario <> 'toba'
ORDER BY t_au.nombre ";
//, t_aup.usuario_grupo_acc
if (count($where)>0) {
$sql = sql_concatenar_where($sql, $where);
}
$datos = toba::db('tdfonline')->consultar($sql);
//---------------------------------------------------------
if (isset($filtro['grupo_empresa'])) {
foreach ($datos as $key=>$dato) {
$sql = "SELECT
t_aup.proyecto,
t_aup.usuario_grupo_acc,
t_aup.usuario,
t_aup.usuario_perfil_datos
FROM desarrollo.apex_usuario_proyecto as t_aup
WHERE t_aup.proyecto = 'tdfonline'
AND t_aup.usuario = '".$dato['usuario']."'
ORDER BY usuario_perfil_datos";
$grupos = toba::db('tdfonline')->consultar($sql);
$primero = true;
if(count($grupos)>0){
#ei_arbol($grupos,$dato['usuario']);
foreach($grupos as $grupo){
if($primero){
$primero = false;
$string_grupos = $grupo['usuario_grupo_acc'];
}else{
$string_grupos.= ', '.$grupo['usuario_grupo_acc'];
}
}
$datos[$key]['grupos'] = $string_grupos;
}else{
$datos[$key]['grupos'] = 'sin perfil';
}
}
}
return $datos;
//---------------------------------------------------------
}
function get_descripciones()
{
$sql = "SELECT usuario, nombre, email FROM desarrollo.apex_usuario ORDER BY nombre";
return toba::db('tdfonline')->consultar($sql);
}
function get_administradores()
{
$sql = "SELECT t_au.usuario, t_au.nombre,
t_au.email,t_au.parametro_c,t_au.telefono,t_au.hora_entrada,t_au.hora_salida
FROM desarrollo.apex_usuario as t_au, desarrollo.apex_usuario_proyecto as t_aup
WHERE t_aup.proyecto = 'tdfonline'
AND t_aup.usuario_grupo_acc = 'administrador'
AND t_au.usuario = t_aup.usuario
ORDER BY t_au.nombre";
return toba::db('tdfonline')->consultar($sql);
}
function get_admin_publicidades()
{
$sql = "SELECT t_au.usuario, t_au.nombre,
t_au.email,t_au.parametro_c,t_au.telefono,t_au.hora_entrada,t_au.hora_salida
FROM desarrollo.apex_usuario as t_au, desarrollo.apex_usuario_proyecto as t_aup
WHERE t_aup.proyecto = 'tdfonline'
AND t_aup.usuario_grupo_acc = 'admin_publicidades'
AND t_au.usuario = t_aup.usuario
ORDER BY t_au.nombre";
return toba::db('tdfonline')->consultar($sql);
}
function get_clientes()
{
$sql = "SELECT t_au.usuario, t_au.usuario as usuario_personal, t_au.nombre, t_au.email, t_au.parametro_a, t_au.parametro_b
FROM desarrollo.apex_usuario as t_au, desarrollo.apex_usuario_proyecto as t_aup
WHERE t_aup.proyecto = 'tdfonline'
AND t_aup.usuario_grupo_acc = 'cliente'
AND t_au.usuario = t_aup.usuario
ORDER BY t_au.nombre";
return toba::db('tdfonline')->consultar($sql);
}
function get_clientes_newsletter()
{
$sql = "SELECT t_au.usuario, t_au.usuario as usuario_personal, t_au.nombre, t_au.email, t_au.parametro_a, t_au.parametro_b
FROM desarrollo.apex_usuario as t_au, desarrollo.apex_usuario_proyecto as t_aup
WHERE t_aup.proyecto = 'tdfonline'
AND t_aup.usuario_grupo_acc = 'cliente'
AND t_au.usuario = t_aup.usuario
AND t_au.parametro_a = '1'
ORDER BY t_au.nombre";
return toba::db('tdfonline')->consultar($sql);
}
function existe()
{
$sql = "SELECT count(t_au.usuario)
FROM desarrollo.apex_usuario as t_au, desarrollo.apex_usuario_proyecto as t_aup
WHERE t_aup.proyecto = 'tdfonline'
AND t_au.usuario = t_aup.usuario
--AND t_aup.usuario_grupo_acc = 'cliente'
ORDER BY t_au.nombre";
return toba::db('tdfonline')->consultar($sql);
}
function get_datos($usuario)
{
$sql = "SELECT
t_au.usuario,
t_au.clave,
t_au.nombre,
t_au.email,
t_au.autentificacion,
t_au.bloqueado,
t_au.parametro_a,
t_au.parametro_b,
t_au.parametro_c,
t_au.solicitud_registrar,
t_au.solicitud_obs_tipo_proyecto,
t_au.solicitud_obs_tipo,
t_au.solicitud_observacion,
t_aut.descripcion as usuario_tipodoc_nombre,
t_au.pre,
t_au.ciu,
t_au.suf,
t_au.telefono,
t_au.vencimiento,
t_au.dias,
t_au.hora_entrada,
t_au.hora_salida,
t_au.ip_permitida,
t_aup.usuario_grupo_acc
FROM
desarrollo.apex_usuario as t_au
LEFT OUTER JOIN desarrollo.apex_usuario_tipodoc as t_aut ON (t_au.usuario_tipodoc = t_aut.usuario_tipodoc),
desarrollo.apex_usuario_proyecto as t_aup
WHERE t_aup.proyecto = 'tdfonline'
AND t_au.usuario = t_aup.usuario
AND t_au.usuario = '$usuario' ";
return toba::db('tdfonline')->consultar_fila($sql);
}
function agregar ($datos)
{
//verificamos que no exista otro suario con ese nombre
$sql = "SELECT count(t_au.usuario) as cantidad FROM desarrollo.apex_usuario as t_au
WHERE t_au.usuario = '".$datos[usuario]."'";
$cant = toba::db('tdfonline')->consultar_fila($sql);
if ($cant[cantidad] == 0 ){
$sql = "INSERT INTO desarrollo.apex_usuario (
usuario,
clave,
nombre,
email,
autentificacion,
bloqueado,
telefono,
ip_permitida,
parametro_a,
parametro_b
)
VALUES (
'".$datos['usuario']."',
'".$datos['clave']."',
'".$datos['nombre']."',
'".$datos['email']."',
'plano',
'".$datos['bloqueado']."',
'".$datos['telefono']."',
'".$datos['ip_permitida']."',
'".$datos['parametro_a']."',
'".$datos['parametro_b']."'
)";
$rs = toba::db('tdfonline')->ejecutar($sql);
if ($rs == false){
return false;
}else{
return true;
}
}else{
return false;
}
}
function modificar ($datos)
{
//set clave ----------------------------------------------------------------------------
if ($datos['clave'] == "xS34Io9gF2JD" ) {
$datos['clave'] = null;
}
if($datos['autentificacion'] == 'bcrypt'){
$clave = $this->encriptar_con_sal($datos['clave'], $algoritmo);
}else{ //plano
$datos['autentificacion'] = 'plano';
$clave = $datos['clave']; //$clave = $this->encriptar_con_sal($datos['clave'], $algoritmo);
}
if (empty($datos['clave'])) { //"xS34Io9gF2JD"
$sql = "UPDATE desarrollo.apex_usuario
SET nombre = '".$datos['nombre']."',
email = '".$datos['email']."',
bloqueado = '".$datos['bloqueado']."',
telefono = '".$datos['telefono']."',
ip_permitida = '".$datos['ip_permitida']."',
parametro_a = '".$datos['parametro_a']."',
parametro_b = '".$datos['parametro_b']."'
WHERE usuario = '".$datos['usuario']."'";
}else{
$sql = "UPDATE desarrollo.apex_usuario
SET clave = '".$datos['clave']."',
autentificacion = '".$datos['autentificacion']."',
nombre = '".$datos['nombre']."',
email = '".$datos['email']."',
bloqueado = '".$datos['bloqueado']."',
telefono = '".$datos['telefono']."',
ip_permitida = '".$datos['ip_permitida']."',
parametro_a = '".$datos['parametro_a']."',
parametro_b = '".$datos['parametro_b']."'
WHERE usuario = '".$datos['usuario']."'";
}
$rs = toba::db('tdfonline')->ejecutar($sql);
if ($rs == false){
return false;
}else{
return true;
}
}
function modificar_cuenta_cliente($datos)
{
if (empty($datos['clave']) or $datos['clave'] == "xS34Io9gF2JD") {
$sql = "UPDATE desarrollo.apex_usuario SET nombre = '".$datos['nombre']."' WHERE usuario = '".$datos['usuario']."'";
}else{
//$algoritmo = 'sha256';
$clave = $datos['clave']; //$this->encriptar_con_sal($datos['clave'], $algoritmo);
$sql = "UPDATE desarrollo.apex_usuario
SET clave = '".$clave."',
autentificacion = 'plano'
nombre = '".$datos['nombre']."'
WHERE usuario = '".$datos['usuario']."'";
}
$rs = toba::db('tdfonline')->ejecutar($sql);
if ($rs == false){
return false;
}else{
return true;
}
}
function agregar_inscripcion ($datos)
{
//verificamos que no exista otro suario con ese nombre
$sql = "SELECT count(t_au.usuario) as cantidad FROM desarrollo.apex_usuario as t_au
WHERE t_au.usuario = '".$datos['usuario']."'";
$cant = toba::db('tdfonline')->consultar_fila($sql);
if ($cant['cantidad'] == 0 ){
$algoritmo = 'sha256';
$clave = $this->encriptar_con_sal($datos['clave'], $algoritmo);
$bloqueado = 1;
mt_srand((double)microtime()*1000000);//alimentamos el generador de aleatorios
$parametro_a = mt_rand(1000,9999);//generamos un numero aleatorio
$sql = "INSERT INTO desarrollo.apex_usuario (usuario, nombre, clave, autentificacion, bloqueado, parametro_a)
VALUES ('".$datos['usuario']."','".$datos['nombre']."','$clave','$algoritmo','$bloqueado', '$parametro_a')";
$rs = toba::db('tdfonline')->ejecutar($sql);
if ($rs == false){
return false;
}else{
return true;
}
}else{
return false;
}
}
function confirmar_inscripcion ($datos){
//verificamos que no exista otro suario con ese nombre
$sql = "SELECT count(t_au.usuario) as cantidad FROM desarrollo.apex_usuario as t_au
WHERE t_au.usuario = '".$datos['usuario']."' and t_au.parametro_a = '".$datos['parametro_a']."'";
$cant = toba::db('tdfonline')->consultar_fila($sql);
if ($cant['cantidad'] == 1 ){
$sql = "UPDATE desarrollo.apex_usuario SET bloqueado = '0' WHERE usuario = '".$datos['usuario']."'";
$rs = toba::db('tdfonline')->ejecutar($sql);
if ($rs == false){
return false;
}else{
return true;
}
}else{
return false;
}
}
function resetaear_parametro_a($usuario){
mt_srand((double)microtime()*1000000);//alimentamos el generador de aleatorios
$parametro_a = mt_rand(1000,9999);//generamos un numero aleatorio
$sql = "UPDATE desarrollo.apex_usuario SET parametro_a = '$parametro_a' WHERE usuario = '$usuario'";
$rs = toba::db('tdfonline')->ejecutar($sql);
if ($rs == false){
return false;
}else{
return $parametro_a;
}
}
function regenerar_clave_usuario($usuario){
$caracteres = "1234567890abcdefghijklmnopqrstuvwxyz";
$clave_sin_encriptar = "";
for($i=0; $i<10; $i++) {
$clave_sin_encriptar .= substr($caracteres,rand(0,35),1);
}
$algoritmo = 'sha256';
$clave = $this->encriptar_con_sal($clave_sin_encriptar, $algoritmo);
$sql = "UPDATE desarrollo.apex_usuario SET clave = '$clave', autentificacion = '$algoritmo'
WHERE usuario = '$usuario';";
toba::db('tdfonline')->ejecutar($sql);
return $clave_sin_encriptar;
}
function encriptar_con_sal($clave, $metodo)
{
$sal = substr(md5(uniqid(rand(), true)), 0, 10);
return $sal . hash($metodo, $sal . $clave);
}
function actualizar_correo ($usuario, $email)
{
$sql = "UPDATE desarrollo.apex_usuario
SET email = '".$email."'
WHERE usuario = '".$usuario."'";
$rs = toba::db('tdfonline')->ejecutar($sql);
if ($rs == false){
return false;
}else{
return true;
}
}
function eliminar_usuario($usuario)
{
$sql = "DELETE FROM desarrollo.apex_usuario
WHERE usuario = '".$usuario."'
AND usuario <> 'toba'";
$rs = toba::db('tdfonline')->ejecutar($sql);
if ($rs == false){
return false;
}else{
return true;
}
}
}
?>
|