source: admin/WebConsole/gestores/gestor_ordenadores.php @ 42fd02e

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 42fd02e was 71cc14f, checked in by ramon <ramongomez@…>, 10 years ago

#643: Se soporta introducir caracteres ":" en la dirección MAC.

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

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