source: admin/WebConsole/gestores/gestor_ordenadores.php @ 812496d

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 812496d was f29a575, checked in by ramon <ramongomez@…>, 9 years ago

#713: Incluir campo para nº de serie en propiedades de ordenador.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@4928 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 12.1 KB
Line 
1<?php
2// *************************************************************************************************************************************************
3// Aplicación WEB: ogAdmWebCon
4// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
5// Fecha Creación: Año 2009-2010
6// Fecha Última modificación: Agosto-2010
7// Nombre del fichero: gestor_ordenadores.php
8// Descripción :
9//              Gestiona el mantenimiento de la tabla de ordenadores
10// Versión 1.1.0: Al insertar ordenador se comprueba que no existen duplicados nombre, ip y mac
11// Autor: Irina Gómez  - ETSII, Universidad de Sevilla
12// Fecha: 2016-03-04
13// *************************************************************************************************************************************************
14include_once("../includes/ctrlacc.php");
15include_once("../clases/AdoPhp.php");
16include_once("../clases/XmlPhp.php");
17include_once("../clases/ArbolVistaXML.php");
18include_once("../includes/CreaComando.php");
19include_once("../includes/constantes.php");
20include_once("./relaciones/ordenadores_eliminacion.php");
21include_once("../includes/tftputils.php");
22include_once("../includes/opciones.php");
23include_once("../idiomas/php/".$idioma."/gestor_ordenadores_".$idioma.".php");
24
25//________________________________________________________________________________________________________
26$opcion=0; // Inicializa parametros
27
28$fotoordenador="";
29$grupoid=0;
30$idaula=0;
31$idordenador=0;
32$nombreordenador="";
33$numserie="";
34$ip="";
35$mac="";
36$idperfilhard=0;
37$idrepositorio=0;
38$idmenu=0;
39$idprocedimiento=0;
40$idimagen=0;
41#### ADV
42$netiface="";
43$netdriver="";
44### UHU
45$validacion="";
46$paginalogin="";
47$paginavalidacion="";
48### Ramón
49$arranque="";
50### Irina
51$datosduplicados="";
52
53//##agp
54if (isset($_FILES['archivo'])) {
55        if($_FILES['archivo']['type']=="image/gif" || $_FILES['archivo']['type']=="image/jpeg" || $_FILES['archivo']['type']=="image/jpg" || $_FILES['archivo']['type']=="image/png" || $_FILES['archivo']['type']=="image/JPG") {
56                $uploaddir ="../images/fotos/";
57                $uploadfile = $uploaddir.$_FILES['archivo']['name'];
58                move_uploaded_file($_FILES['archivo']['tmp_name'], $uploadfile);
59                #copy($_FILES['archivo']['tmp_name'], $uploadfile);
60        }
61}
62//##agp
63if (isset($_POST["fotoordenador"])) $fotoordenador=$_POST["fotoordenador"];
64if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
65if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
66if (isset($_POST["idaula"])) $idaula=$_POST["idaula"];
67if (isset($_POST["idordenador"])) $idordenador=$_POST["idordenador"];
68if (isset($_POST["identificador"])) $idordenador=$_POST["identificador"];
69if (isset($_POST["nombreordenador"])) $nombreordenador=$_POST["nombreordenador"];
70if (isset($_POST["numserie"])) $numserie=$_POST["numserie"];
71if (isset($_POST["ip"])) $ip=$_POST["ip"];
72if (isset($_POST["mac"])) $mac=str_replace(":","",$_POST["mac"]);
73if (isset($_POST["idperfilhard"])) $idperfilhard=$_POST["idperfilhard"];
74if (isset($_POST["idrepositorio"])) $idrepositorio=$_POST["idrepositorio"];
75if (isset($_POST["idmenu"])) $idmenu=$_POST["idmenu"];
76if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"];
77
78if (isset($_POST["netiface"])) $netiface=$_POST["netiface"];
79if (isset($_POST["netdriver"])) $netdriver=$_POST["netdriver"];
80######## UHU
81if (isset($_POST["validacion"])) $validacion=$_POST["validacion"];
82if (isset($_POST["paginalogin"])) $paginalogin=$_POST["paginalogin"];
83if (isset($_POST["paginavalidacion"])) $paginavalidacion=$_POST["paginavalidacion"];
84######## Ramón
85if (isset($_POST["arranque"])) $arranque=$_POST["arranque"];
86
87$tablanodo=""; // Arbol para nodos insertados
88//________________________________________________________________________________________________________
89$cmd=CreaComando($cadenaconexion); // Crea objeto comando
90$resul=false;
91if ($cmd){
92        if ($idaula==0)
93                $idaula=toma_aula($cmd,$grupoid);
94        $resul=Gestiona();
95        $cmd->Conexion->Cerrar();
96}
97if($opcion!=$op_movida){
98        echo '<HTML>';
99        echo '<HEAD>';
100        echo '  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
101        echo '<BODY>';
102        echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
103        echo '  <SCRIPT language="javascript" src="../jscripts/propiedades_ordenadores.js"></SCRIPT>';
104        echo '<SCRIPT language="javascript">'.chr(13);
105        if ($resul){
106                echo 'var oHTML'.chr(13);
107                echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
108                echo 'o=cTBODY.item(1);'.chr(13);
109        }
110}
111//________________________________________________________________________________________________________
112        $literal="";
113        switch($opcion){
114                case $op_alta :
115                        $literal="resultado_insertar_ordenadores";
116                        break;
117                case $op_modificacion:
118                        $literal="resultado_modificar_ordenadores";
119                        break;
120                case $op_eliminacion :
121                        $literal="resultado_eliminar_ordenadores";
122                        break;
123                case $op_movida :
124                        $literal="resultado_cambiar_ordenadores";
125                        break;
126                default:
127                        break;
128        }
129if ($resul){
130        if ($opcion==$op_alta ) {
131            if ( $datosduplicados != '') {
132                echo $literal."(0,'".$TbMsg["DUPLICADO"].$datosduplicados." ',".$idordenador.",o.innerHTML);".chr(13);
133            } else { 
134                echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idordenador.",o.innerHTML);".chr(13);
135            }
136        }
137        else
138                echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombreordenador."');".chr(13);
139}
140else
141        echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idordenador.")";
142
143if($opcion!=$op_movida){
144        echo '  </SCRIPT>';
145        echo '</BODY>   ';
146        echo '</HTML>';
147}
148/**************************************************************************************************************************************************
149        Busca identificador del aula de un grupo de ordenador .Devuelve el identificador del aula a la que pertenece el grupo
150                Parametros:
151                - cmd:Una comando ya operativo (con conexión abierta) 
152________________________________________________________________________________________________________*/
153function toma_aula($cmd,$idgrupo){
154        $rs=new Recordset;
155        $cmd->texto="SELECT idaula FROM gruposordenadores WHERE idgrupo=".$idgrupo;
156        $rs->Comando=&$cmd;
157        if (!$rs->Abrir()) return(0); // Error al abrir recordset
158        $rs->Primero();
159        if (!$rs->EOF)
160                return($rs->campos["idaula"]);
161        else
162                return(0);
163}
164/*________________________________________________________________________________________________________
165        Inserta, modifica o elimina datos en la tabla ordenadores
166________________________________________________________________________________________________________*/
167function Gestiona(){
168        global $cmd;
169        global $opcion;
170        global $fotoordenador;
171        global $grupoid;
172        global $idordenador;
173        global $nombreordenador;
174        global $numserie;
175        global $ip;
176        global $mac;
177        global $idaula;
178        global $idperfilhard;
179        global $idrepositorio;
180        global $idmenu;
181        global $idprocedimiento;
182        global $netiface;
183        global $netdriver;
184######################## UHU
185        global $validacion;
186        global $paginalogin;
187        global $paginavalidacion;
188######################## Ramón
189        global $arranque;
190        global $idioma;
191
192        global $op_alta;
193        global $op_modificacion;
194        global $op_eliminacion;
195        global $op_movida;
196        global $tablanodo;
197
198####################### Irina
199        global $datosduplicados;
200
201       
202        $cmd->CreaParametro("@grupoid",$grupoid,1);
203        $cmd->CreaParametro("@idaula",$idaula,1);
204        $cmd->CreaParametro("@idordenador",$idordenador,1);
205        $cmd->CreaParametro("@nombreordenador",$nombreordenador,0);
206        $cmd->CreaParametro("@numserie",$numserie,0);
207        $cmd->CreaParametro("@ip",$ip,0);
208        $cmd->CreaParametro("@mac",$mac,0);
209        $cmd->CreaParametro("@idperfilhard",$idperfilhard,1);
210        $cmd->CreaParametro("@idrepositorio",$idrepositorio,1);
211        $cmd->CreaParametro("@idmenu",$idmenu,1);
212        $cmd->CreaParametro("@idprocedimiento",$idprocedimiento,1);
213        $cmd->CreaParametro("@netiface",$netiface,0);
214        $cmd->CreaParametro("@netdriver",$netdriver,0);
215        $cmd->CreaParametro("@fotoordenador",$fotoordenador,0);
216######################################################### UHU
217        $cmd->CreaParametro("@validacion",$validacion,0);
218        $cmd->CreaParametro("@paginalogin",$paginalogin,0);
219        $cmd->CreaParametro("@paginavalidacion",$paginavalidacion,0);
220######################################################### UHU
221
222
223        switch($opcion){
224                case $op_alta :
225                        // Comprueba que no existan duplicados
226                        $ipduplicada='no';
227                        $nombreduplicado='no';
228                        $macduplicada='no';
229                        $cmd->texto="SELECT nombreordenador,ip,mac FROM  ordenadores
230                                WHERE nombreordenador=@nombreordenador OR ip=@ip OR mac=@mac";
231                        $rs=new Recordset;
232                        $rs->Comando=&$cmd;
233                        if (!$rs->Abrir()) return(0); // Error al abrir recordset
234                        $rs->Primero();
235                        while (!$rs->EOF){
236                           if ( $nombreordenador == $rs->campos["nombreordenador"]) $datosduplicados ="nombre: $nombreordenador,";
237                           if ( $ip == $rs->campos["ip"]) $datosduplicados .=" ip: $ip,";
238                           if ( $mac == $rs->campos["mac"]) $datosduplicados .=" mac: $mac,";
239                           $rs->Siguiente();
240                        }
241                        $rs->Cerrar();
242                        // quitamos última coma
243                        $datosduplicados = trim($datosduplicados, ',');
244
245                        // Si no hay datos duplicados insertamos el ordenador;
246                        if ( $datosduplicados == "" ) {
247                             // Crear fichero TFTP/PXE por defecto para el nuevo ordenador.
248                             createBootMode ($cmd, "", $idordenador, $idioma);
249                             //Insertar fotoord con Values @fotoordenador
250                             $cmd->texto="INSERT INTO ordenadores(nombreordenador,numserie,ip,mac,idperfilhard,idrepositorio,
251                             idmenu,idproautoexec,idaula,grupoid,netiface,netdriver,fotoord,validacion,paginalogin,paginavalidacion) VALUES (@nombreordenador,@numserie,@ip,@mac,@idperfilhard,@idrepositorio,
252                             @idmenu,@idprocedimiento,@idaula,@grupoid,@netiface,@netdriver,@fotoordenador,@validacion,@paginalogin,@paginavalidacion)";
253                        }
254                        $resul=$cmd->Ejecutar();
255                        if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
256                                $idordenador=$cmd->Autonumerico();
257                                $arbolXML=SubarbolXML_ordenadores($idordenador,$nombreordenador);
258                                $baseurlimg="../images/signos"; // Url de las imagenes de signo
259                                $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
260                                $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
261                                $tablanodo=$arbol->CreaArbolVistaXML();
262                        }
263                        break;
264                case $op_modificacion:
265                        $cmd->texto="UPDATE ordenadores SET nombreordenador=@nombreordenador,numserie=@numserie,ip=@ip,mac=@mac,idperfilhard=@idperfilhard,
266                        idrepositorio=@idrepositorio,idmenu=@idmenu,idproautoexec=@idprocedimiento,netiface=@netiface,netdriver=@netdriver,fotoord=@fotoordenador,validacion=@validacion,paginalogin=@paginalogin,paginavalidacion=@paginavalidacion
267                        WHERE idordenador=@idordenador";
268                        $resul=$cmd->Ejecutar();
269                        // Actualizar fichero TFTP/PXE a partir de la plantilla asociada.
270                        createBootMode ($cmd, $arranque, $idordenador, $idioma);
271                        break;
272                case $op_eliminacion :
273                        $resul=EliminaOrdenadores($cmd,$idordenador,"idordenador");// Eliminación en cascada
274                        // Borrar fichero PXE.
275                        deleteBootFile ($mac);
276                        break;
277                case $op_movida :
278                        $cmd->texto="UPDATE ordenadores SET idaula=@idaula, grupoid=@grupoid WHERE idordenador=@idordenador";
279                        $resul=$cmd->Ejecutar();
280                        break;
281                default:
282                        break;
283        }
284        return($resul);
285}
286/*________________________________________________________________________________________________________
287        Crea un arbol XML para el nuevo nodo insertado
288________________________________________________________________________________________________________*/
289function SubarbolXML_ordenadores($idordenador,$nombreordenador){
290                global $LITAMBITO_ORDENADORES;
291                $cadenaXML='<ORDENADOR';
292                // Atributos                   
293                $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_ORDENADORES."'" .')"';
294                $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
295                $cadenaXML.=' infonodo="'.$nombreordenador.'"';
296                $cadenaXML.=' nodoid='.$LITAMBITO_ORDENADORES.'-'.$idordenador;
297                $cadenaXML.='></ORDENADOR>';
298                return($cadenaXML);
299}
300?>
301
Note: See TracBrowser for help on using the repository browser.