diff options
Diffstat (limited to 'admin/WebConsole')
19 files changed, 541 insertions, 514 deletions
diff --git a/admin/WebConsole/asistentes/jscripts/CrearImagen.js b/admin/WebConsole/asistentes/jscripts/CrearImagen.js index fcbe1804..0f63a69d 100644 --- a/admin/WebConsole/asistentes/jscripts/CrearImagen.js +++ b/admin/WebConsole/asistentes/jscripts/CrearImagen.js @@ -55,15 +55,15 @@ despleimagen=document.getElementById("despleimagen_"+particion); var p=despleimagen.selectedIndex; if (p==0){ - alert(TbMsg[0]); - despleimagen.focus(); - return(false) + alert(TbMsg[0]); + despleimagen.focus(); + return(false) } } } if(op==0){ - alert(TbMsg[1]); - return(false); + alert(TbMsg[1]); + return(false); } return(comprobar_datosejecucion()) } diff --git a/admin/WebConsole/asistentes/jscripts/IniciarSesion.js b/admin/WebConsole/asistentes/jscripts/IniciarSesion.js index 8e30da51..59ea71e2 100644 --- a/admin/WebConsole/asistentes/jscripts/IniciarSesion.js +++ b/admin/WebConsole/asistentes/jscripts/IniciarSesion.js @@ -22,7 +22,7 @@ function confirmar(){ document.fdatosejecucion.atributos.value="par="+particion+RC; document.fdatosejecucion.submit(); } - } + } //________________________________________________________________________________________________________ function cancelar() { @@ -36,11 +36,12 @@ function confirmar(){ var ochecks=tb_conf.getElementsByTagName('INPUT'); var op=0; for(var i=0;i<ochecks.length;i++){ - if(ochecks[i].checked) op++; + if(ochecks[i].checked) + op++; } if(op==0){ - alert(TbMsg[1]); - return(false); + alert(TbMsg[1]); + return(false); } return(comprobar_datosejecucion()) } diff --git a/admin/WebConsole/asistentes/jscripts/InventarioSoftware.js b/admin/WebConsole/asistentes/jscripts/InventarioSoftware.js index 4a1ffef6..bcbc9af0 100644 --- a/admin/WebConsole/asistentes/jscripts/InventarioSoftware.js +++ b/admin/WebConsole/asistentes/jscripts/InventarioSoftware.js @@ -37,8 +37,8 @@ if(ochecks[i].checked) op++; } if(op==0){ - alert(TbMsg[1]); - return(false); + alert(TbMsg[1]); + return(false); } return(comprobar_datosejecucion()); } diff --git a/admin/WebConsole/barramenu.php b/admin/WebConsole/barramenu.php index 77c8c159..dfb618ed 100644 --- a/admin/WebConsole/barramenu.php +++ b/admin/WebConsole/barramenu.php @@ -13,7 +13,7 @@ if(stripos($device,'iphone') !== false ){$device="iphone";} elseif (stripos($device,'ipad') !== false) {$device="ipad";} elseif (stripos($device,'android') !== false){$device="android";} else{$device=0;} -$version=exec("cat /opt/opengnsys/doc/VERSION.txt"); +$version=@json_decode(file_get_contents("/opt/opengnsys/doc/VERSION.json"))->version; if(preg_match("/1.0.4/",$version) == TRUE ){$version=4;} // ******************************************************************************************************** include_once("./includes/ctrlacc.php"); @@ -178,10 +178,10 @@ if (!$cmd) <TR valign=baseline> <TD width=10><IMG src="./images/iconos/pomo.gif"></TD> <?php if($idtipousuario!=$SUPERADMINISTRADOR){?> - <TD onclick=eleccion(this,1); onmouseout=desresaltar(this); onmouseover=resaltar(this) > + <TD onclick=eleccion(this,1); onmouseout=desresaltar(this); onmouseover=resaltar(this)> <A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/centros.gif"> <SPAN class="menupral"><?php echo $TbMsg[0]?></SPAN></A> </TD> <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD> - <TD onclick=eleccion(this,2); onmouseout=desresaltar(this); onmouseover=resaltar(this); align=middle> + <TD onclick=eleccion(this,2); onmouseout=desresaltar(this); onmouseover=resaltar(this); align=middle> <A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/acciones.gif"> <SPAN class=menupral ><?php echo $TbMsg[1]?></SPAN></A> </TD> <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD> <TD onclick=eleccion(this,3); onmouseout=desresaltar(this); onmouseover=resaltar(this); align=middle> @@ -202,11 +202,11 @@ if (!$cmd) <td onclick="eleccion(this,14)" onmouseout="desresaltar(this)" onmouseover="resaltar(this)" align="middle"> <a href="#" style="text-decoration: none"><img border="0" src="./images/iconos/busquedas.gif"> <span class="menupral"><?php echo $TbMsg[14] ?></span></a> </td> <td width="4" align="middle"><img src="./images/iconos/separitem.gif"></td> - + <!--TD onclick=eleccion(this,8) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle> <A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/reservas.gif"> <SPAN class=menupral ><?php echo $TbMsg[7] ?></SPAN></A> </TD> <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD--> - + <?php } else{ if($idtipousuario==$SUPERADMINISTRADOR){?> diff --git a/admin/WebConsole/clases/AdoPhp.php b/admin/WebConsole/clases/AdoPhp.php index 0b257c4f..4265911c 100644 --- a/admin/WebConsole/clases/AdoPhp.php +++ b/admin/WebConsole/clases/AdoPhp.php @@ -447,7 +447,7 @@ class Comando{ return(true); } /* ------------------------------------------------------------------------------------------- - Esta funci� recupera el ltimo nmero asignado a una clave autonum�ica de una tabla + Esta función recupera el ltimo nmero asignado a una clave autonum�ica de una tabla ---------------------------------------------------------------------------------------------*/ function Autonumerico(){ $ulreg=mysqli_insert_id($this->Conexion->controlador); diff --git a/admin/WebConsole/clases/jscripts/ArbolVistaXML.js b/admin/WebConsole/clases/jscripts/ArbolVistaXML.js index 3ddbeb2b..f4d84ba1 100644 --- a/admin/WebConsole/clases/jscripts/ArbolVistaXML.js +++ b/admin/WebConsole/clases/jscripts/ArbolVistaXML.js @@ -78,7 +78,7 @@ var gLiteralbackground; // Fondo color nodo vista para restablecer //____________________________________________________________________________ this.pone_infonodo= function(lit){ this.literal.innerHTML=lit; - }; + }; //____________________________________________________________________________ // // Devuelve el segundo dato de una cadena con formato xxxxx-xxx que es id del nodo vista @@ -88,7 +88,7 @@ var gLiteralbackground; // Fondo color nodo vista para restablecer if(this.literal==null) return(null); var atributo=this.literal.getAttribute(atr); return(atributo); - }; + }; //____________________________________________________________________________ // // Devuelve true si el nodo tiene hijos,false en caso contrario @@ -140,9 +140,9 @@ var gLiteralbackground; // Fondo color nodo vista para restablecer o=o.parentNode; nodo.Nodo=o; - while(o.tagName!="TABLE" ) + while(o.tagName!="TABLE") o=o.parentNode; - var Mnivel=o.getAttribute("id").split("-"); + var Mnivel=o.getAttribute("id").split("-"); nodo.nivel=Mnivel[1]; while(o.tagName!="TR" ) @@ -243,7 +243,7 @@ function clickLiteralNodo(oLIT,pathimg){ currentpathimg=pathimg; } var signoimg=nodov.imgsigno.getAttribute("value"); - var signo=signoimg.split("_"); + var signo=signoimg.split("_"); if(botonraton==1){ if (signo[0]=="mas" || signo[0]=="menos" ) clickNodo(nodov,pathimg); } @@ -374,13 +374,13 @@ function CreaCeldaVista(nodov,tablanodo){ var nodoTBODYTR=nodoTBODY.childNodes[0]; var oIMG=nodoTBODYTR.getElementsByTagName('IMG')[0]; var HTMLinner=nodoTBODYTR.innerHTML; - + if(nodov.TieneHijos()){ - var patron = new RegExp("nada_c","gi"); + var patron = new RegExp("nada_c","gi"); HTMLinner=HTMLinner.replace(patron,"nada_t"); } else{ - var patron = new RegExp("nada_t","gi"); + var patron = new RegExp("nada_t","gi"); HTMLinner=HTMLinner.replace(patron,"nada_c"); } var auxnodo=nodov; diff --git a/admin/WebConsole/comandos/EliminarImagenCache.php b/admin/WebConsole/comandos/EliminarImagenCache.php index 3c08fc69..a49f6eac 100644 --- a/admin/WebConsole/comandos/EliminarImagenCache.php +++ b/admin/WebConsole/comandos/EliminarImagenCache.php @@ -239,26 +239,25 @@ function TomaPropiedades($cmd,$idambito) $ordenadores=$rs->campos["numordenadores"]; $idmenu=$rs->campos["idmenus"]; - if(count(explode(",",$idmenu))>1) $idmenu=0; + if(count(explode(",",$idmenu))>1) $idmenu=0; $idrepositorio=$rs->campos["idrepositorios"]; - if(count(explode(",",$idrepositorio))>1) $idrepositorio=0; - $idperfilhard=$rs->campos["idperfileshard"]; - if(count(explode(",",$idperfilhard))>1) $idperfilhard=0; - $cache=$rs->campos["caches"]; - if(count(explode(",",$cache))>1) $cache=0; + if(count(explode(",",$idrepositorio))>1) $idrepositorio=0; + $idperfilhard=$rs->campos["idperfileshard"]; + if(count(explode(",",$idperfilhard))>1) $idperfilhard=0; + $cache=$rs->campos["caches"]; + if(count(explode(",",$cache))>1) $cache=0; $idmenu=$rs->campos["idmenus"]; - if(count(explode(",",$idmenu))>1) $idmenu=0; + if(count(explode(",",$idmenu))>1) $idmenu=0; $idprocedimiento=$rs->campos["idprocedimientos"]; - if(count(explode(",",$idprocedimiento))>1) $idprocedimiento=0; - + if(count(explode(",",$idprocedimiento))>1) $idprocedimiento=0; + $gidmenu=$idmenu; $gidprocedimiento=$idprocedimiento; $gidrepositorio=$idrepositorio; $gidperfilhard=$idperfilhard; $gcache=$cache; - + $rs->Cerrar(); - return(true); } return(false); diff --git a/admin/WebConsole/estilos.css b/admin/WebConsole/estilos.css index ff5e36c2..4b37be1f 100644 --- a/admin/WebConsole/estilos.css +++ b/admin/WebConsole/estilos.css @@ -236,8 +236,8 @@ FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 12px; FONT-WEIGHT: 500; - BORDER-BOTTOM:#4f4f4f 1px solid; - BORDER-RIGHT:#4f4f4f 1px solid; + BORDER-BOTTOM:#4f4f4f 1px solid; + BORDER-RIGHT:#4f4f4f 1px solid; } .tabla_listados_sin TD{ @@ -391,7 +391,7 @@ A.tabla_listados_sin:link{ } .tablaprogramacion TD{ - FONT-SIZE: 9pt; + FONT-SIZE: 9pt; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; } @@ -401,7 +401,7 @@ A.tabla_listados_sin:link{ border-right-color: #666666; border-bottom-color: #666666; BACKGROUND-COLOR: #EEEECC; - FONT-SIZE: 9pt; + FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif; } @@ -415,7 +415,7 @@ A.tabla_listados_sin:link{ FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 11px; FONT-WEIGHT: 500; - BORDER-BOTTOM:#000000 1px solid ; + BORDER-BOTTOM:#000000 1px solid; } .tabla_accesos TD{ diff --git a/admin/WebConsole/gestores/gestor_aulas.php b/admin/WebConsole/gestores/gestor_aulas.php index b5625379..e947edb2 100644 --- a/admin/WebConsole/gestores/gestor_aulas.php +++ b/admin/WebConsole/gestores/gestor_aulas.php @@ -276,7 +276,7 @@ INSERT INTO aulas (idcentro, grupoid, nombreaula, urlfoto, inremotepc, cagnon, pizarra, ubicacion, comentarios, puestos, horaresevini, horaresevfin, router, netmask, ntp, dns, proxy, modomul, ipmul, pormul, velmul, modp2p, - timep2p, validacion, paginalogin, paginavalidacion, oglivedir) + timep2p, validacion, paginalogin, paginavalidacion, oglivedir) VALUES (@idcentro, @grupoid, @nombreaula, @urlfoto, @inremotepc, @cagnon, @pizarra, @ubicacion, @comentarios, @puestos, @horaresevini, @horaresevfin, @router, @netmask, @ntp, @dns, @proxy, @modomul, @ipmul, @pormul, @velmul, @modp2p, diff --git a/admin/WebConsole/gestores/gestor_ejecutaracciones.php b/admin/WebConsole/gestores/gestor_ejecutaracciones.php index bf86d9e1..40672678 100644 --- a/admin/WebConsole/gestores/gestor_ejecutaracciones.php +++ b/admin/WebConsole/gestores/gestor_ejecutaracciones.php @@ -1,310 +1,310 @@ -<?php
-// *************************************************************************************************************************************************
-// Aplicación WEB: ogAdmWebCon
-// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creación: Año 2009-2010
-// Fecha Última modificación: Mayo-2005
-// Nombre del fichero: gestor_procedimientos.php
-// Descripción :
-// Gestiona la ejecución de procedimientos
-// *************************************************************************************************************************************************
-include_once("../includes/ctrlacc.php");
-include_once("../clases/AdoPhp.php");
-include_once("../clases/XmlPhp.php");
-include_once("../clases/ArbolVistaXML.php");
-include_once("../clases/SockHidra.php");
-include_once("../includes/CreaComando.php");
-include_once("../includes/constantes.php");
-include_once("../includes/comunes.php");
-include_once("../includes/RecopilaIpesMacs.php");
-//________________________________________________________________________________________________________
-
-$opcion=0; // Inicializa parametros
-
-$idprocedimiento=0;
-$idtarea=0;
-$ambito=0;
-$idambito=0;
-$swc=0; // switch de cliente, esta pagina la llama el cliente a través del browser
-
-if (isset($_POST["opcion"])) $opcion=$_POST["opcion"];
-if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"];
-if (isset($_POST["descriprocedimiento"])) $descriprocedimiento=$_POST["descriprocedimiento"];
-if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
-if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
-if (isset($_POST["idtarea"])) $idtarea=$_POST["idtarea"];
-if (isset($_POST["descritarea"])) $descritarea=$_POST["descritarea"];
-
-if (isset($_GET["opcion"])) $opcion=$_GET["opcion"];
-if (isset($_GET["idprocedimiento"])) $idprocedimiento=$_GET["idprocedimiento"];
-if (isset($_GET["descriprocedimiento"]))$descriprocedimiento=$_GET["descriprocedimiento"];
-if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
-if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
-if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"];
-if (isset($_GET["descritarea"])) $descritarea=$_GET["descritarea"];
-
-if (isset($_GET["swc"])) $swc=$_GET["swc"]; // Switch que indica que la página la solicita un cliente a través del browser
-
-$cmd=CreaComando($cadenaconexion); // Crea objeto comando
-$resul=false;
-if ($cmd){
- $shidra=new SockHidra($servidorhidra,$hidraport);
- $cadenaid="";
- $cadenaip="";
- $cadenamac="";
- $sesion=0;
- $vez=0;
- if(opcion!=$EJECUCION_TAREA)
- RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
- if(opcion!=$EJECUCION_AUTOEXEC){
- //Creación parametros para inserción en tabla acciones
- $sesion=time();
- $cmd->CreaParametro("@tipoaccion",$opcion,1);
- $cmd->CreaParametro("@idtipoaccion",0,1);
- $cmd->CreaParametro("@descriaccion","",0);
- $cmd->CreaParametro("@idordenador",0,1);
- $cmd->CreaParametro("@ip","",0);
- $cmd->CreaParametro("@sesion",$sesion,1);
- $cmd->CreaParametro("@idcomando",0,1);
- $cmd->CreaParametro("@parametros","",0);
- $cmd->CreaParametro("@fechahorareg","",0);
- $cmd->CreaParametro("@fechahorafin","",0);
- $cmd->CreaParametro("@estado",$ACCION_INICIADA,1);
- $cmd->CreaParametro("@resultado",$ACCION_SINRESULTADO,1);
- $cmd->CreaParametro("@descrinotificacion","",0);
- $cmd->CreaParametro("@idprocedimiento",0,1);
- $cmd->CreaParametro("@idtarea",0,1);
- $cmd->CreaParametro("@idcentro",$idcentro,1);
- $cmd->CreaParametro("@ambito",0,1);
- $cmd->CreaParametro("@idambito",0,1);
- $cmd->CreaParametro("@restrambito","",0);
- }
- switch($opcion){
- case $EJECUCION_AUTOEXEC:
- $resul=actualizaAutoexec($idprocedimiento);
- $literal="resultado_gestion_procedimiento";
- break;
- case $EJECUCION_PROCEDIMIENTO:
- $cmd->ParamSetValor("@idtipoaccion",$idprocedimiento);
- $cmd->ParamSetValor("@descriaccion",$descriprocedimiento);
- $resul=ejecucionProcedimiento($idprocedimiento,$ambito,$idambito);
- $literal="resultado_gestion_procedimiento";
- break;
- case $EJECUCION_TAREA:
- $cmd->ParamSetValor("@idtipoaccion",$idtarea);
- $cmd->ParamSetValor("@descriaccion",$descritarea);
- $cmd->ParamSetValor("@idtarea",$idtarea);
- $resul=ejecucionTarea($idtarea);
- $literal="resultado_ejecutar_tareas";
- break;
- }
- $cmd->Conexion->Cerrar();
-}
-if ($resul){
- if(empty($swc)){
- echo $literal."(1,'".$cmd->DescripUltimoError()."');".chr(13);
- }
- else{
- echo '<SCRIPT language="javascript">'.chr(13);
- echo 'alert("El item se ha ejecutado correctamente");'.chr(13);
- echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";';
- echo 'history.back();';
- echo '</SCRIPT>';
- }
-}
-else{
- if(empty($swc)){
- echo $literal."(0,'".$cmd->DescripUltimoError()."')";
- }
- else{
- echo '<SCRIPT language="javascript">'.chr(13);
- echo 'alert("***ATENCIÓN:El item NO se ha podido ejecutar");'.chr(13);
- echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";';
- echo 'location.href=wurl;';
- echo '</SCRIPT>';
- }
-}
-//********************************************************************************************************
-//
-// Incorpora un procedimiento como autoexec
-//________________________________________________________________________________________________________
-function actualizaAutoexec($idprocedimiento)
-{
- global $cadenaid;
- global $cmd;
-
- $cmd->texto="UPDATE ordenadores SET idproautoexec=".$idprocedimiento." WHERE idordenador IN (".$cadenaid.")";
- $resul=$cmd->Ejecutar();
- return(resul);
-}
-//________________________________________recorreProcedimientos________________________________________________________________
-//
-// Ejecuta un procedimiento: lo registra en acciones y lo envía por la red
-//________________________________________________________________________________________________________
-function ejecucionProcedimiento($idprocedimiento,$ambito,$idambito)
-{
- return(recorreProcedimientos($idprocedimiento,$ambito,$idambito));
-}
-//________________________________________________________________________________________________________
-//
-// Ejecuta una tarea: la registra en acciones y la envía por la red
-//________________________________________________________________________________________________________
-function ejecucionTarea($idtarea)
-{
- return(recorreTareas($idtarea));
-}
-//________________________________________________________________________________________________________
-function recorreProcedimientos($idprocedimiento,$ambito,$idambito)
-{
- global $cmd;
- global $sesion;
-
- $cmd->texto="SELECT idcomando,procedimientoid,parametros
- FROM procedimientos_acciones
- WHERE idprocedimiento=".$idprocedimiento."
- ORDER BY orden";
-
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return(false); // Error al abrir recordset
- while (!$rs->EOF){
- $procedimientoid=$rs->campos["procedimientoid"];
- if($procedimientoid>0){ // Procedimiento recursivo
- if(!recorreProcedimientos($procedimientoid,$ambito,$idambito)){
- return(false);
- }
- }
- else{
- $parametros=$rs->campos["parametros"];
- $idcomando=$rs->campos["idcomando"];
- // Ticket 681: bucle infinito en procedimiento compuesto (J.M. Alonso).
- do{
- $nwsesion=time();
- }while($sesion==$nwsesion);
- $sesion=$nwsesion;
- $cmd->ParamSetValor("@sesion",$sesion);
- // Fin ticket 681.
- if(!insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito))
- return(false);
- }
- $rs->Siguiente();
- }
- return(true);
-}
-//________________________________________________________________________________________________________
-function recorreTareas($idtarea)
-{
- global $cadenaid;
- global $cadenaip;
- global $cadenamac;
- global $cmd;
-
- $cmd->texto="SELECT tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid,
- tareas.ambito,tareas.idambito,tareas.restrambito
- FROM tareas
- INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea
- WHERE tareas_acciones.idtarea=".$idtarea."
- ORDER BY tareas_acciones.orden";
- //echo $cmd->texto;
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return(false); // Error al abrir recordset
- while (!$rs->EOF){
- $tareaid=$rs->campos["tareaid"];
- if($tareaid>0){ // Tarea recursiva
- if(!recorreTareas($tareaid)){
- return(false);
- }
- }
- else{
- $ambito=$rs->campos["ambito"];
- $idambito=$rs->campos["idambito"];
- if($ambito==0 && $idambito==0){ // Ámbito restringido
- $idambito=$rs->campos["restrambito"];
- }
- RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
- $idprocedimiento=$rs->campos["idprocedimiento"];
- if(!recorreProcedimientos($idprocedimiento,$ambito,$idambito))
- return(false);
- }
- $rs->Siguiente();
- }
- return(true);
-}
-//________________________________________________________________________________________________________
-//
-// Registra un procedimiento para un ambito concreto
-//________________________________________________________________________________________________________
-function insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito)
-{
- global $cadenaid;
- global $cadenaip;
- global $cmd;
- global $sesion;
- global $vez;
-
- if($ambito==0){ // Ambito restringido a un subconjuto de ordenadores con formato (idordenador1,idordenador2,etc)
- $cmd->ParamSetValor("@restrambito",$idambito);
- $idambito=0;
- }
-
- $cmd->ParamSetValor("@idcomando",$idcomando);
- $cmd->ParamSetValor("@idprocedimiento",$idprocedimiento);
- $cmd->ParamSetValor("@parametros",$parametros);
- $cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s"));
- $cmd->ParamSetValor("@ambito",$ambito);
- $cmd->ParamSetValor("@idambito",$idambito);
-
- if(strlen($cadenaip)==0) return(true);
-
- $auxID=explode(",",$cadenaid);
- $auxIP=explode(";",$cadenaip);
-
- for ($i=0;$i<sizeof($auxID);$i++){
- $cmd->ParamSetValor("@idordenador",$auxID[$i]);
- $cmd->ParamSetValor("@ip",$auxIP[$i]);
- $cmd->texto="INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,restrambito,idprocedimiento,idtarea,idcentro)
- VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip,@sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idprocedimiento,@idtarea,@idcentro)";
- $resul=$cmd->Ejecutar();
- //echo $cmd->texto;
- if(!$resul) return(false);
-
- /* Sólo envía por la red el primer comando, el resto, si hubiera,
- lo encontrará el cliente a través de los comandos pendientes */
- if(empty($vez)){
- if(!enviaComando($parametros,$sesion)) return(false);
- $vez++;
- }
- }
- return(true);
-}
-//________________________________________________________________________________________________________
-//
-// Envia un procedimiento a un grupo de ordenadores a través de la red
-//________________________________________________________________________________________________________
-function enviaComando($parametros,$sesion)
-{
- global $cadenaid;
- global $cadenaip;
- global $cadenamac;
- global $servidorhidra;
- global $hidraport;
- global $LONCABECERA;
- global $shidra;
-
- // Envio al servidor
-
- $aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13);
- $acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento
-
- if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
- $parametros.=$aplicacion;
- $parametros.=$acciones;
- $shidra->envia_comando($parametros);
- $trama=$shidra->recibe_respuesta();
- $shidra->desconectar();
- }
- return(true);
-}
-?>
-
+<?php +// ************************************************************************************************************************************************* +// Aplicación WEB: ogAdmWebCon +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Año 2009-2010 +// Fecha Última modificación: Mayo-2005 +// Nombre del fichero: gestor_procedimientos.php +// Descripción : +// Gestiona la ejecución de procedimientos +// ************************************************************************************************************************************************* +include_once("../includes/ctrlacc.php"); +include_once("../clases/AdoPhp.php"); +include_once("../clases/XmlPhp.php"); +include_once("../clases/ArbolVistaXML.php"); +include_once("../clases/SockHidra.php"); +include_once("../includes/CreaComando.php"); +include_once("../includes/constantes.php"); +include_once("../includes/comunes.php"); +include_once("../includes/RecopilaIpesMacs.php"); +//________________________________________________________________________________________________________ + +$opcion=0; // Inicializa parametros + +$idprocedimiento=0; +$idtarea=0; +$ambito=0; +$idambito=0; +$swc=0; // switch de cliente, esta pagina la llama el cliente a través del browser + +if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; +if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"]; +if (isset($_POST["descriprocedimiento"])) $descriprocedimiento=$_POST["descriprocedimiento"]; +if (isset($_POST["ambito"])) $ambito=$_POST["ambito"]; +if (isset($_POST["idambito"])) $idambito=$_POST["idambito"]; +if (isset($_POST["idtarea"])) $idtarea=$_POST["idtarea"]; +if (isset($_POST["descritarea"])) $descritarea=$_POST["descritarea"]; + +if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; +if (isset($_GET["idprocedimiento"])) $idprocedimiento=$_GET["idprocedimiento"]; +if (isset($_GET["descriprocedimiento"]))$descriprocedimiento=$_GET["descriprocedimiento"]; +if (isset($_GET["ambito"])) $ambito=$_GET["ambito"]; +if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; +if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"]; +if (isset($_GET["descritarea"])) $descritarea=$_GET["descritarea"]; + +if (isset($_GET["swc"])) $swc=$_GET["swc"]; // Switch que indica que la página la solicita un cliente a través del browser + +$cmd=CreaComando($cadenaconexion); // Crea objeto comando +$resul=false; +if ($cmd){ + $shidra=new SockHidra($servidorhidra,$hidraport); + $cadenaid=""; + $cadenaip=""; + $cadenamac=""; + $sesion=0; + $vez=0; + if(opcion!=$EJECUCION_TAREA) + RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito + if(opcion!=$EJECUCION_AUTOEXEC){ + //Creación parametros para inserción en tabla acciones + $sesion=time(); + $cmd->CreaParametro("@tipoaccion",$opcion,1); + $cmd->CreaParametro("@idtipoaccion",0,1); + $cmd->CreaParametro("@descriaccion","",0); + $cmd->CreaParametro("@idordenador",0,1); + $cmd->CreaParametro("@ip","",0); + $cmd->CreaParametro("@sesion",$sesion,1); + $cmd->CreaParametro("@idcomando",0,1); + $cmd->CreaParametro("@parametros","",0); + $cmd->CreaParametro("@fechahorareg","",0); + $cmd->CreaParametro("@fechahorafin","",0); + $cmd->CreaParametro("@estado",$ACCION_INICIADA,1); + $cmd->CreaParametro("@resultado",$ACCION_SINRESULTADO,1); + $cmd->CreaParametro("@descrinotificacion","",0); + $cmd->CreaParametro("@idprocedimiento",0,1); + $cmd->CreaParametro("@idtarea",0,1); + $cmd->CreaParametro("@idcentro",$idcentro,1); + $cmd->CreaParametro("@ambito",0,1); + $cmd->CreaParametro("@idambito",0,1); + $cmd->CreaParametro("@restrambito","",0); + } + switch($opcion){ + case $EJECUCION_AUTOEXEC: + $resul=actualizaAutoexec($idprocedimiento); + $literal="resultado_gestion_procedimiento"; + break; + case $EJECUCION_PROCEDIMIENTO: + $cmd->ParamSetValor("@idtipoaccion",$idprocedimiento); + $cmd->ParamSetValor("@descriaccion",$descriprocedimiento); + $resul=ejecucionProcedimiento($idprocedimiento,$ambito,$idambito); + $literal="resultado_gestion_procedimiento"; + break; + case $EJECUCION_TAREA: + $cmd->ParamSetValor("@idtipoaccion",$idtarea); + $cmd->ParamSetValor("@descriaccion",$descritarea); + $cmd->ParamSetValor("@idtarea",$idtarea); + $resul=ejecucionTarea($idtarea); + $literal="resultado_ejecutar_tareas"; + break; + } + $cmd->Conexion->Cerrar(); +} +if ($resul){ + if(empty($swc)){ + echo $literal."(1,'".$cmd->DescripUltimoError()."');".chr(13); + } + else{ + echo '<SCRIPT language="javascript">'.chr(13); + echo 'alert("El item se ha ejecutado correctamente");'.chr(13); + echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";'; + echo 'history.back();'; + echo '</SCRIPT>'; + } +} +else{ + if(empty($swc)){ + echo $literal."(0,'".$cmd->DescripUltimoError()."')"; + } + else{ + echo '<SCRIPT language="javascript">'.chr(13); + echo 'alert("***ATENCIÓN:El item NO se ha podido ejecutar");'.chr(13); + echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";'; + echo 'location.href=wurl;'; + echo '</SCRIPT>'; + } +} +//******************************************************************************************************** +// +// Incorpora un procedimiento como autoexec +//________________________________________________________________________________________________________ +function actualizaAutoexec($idprocedimiento) +{ + global $cadenaid; + global $cmd; + + $cmd->texto="UPDATE ordenadores SET idproautoexec=".$idprocedimiento." WHERE idordenador IN (".$cadenaid.")"; + $resul=$cmd->Ejecutar(); + return(resul); +} +//________________________________________recorreProcedimientos________________________________________________________________ +// +// Ejecuta un procedimiento: lo registra en acciones y lo envía por la red +//________________________________________________________________________________________________________ +function ejecucionProcedimiento($idprocedimiento,$ambito,$idambito) +{ + return(recorreProcedimientos($idprocedimiento,$ambito,$idambito)); +} +//________________________________________________________________________________________________________ +// +// Ejecuta una tarea: la registra en acciones y la envía por la red +//________________________________________________________________________________________________________ +function ejecucionTarea($idtarea) +{ + return(recorreTareas($idtarea)); +} +//________________________________________________________________________________________________________ +function recorreProcedimientos($idprocedimiento,$ambito,$idambito) +{ + global $cmd; + global $sesion; + + $cmd->texto="SELECT idcomando,procedimientoid,parametros + FROM procedimientos_acciones + WHERE idprocedimiento=".$idprocedimiento." + ORDER BY orden"; + + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return(false); // Error al abrir recordset + while (!$rs->EOF){ + $procedimientoid=$rs->campos["procedimientoid"]; + if($procedimientoid>0){ // Procedimiento recursivo + if(!recorreProcedimientos($procedimientoid,$ambito,$idambito)){ + return(false); + } + } + else{ + $parametros=$rs->campos["parametros"]; + $idcomando=$rs->campos["idcomando"]; + // Ticket 681: bucle infinito en procedimiento compuesto (J.M. Alonso). + do{ + $nwsesion=time(); + }while($sesion==$nwsesion); + $sesion=$nwsesion; + $cmd->ParamSetValor("@sesion",$sesion); + // Fin ticket 681. + if(!insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito)) + return(false); + } + $rs->Siguiente(); + } + return(true); +} +//________________________________________________________________________________________________________ +function recorreTareas($idtarea) +{ + global $cadenaid; + global $cadenaip; + global $cadenamac; + global $cmd; + + $cmd->texto="SELECT tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid, + tareas.ambito,tareas.idambito,tareas.restrambito + FROM tareas + INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea + WHERE tareas_acciones.idtarea=".$idtarea." + ORDER BY tareas_acciones.orden"; + //echo $cmd->texto; + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return(false); // Error al abrir recordset + while (!$rs->EOF){ + $tareaid=$rs->campos["tareaid"]; + if($tareaid>0){ // Tarea recursiva + if(!recorreTareas($tareaid)){ + return(false); + } + } + else{ + $ambito=$rs->campos["ambito"]; + $idambito=$rs->campos["idambito"]; + if($ambito==0 && $idambito==0){ // Ámbito restringido + $idambito=$rs->campos["restrambito"]; + } + RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito + $idprocedimiento=$rs->campos["idprocedimiento"]; + if(!recorreProcedimientos($idprocedimiento,$ambito,$idambito)) + return(false); + } + $rs->Siguiente(); + } + return(true); +} +//________________________________________________________________________________________________________ +// +// Registra un procedimiento para un ambito concreto +//________________________________________________________________________________________________________ +function insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito) +{ + global $cadenaid; + global $cadenaip; + global $cmd; + global $sesion; + global $vez; + + if($ambito==0){ // Ambito restringido a un subconjuto de ordenadores con formato (idordenador1,idordenador2,etc) + $cmd->ParamSetValor("@restrambito",$idambito); + $idambito=0; + } + + $cmd->ParamSetValor("@idcomando",$idcomando); + $cmd->ParamSetValor("@idprocedimiento",$idprocedimiento); + $cmd->ParamSetValor("@parametros",$parametros); + $cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s")); + $cmd->ParamSetValor("@ambito",$ambito); + $cmd->ParamSetValor("@idambito",$idambito); + + if(strlen($cadenaip)==0) return(true); + + $auxID=explode(",",$cadenaid); + $auxIP=explode(";",$cadenaip); + + for ($i=0;$i<sizeof($auxID);$i++){ + $cmd->ParamSetValor("@idordenador",$auxID[$i]); + $cmd->ParamSetValor("@ip",$auxIP[$i]); + $cmd->texto="INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,restrambito,idprocedimiento,idtarea,idcentro) + VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip,@sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idprocedimiento,@idtarea,@idcentro)"; + $resul=$cmd->Ejecutar(); + //echo $cmd->texto; + if(!$resul) return(false); + + /* Sólo envía por la red el primer comando, el resto, si hubiera, + lo encontrará el cliente a través de los comandos pendientes */ + if(empty($vez)){ + if(!enviaComando($parametros,$sesion)) return(false); + $vez++; + } + } + return(true); +} +//________________________________________________________________________________________________________ +// +// Envia un procedimiento a un grupo de ordenadores a través de la red +//________________________________________________________________________________________________________ +function enviaComando($parametros,$sesion) +{ + global $cadenaid; + global $cadenaip; + global $cadenamac; + global $servidorhidra; + global $hidraport; + global $LONCABECERA; + global $shidra; + + // Envio al servidor + + $aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13); + $acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento + + if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra + $parametros.=$aplicacion; + $parametros.=$acciones; + $shidra->envia_comando($parametros); + $trama=$shidra->recibe_respuesta(); + $shidra->desconectar(); + } + return(true); +} +?> + diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_aulas_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_aulas_eng.js index 9c4dd3c5..82f9c0c1 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/propiedades_aulas_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_aulas_eng.js @@ -1,7 +1,7 @@ //________________________________________________________________________________________________________ // // Fichero de idiomas javascript: propiedades_aulas_eng.js -// Idioma: Inglés +// Idioma: Inglés //________________________________________________________________________________________________________ TbMsg=new Array; TbMsg[0]="El nombre del aula debe contener caracteres alfanumericos"; diff --git a/admin/WebConsole/images/M_Iconos.js b/admin/WebConsole/images/M_Iconos.js index 122eefa3..975f689d 100644 --- a/admin/WebConsole/images/M_Iconos.js +++ b/admin/WebConsole/images/M_Iconos.js @@ -1,85 +1,84 @@ -// ********************************************************************************************************// Libreria de scripts de Javascript
-// Autor: Jos� Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creaci�n: 2009-2010
-// Fecha �ltima modificaci�n: Noviembre-2005
-// Nombre del fichero:M_Iconos
-// Descripci�n :
-// Este fichero implementa las funciones javascript del fichero M_Iconos.php
-// ********************************************************************************************************
-// Opciones
-var Insertar=1;
-var Eliminar=2;
-var Modificar=3;
-var Consultar=4;
-
-// Acciones
-var Sin_accion=0;
-var Insertar_registro=1;
-var Borrar_registro=2;
-var Modificar_registro=3;
-var Leer_registro=4;
-
-var CurrentFecha=null;
-//-------------------------------------------------------------------------------------------------------------
-function menu(){
- w=window.parent;
- w.location.href="../menu.php"
-}
-//-------------------------------------------------------------------------------------------------------------
- function Editar(){
- document.fdatos.opcion.value=Modificar;
- document.fdatos.accion.value=Leer_registro;
- document.fdatos.submit()
- }
-//-------------------------------------------------------------------------------------------------------------
- function Agregar() {
- document.fdatos.opcion.value=Insertar;
- document.fdatos.accion.value=Sin_accion;
- document.fdatos.submit()
- }
-//-------------------------------------------------------------------------------------------------------------
- function Borrar(){
- document.fdatos.opcion.value=Eliminar;
- document.fdatos.accion.value=Leer_registro;
- document.fdatos.submit()
- }
-//-------------------------------------------------------------------------------------------------------------
- function Cancelar() {
- document.fdatos.opcion.value=Insertar;
- document.fdatos.accion.value=Sin_accion;
- document.fdatos.idicono.value=0;
- document.fdatos.submit()
- }
-//-------------------------------------------------------------------------------------------------------------
-function Confirmar() {
- var sw;
- sw=parseInt(document.fdatos.opcion.value);
- switch (sw) {
- case Insertar :
- if (comprobar_datos()){
- document.fdatos.accion.value=Insertar_registro;
- document.fdatos.submit()
- }
- break;
- case Eliminar :
- document.fdatos.accion.value=Borrar_registro;
- document.fdatos.submit();
- break;
- case Modificar :
- if (comprobar_datos()){
- document.fdatos.accion.value=Modificar_registro;
- document.fdatos.submit()
- }
- break
- }
-}
-//----------------------------------------------------------------------------------------------
-function comprobar_datos(){
-
- if (document.fdatos.descripcion.value==""){
- alert(TbMsg["DESCRIP"]);
- document.forms.fdatos.descripcion.focus();
- return(false)
- }
- return(true)
-}
+// ********************************************************************************************************// Libreria de scripts de Javascript +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: 2009-2010 +// Fecha última modificación: Noviembre-2005 +// Nombre del fichero:M_Iconos +// Descripción: +// Este fichero implementa las funciones javascript del fichero M_Iconos.php +// ******************************************************************************************************** +// Opciones +var Insertar=1; +var Eliminar=2; +var Modificar=3; +var Consultar=4; + +// Acciones +var Sin_accion=0; +var Insertar_registro=1; +var Borrar_registro=2; +var Modificar_registro=3; +var Leer_registro=4; + +var CurrentFecha=null; +//------------------------------------------------------------------------------------------------------------- +function menu(){ + w=window.parent; + w.location.href="../menu.php" +} +//------------------------------------------------------------------------------------------------------------- + function Editar(){ + document.fdatos.opcion.value=Modificar; + document.fdatos.accion.value=Leer_registro; + document.fdatos.submit() + } +//------------------------------------------------------------------------------------------------------------- + function Agregar() { + document.fdatos.opcion.value=Insertar; + document.fdatos.accion.value=Sin_accion; + document.fdatos.submit() + } +//------------------------------------------------------------------------------------------------------------- + function Borrar(){ + document.fdatos.opcion.value=Eliminar; + document.fdatos.accion.value=Leer_registro; + document.fdatos.submit() + } +//------------------------------------------------------------------------------------------------------------- + function Cancelar() { + document.fdatos.opcion.value=Insertar; + document.fdatos.accion.value=Sin_accion; + document.fdatos.idicono.value=0; + document.fdatos.submit() + } +//------------------------------------------------------------------------------------------------------------- +function Confirmar() { + var sw; + sw=parseInt(document.fdatos.opcion.value); + switch (sw) { + case Insertar : + if (comprobar_datos()){ + document.fdatos.accion.value=Insertar_registro; + document.fdatos.submit() + } + break; + case Eliminar : + document.fdatos.accion.value=Borrar_registro; + document.fdatos.submit(); + break; + case Modificar : + if (comprobar_datos()){ + document.fdatos.accion.value=Modificar_registro; + document.fdatos.submit() + } + break + } +} +//---------------------------------------------------------------------------------------------- +function comprobar_datos(){ + if (document.fdatos.descripcion.value==""){ + alert(TbMsg["DESCRIP"]); + document.forms.fdatos.descripcion.focus(); + return(false) + } + return(true) +} diff --git a/admin/WebConsole/index.php b/admin/WebConsole/index.php index f416b7f3..2b522d59 100644 --- a/admin/WebConsole/index.php +++ b/admin/WebConsole/index.php @@ -120,15 +120,20 @@ function PulsaEnter(oEvento){ </form> </div> <div class="pie"> +<span><a href="https://opengnsys.es/"> <?php -// Añadir versión y URL al proyecto. -$versionfile="../doc/VERSION.txt"; -if (file_exists ($versionfile)) { - echo '<span><a href="https://opengnsys.es/">'; - include ($versionfile); - echo '</a></span>'; +// Añadir versión en el enlace a la URL del proyecto. +$data = json_decode(@file_get_contents(__DIR__ . '/../doc/VERSION.json')); +if (empty($data->project)) { + echo "OpenGnsys"; +} else { + echo @$data->project.' ' + .@$data->version.' ' + .(isset($data->codename) ? '('.$data->codename.') ' : '') + .@$data->release; } ?> +</a></span> <form action="#" name="lang" method="post"> <?php echo HTMLSELECT($cmd,0,'idiomas',$idi,'nemonico','descripcion',80); ?> <button type="submit"><?php echo $TbMsg["ACCESS_CHOOSE"]; ?></button> diff --git a/admin/WebConsole/nada.php b/admin/WebConsole/nada.php index 52d0d028..84e7b490 100644 --- a/admin/WebConsole/nada.php +++ b/admin/WebConsole/nada.php @@ -152,6 +152,13 @@ $vernav=end($buscavernav); if ($device == "ipad" || $device == "iphone" || $device == "android" ) { +$data = json_decode(@file_get_contents(__DIR__ . '/../doc/VERSION.json')); +if (empty($data->project)) { + $version = "OpenGnsys"; +} else { + $version = @$data->project.' ' . @$data->version.' ' + . (isset($data->codename) ? '('.$data->codename.') ' : '') . @$data->release; +} ?> <html> <head> @@ -168,7 +175,7 @@ if ($device == "ipad" || $device == "iphone" || $device == "android" ) <td colspan="3" align="center"><SPAN align=center class=cabeceras><font size="4"><?php echo $TbMsg[0] ;?></font></SPAN></td> </tr> <tr> - <td colspan="3" align="center"><SPAN align=center class=cabeceras><font size="4"><?php $versionfile="../doc/VERSION.txt";if (file_exists ($versionfile)){include ($versionfile);} ;?></font></SPAN></td> + <td colspan="3" align="center"><SPAN align=center class=cabeceras><font size="4"><?php echo $version; ?></font></SPAN></td> </tr> <tr> <td colspan="3" align="center"> </td> diff --git a/admin/WebConsole/principal/acercade.php b/admin/WebConsole/principal/acercade.php index 2981ce0e..f95e07c1 100644 --- a/admin/WebConsole/principal/acercade.php +++ b/admin/WebConsole/principal/acercade.php @@ -24,10 +24,15 @@ include_once("../idiomas/php/".$idioma."/acercade_".$idioma.".php"); <p> <?php // Añadir versión. -$versionfile="../../doc/VERSION.txt"; -if (file_exists ($versionfile)) - include ($versionfile); - +$data = json_decode(@file_get_contents(__DIR__ . '/../../doc/VERSION.json')); +if (empty($data->project)) { + echo "OpenGnsys"; +} else { + echo @$data->project.' ' + .@$data->version.' ' + .(isset($data->codename) ? '(<a href="'.@$data->definition.'" target="_blank">'.$data->codename.'</a>) ' : '') + .@$data->release; +} ?> </p> <?php @@ -129,8 +134,9 @@ fclose($crearficheroinicio); <p><?php if (file_exists ($changelogfile)){ system("cp ../../doc/$buschangelog ../api"); - echo "<strong><a href='../api/$buschangelog' target='_blank'>".$TbMsg["CHANGE"]."</a></strong>"; - include ($versionfile);} + echo "<strong><a href='../api/$buschangelog' target='_blank'>".$TbMsg["CHANGE"]."</a></strong>" + .@$data->project.' '.@$data->version.' '.(isset($data->codename)?'('.$data->codename.')':''); + } ?></p> <p><?php echo "<strong><a href='$ficheroinicio' target='_blank'>".$TbMsg["MANUAL"]."</a></strong>";?></p> diff --git a/admin/WebConsole/rest/common.php b/admin/WebConsole/rest/common.php index 8d192035..bc39ced9 100644 --- a/admin/WebConsole/rest/common.php +++ b/admin/WebConsole/rest/common.php @@ -13,6 +13,7 @@ // Common constants. define('REST_LOGFILE', '/opt/opengnsys/log/rest.log'); +define('VERSION_FILE', '/opt/opengnsys/doc/VERSION.json'); // Set time zone. if (function_exists("date_default_timezone_set")) { @@ -247,25 +248,28 @@ $app->hook('slim.after', function() use ($app) { * @return JSON object with basic server information (version, services, etc.) */ $app->get('/info', function() { + $response = new \stdClass; // Reading version file. - @list($project, $version, $release) = explode(' ', file_get_contents('/opt/opengnsys/doc/VERSION.txt')); - $response['project'] = trim($project); - $response['version'] = trim($version); - $response['release'] = trim($release); + $data = json_decode(@file_get_contents(VERSION_FILE)); + if (isset($data->project)) { + $response = $data; + } else { + $response->project = 'OpenGnsys'; + } // Getting actived services. @$services = parse_ini_file('/etc/default/opengnsys'); - $response['services'] = Array(); + $response->services = Array(); if (@$services["RUN_OGADMSERVER"] === "yes") { - array_push($response['services'], "server"); + array_push($response->services, "server"); $hasOglive = true; } - if (@$services["RUN_OGADMREPO"] === "yes") array_push($response['services'], "repository"); - if (@$services["RUN_BTTRACKER"] === "yes") array_push($response['services'], "tracker"); + if (@$services["RUN_OGADMREPO"] === "yes") array_push($response->services, "repository"); + if (@$services["RUN_BTTRACKER"] === "yes") array_push($response->services, "tracker"); // Reading installed ogLive information file. if ($hasOglive === true) { $data = json_decode(@file_get_contents('/opt/opengnsys/etc/ogliveinfo.json')); if (isset($data->oglive)) { - $response['oglive'] = $data->oglive; + $response->oglive = $data->oglive; } } jsonResponse(200, $response); diff --git a/admin/WebConsole/rest/opengnsys-api.yml b/admin/WebConsole/rest/opengnsys-api.yml index fcd4961f..13ea37a1 100644 --- a/admin/WebConsole/rest/opengnsys-api.yml +++ b/admin/WebConsole/rest/opengnsys-api.yml @@ -87,6 +87,12 @@ paths: version: description: project version type: string + codename: + description: version codename + type: string + definition: + description: codename definition URL + type: string release: description: project release type: string @@ -122,7 +128,7 @@ paths: description: ISO file type: string required: [ distribution, kernel, architecture, revision, directory, iso ] - required: [ project, version, release, services ] + required: [ project, services ] tags: - server - repository diff --git a/admin/WebConsole/rest/remotepc.php b/admin/WebConsole/rest/remotepc.php index 39224636..4bf7b6b5 100644 --- a/admin/WebConsole/rest/remotepc.php +++ b/admin/WebConsole/rest/remotepc.php @@ -81,7 +81,7 @@ $app->post('/ous/:ouid/images/:imageid/reserve(/)', 'validateApiKey', writeRemotepcLog($app->request()->getResourceUri(). ": Parameters: labid=$labid, maxtime=$maxtime"); // Choose older not-reserved client with image installed and get ogAdmServer data. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, entornos.ipserveradm, entornos.portserveradm, +SELECT adm.idusuario, entornos.ipserveradm, entornos.portserveradm, ordenadores.idordenador, ordenadores.nombreordenador, ordenadores.ip, ordenadores.mac, ordenadores.agentkey, ordenadores_particiones.numdisk, ordenadores_particiones.numpar, aulas.idaula, aulas.idcentro @@ -92,7 +92,7 @@ SELECT adm.idadministradorcentro, entornos.ipserveradm, entornos.portserveradm, RIGHT JOIN ordenadores_particiones USING(idordenador) RIGHT JOIN imagenes USING(idimagen) LEFT JOIN remotepc ON remotepc.id=ordenadores.idordenador - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND aulas.idcentro = '$ouid' AND aulas.idaula LIKE '$labid' AND aulas.inremotepc = 1 AND imagenes.idimagen = '$imageid' AND imagenes.inremotepc = 1 AND (remotepc.reserved < NOW() OR ISNULL(reserved)) @@ -103,7 +103,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error opening recordset. // Check if user is admin and client exists. $rs->Primero(); - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idordenador"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idordenador"])) { // Read query data. $serverip = $rs->campos["ipserveradm"]; $serverport = $rs->campos["portserveradm"]; @@ -290,13 +290,13 @@ $app->post('/ous/:ouid/labs/:labid/clients/:clntid/events', 'validateApiKey', writeRemotepcLog($app->request()->getResourceUri(). ": Parameters: urlLogin=$urlLogin, urlLogout=$urlLogout"); // Select client data for UDS compatibility. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, ordenadores.idordenador, remotepc.* +SELECT adm.idusuario, ordenadores.idordenador, remotepc.* FROM remotepc RIGHT JOIN ordenadores ON remotepc.id=ordenadores.idordenador JOIN aulas USING(idaula) RIGHT JOIN administradores_centros AS adm USING(idcentro) RIGHT JOIN usuarios USING(idusuario) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND idcentro = '$ouid' AND aulas.idaula ='$labid' AND ordenadores.idordenador = '$clntid'; EOD; @@ -305,7 +305,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error opening recordset. // Check if user is admin and client exists. $rs->Primero(); - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idordenador"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idordenador"])) { // Check if client is reserved. if (! is_null($rs->campos["reserved"])) { // Updating DB if client is reserved. @@ -381,12 +381,12 @@ $app->post('/ous/:ouid/labs/:labid/clients/:clntid/session', 'validateApiKey', writeRemotepcLog($app->request()->getResourceUri(). ": Parameters: deadLine=$deadLine"); // Get client's data. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, ordenadores.idordenador, remotepc.* +SELECT adm.idusuario, ordenadores.idordenador, remotepc.* FROM remotepc RIGHT JOIN ordenadores ON remotepc.id=ordenadores.idordenador JOIN aulas USING(idaula) RIGHT JOIN administradores_centros AS adm USING(idcentro) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND aulas.idcentro = '$ouid' AND aulas.idaula = '$labid' AND ordenadores.idordenador = '$clntid'; EOD; @@ -395,7 +395,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error opening recordset. // Check if user is admin and client exists. $rs->Primero(); - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idordenador"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idordenador"])) { // Check if client is reserved. if (! is_null($rs->campos["urllogin"])) { // Read query data. @@ -479,13 +479,13 @@ $app->delete('/ous/:ouid/labs/:labid/clients/:clntid/unreserve', 'validateApiKey // Select client data for UDS compatibility. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, ordenadores.idordenador, ordenadores.ip, ordenadores.agentkey, remotepc.reserved +SELECT adm.idusuario, ordenadores.idordenador, ordenadores.ip, ordenadores.agentkey, remotepc.reserved FROM remotepc RIGHT JOIN ordenadores ON remotepc.id=ordenadores.idordenador JOIN aulas USING(idaula) RIGHT JOIN administradores_centros AS adm USING(idcentro) RIGHT JOIN usuarios USING(idusuario) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND idcentro = '$ouid' AND aulas.idaula ='$labid' AND ordenadores.idordenador = '$clntid'; EOD; @@ -494,7 +494,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error opening recordset. // Check if user is admin and client exists. $rs->Primero(); - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idordenador"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idordenador"])) { // Check if client is reserved. if (! is_null($rs->campos["reserved"])) { // Read query data. diff --git a/admin/WebConsole/rest/server.php b/admin/WebConsole/rest/server.php index 258b0160..1721411d 100644 --- a/admin/WebConsole/rest/server.php +++ b/admin/WebConsole/rest/server.php @@ -90,12 +90,12 @@ function getStatus($ouid, $labid, $clntid=0) { // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, entornos.ipserveradm, entornos.portserveradm, +SELECT adm.idusuario, entornos.ipserveradm, entornos.portserveradm, aulas.idaula, ordenadores.idordenador, ordenadores.ip FROM entornos, ordenadores JOIN aulas USING(idaula) RIGHT JOIN administradores_centros AS adm USING(idcentro) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid' AND aulas.idaula='$labid' EOD; @@ -111,7 +111,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin and asset exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and (($single and checkParameter($rs->campos["idordenador"])) or (! $single and checkParameter($rs->campos["idaula"])))) { + if (checkAdmin($rs->campos["idusuario"]) and (($single and checkParameter($rs->campos["idordenador"])) or (! $single and checkParameter($rs->campos["idaula"])))) { // First, try to connect to ogAdmCleint service. $serverip = $rs->campos["ipserveradm"]; $serverport = $rs->campos["portserveradm"]; @@ -321,7 +321,7 @@ $app->get('/ous/:ouid(/)', 'validateApiKey', SELECT * FROM centros RIGHT JOIN administradores_centros USING(idcentro) - WHERE administradores_centros.idadministradorcentro = '$userid' + WHERE administradores_centros.idusuario = '$userid' AND centros.idcentro = '$ouid' LIMIT 1; EOD; @@ -329,7 +329,7 @@ EOD; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); - if (checkAdmin($rs->campos["idadministradorcentro"]) and + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idcentro"])) { $response['id'] = (int)$ouid; $response['name'] = $rs->campos["nombrecentro"]; @@ -353,10 +353,10 @@ $app->get('/ous/:ouid/groups(/)', 'validateApiKey', function($ouid) { $ouid = htmlspecialchars($ouid); // List group of labs if user is OU's admin. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, grupos.* +SELECT adm.idusuario, grupos.* FROM grupos RIGHT JOIN administradores_centros AS adm USING(idcentro) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND idcentro='$ouid'; EOD; $rs=new Recordset; @@ -364,7 +364,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin. - if (checkAdmin($rs->campos["idadministradorcentro"])) { + if (checkAdmin($rs->campos["idusuario"])) { $response = Array(); // Read data. if (! is_null($rs->campos["idcentro"])) { @@ -401,12 +401,12 @@ $app->get('/ous/:ouid/labs(/)', 'validateApiKey', $ouid = htmlspecialchars($ouid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, aulas.*, grp.idgrupo AS group_id, +SELECT adm.idusuario, aulas.*, grp.idgrupo AS group_id, grp.nombregrupoordenador, grp.grupoid AS group_group_id, grp.comentarios FROM aulas RIGHT JOIN administradores_centros AS adm USING(idcentro) LEFT JOIN gruposordenadores AS grp USING(idaula) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid' ORDER BY aulas.idaula, grp.idgrupo EOD; @@ -415,7 +415,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error opening recordset. // Check if user is an UO admin. $rs->Primero(); - if (checkAdmin($rs->campos["idadministradorcentro"])) { + if (checkAdmin($rs->campos["idusuario"])) { $response = Array(); if (! is_null($rs->campos["idcentro"])) { while (!$rs->EOF) { @@ -478,11 +478,11 @@ $app->get('/ous/:ouid/labs/:labid(/)', 'validateApiKey', $labid = htmlspecialchars($labid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, COUNT(idordenador) AS defclients, aulas.* +SELECT adm.idusuario, COUNT(idordenador) AS defclients, aulas.* FROM aulas RIGHT JOIN administradores_centros AS adm USING(idcentro) LEFT JOIN ordenadores USING(idaula) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND idcentro='$ouid' AND idaula='$labid'; EOD; @@ -491,7 +491,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin and lab exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idaula"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idaula"])) { $response['id'] = (int)$rs->campos["idaula"]; $response['name'] = $rs->campos["nombreaula"]; $response['location'] = $rs->campos["ubicacion"]; @@ -543,11 +543,11 @@ $app->get('/ous/:ouid/labs/:labid/clients(/)', 'validateApiKey', $labid = htmlspecialchars($labid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, ordenadores.*, aulas.idaula AS labid +SELECT adm.idusuario, ordenadores.*, aulas.idaula AS labid FROM ordenadores RIGHT JOIN aulas USING(idaula) RIGHT JOIN administradores_centros AS adm USING(idcentro) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid' AND aulas.idaula='$labid'; EOD; @@ -556,7 +556,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin and lab exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["labid"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["labid"])) { $response = Array(); while (!$rs->EOF) { if (!is_null($rs->campos["idordenador"])) { @@ -604,12 +604,12 @@ $app->get('/ous/:ouid/labs/:labid/clients/:clntid(/)', 'validateApiKey', $clntid = htmlspecialchars($clntid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, ordenadores.*, +SELECT adm.idusuario, ordenadores.*, IF(ordenadores.idordenador=aulas.idordprofesor, 1, 0) AS profclient FROM ordenadores JOIN aulas USING(idaula) RIGHT JOIN administradores_centros AS adm USING(idcentro) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND idcentro='$ouid' AND idaula='$labid' AND idordenador='$clntid'; @@ -619,7 +619,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin, lab exists and client exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idaula"]) and checkParameter($rs->campos["idordenador"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idaula"]) and checkParameter($rs->campos["idordenador"])) { // Read data. $response['id'] = (int)$rs->campos["idordenador"]; $response['name'] = $rs->campos["nombreordenador"]; @@ -661,7 +661,7 @@ $app->get('/ous/:ouid/labs/:labid/clients/:clntid/hardware(/)', 'validateApiKey' $clntid = htmlspecialchars($clntid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, ordenadores.idordenador, ordenadores.nombreordenador, +SELECT adm.idusuario, ordenadores.idordenador, ordenadores.nombreordenador, tipohardwares.nemonico, hardwares.descripcion FROM ordenadores JOIN aulas USING(idaula) @@ -669,7 +669,7 @@ SELECT adm.idadministradorcentro, ordenadores.idordenador, ordenadores.nombreord LEFT JOIN perfileshard_hardwares USING(idperfilhard) LEFT JOIN hardwares ON perfileshard_hardwares.idhardware=hardwares.idhardware LEFT JOIN tipohardwares ON tipohardwares.idtipohardware=hardwares.idtipohardware - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid' AND aulas.idaula='$labid' AND ordenadores.idordenador='$clntid'; @@ -679,7 +679,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin and client exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idordenador"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idordenador"])) { // Read data. $response['id'] = (int)$rs->campos["idordenador"]; $response['name'] = $rs->campos["nombreordenador"]; @@ -717,7 +717,7 @@ $app->get('/ous/:ouid/labs/:labid/clients/:clntid/diskcfg(/)', 'validateApiKey', $clntid = htmlspecialchars($clntid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, ordenadores.idordenador AS clientid, +SELECT adm.idusuario, ordenadores.idordenador AS clientid, ordenadores.nombreordenador, ordenadores_particiones.*, tipospar.tipopar, sistemasficheros.nemonico, nombresos.nombreso, imagenes.nombreca, (imagenes.revision - ordenadores_particiones.revision) AS difimagen @@ -729,7 +729,7 @@ SELECT adm.idadministradorcentro, ordenadores.idordenador AS clientid, LEFT JOIN sistemasficheros USING(idsistemafichero) LEFT JOIN nombresos USING(idnombreso) LEFT JOIN imagenes USING(idimagen) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid' AND aulas.idaula='$labid' AND ordenadores.idordenador='$clntid' @@ -740,7 +740,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin and client exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["clientid"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["clientid"])) { // Read data. $response['id'] = (int)$rs->campos["clientid"]; $response['name'] = $rs->campos["nombreordenador"]; @@ -815,10 +815,10 @@ $app->get('/ous/:ouid/repos(/)', 'validateApiKey', $ouid = htmlspecialchars($ouid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, adm.idcentro AS ouid, repositorios.* +SELECT adm.idusuario, adm.idcentro AS ouid, repositorios.* FROM repositorios RIGHT JOIN administradores_centros AS adm USING(idcentro) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid'; EOD; $rs=new Recordset; @@ -826,7 +826,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["ouid"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["ouid"])) { $response = Array(); while (!$rs->EOF) { if (! is_null($rs->campos["idcentro"])) { @@ -860,10 +860,10 @@ $app->get('/ous/:ouid/repos/:repoid(/)', 'validateApiKey', $repoid = htmlspecialchars($repoid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, repositorios.* +SELECT adm.idusuario, repositorios.* FROM repositorios RIGHT JOIN administradores_centros AS adm USING(idcentro) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid' AND idrepositorio='$repoid'; EOD; @@ -872,7 +872,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin and repo exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idrepositorio"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idrepositorio"])) { // Read data. $response['id'] = (int)$rs->campos["idrepositorio"]; $response['name'] = $rs->campos["nombrerepositorio"]; @@ -899,10 +899,10 @@ $app->get('/ous/:ouid/images(/)', 'validateApiKey', $ouid = htmlspecialchars($ouid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, adm.idcentro AS ouid, imagenes.* +SELECT adm.idusuario, adm.idcentro AS ouid, imagenes.* FROM imagenes RIGHT JOIN administradores_centros AS adm USING(idcentro) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid'; EOD; $rs=new Recordset; @@ -910,7 +910,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["ouid"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["ouid"])) { $response = Array(); while (!$rs->EOF) { if (! is_null($rs->campos["idcentro"])) { @@ -944,12 +944,12 @@ $app->get('/ous/:ouid/images/:imgid(/)', 'validateApiKey', $imgid = htmlspecialchars($imgid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, imagenes.*, nombreso AS os +SELECT adm.idusuario, imagenes.*, nombreso AS os FROM imagenes RIGHT JOIN administradores_centros AS adm USING(idcentro) LEFT JOIN perfilessoft USING(idperfilsoft) LEFT JOIN nombresos USING(idnombreso) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid' AND idimagen='$imgid'; EOD; @@ -958,7 +958,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin and repo exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idimagen"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idimagen"])) { // Read data. $response['id'] = (int)$rs->campos["idimagen"]; $response['name'] = $rs->campos["nombreca"]; @@ -1007,7 +1007,7 @@ EOD; $imgid = htmlspecialchars($imgid); // Database query. $cmd->texto = <<<EOD -SELECT adm.idadministradorcentro, imagenes.idimagen, imagenes.nombreca, +SELECT adm.idusuario, imagenes.idimagen, imagenes.nombreca, nombresos.nombreso, softwares.descripcion FROM imagenes RIGHT JOIN administradores_centros AS adm USING(idcentro) @@ -1015,7 +1015,7 @@ SELECT adm.idadministradorcentro, imagenes.idimagen, imagenes.nombreca, LEFT JOIN nombresos USING(idnombreso) LEFT JOIN perfilessoft_softwares USING(idperfilsoft) LEFT JOIN softwares USING(idsoftware) - WHERE adm.idadministradorcentro = '$userid' + WHERE adm.idusuario = '$userid' AND adm.idcentro='$ouid' AND imagenes.idimagen='$imgid' ORDER BY softwares.descripcion ASC; @@ -1025,7 +1025,7 @@ EOD; if (!$rs->Abrir()) return(false); // Error oppening recordset. $rs->Primero(); // Check if user is an UO admin and repo exists. - if (checkAdmin($rs->campos["idadministradorcentro"]) and checkParameter($rs->campos["idimagen"])) { + if (checkAdmin($rs->campos["idusuario"]) and checkParameter($rs->campos["idimagen"])) { $response['id'] = (int)$rs->campos["idimagen"]; $response['name'] = $rs->campos["nombreca"]; if (is_null($rs->campos["nombreso"])) { |