source: admin/WebConsole/gestores/gestor_ordenadores.php @ bbd1290

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 bbd1290 was 8117745, checked in by irina <irinagomez@…>, 9 years ago

#712 En el formulario añadir ordenador si existen duplicados el nombre, la ip o la mac no se inserta el equipo en la base de datos.

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

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