source: admin/WebConsole/gestores/gestor_usuarios.php @ 1a22cd2

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 1a22cd2 was 6e9cc32, checked in by ramon <ramongomez@…>, 16 years ago

Borrar caracteres BOM de UTF-8 en ficheros PHP de WebConsole?.

git-svn-id: https://opengnsys.es/svn/trunk@514 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 10.2 KB
Line 
1<?
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 2003-2004
6// Fecha Última modificación: Marzo-2005
7// Nombre del fichero: gestor_usuarios.php
8// Descripción :
9//              Gestiona el mantenimiento de la tabla de usuarios
10// *******************************************************************************************************
11include_once("../includes/ctrlacc.php");
12include_once("../clases/SockHidra.php");
13include_once("../clases/AdoPhp.php");
14include_once("../clases/XmlPhp.php");
15include_once("../clases/ArbolVistaXML.php");
16include_once("../includes/CreaComando.php");
17include_once("../includes/constantes.php");
18include_once("./relaciones/usuarios_eliminacion.php");
19include_once("../includes/opciones.php");
20//________________________________________________________________________________________________________
21$opcion=0; // Inicializa parametros
22
23$idusuario=0;
24$usuario="";
25$pasguor="";
26$nombre="";
27$email="";
28$idambito=0;
29$ididioma=0;
30$idtipousuario=0;
31
32if (isset($_GET["opcion"])) $opcion=$_GET["opcion"];
33
34if (isset($_GET["idusuario"])) $idusuario=$_GET["idusuario"];
35if (isset($_GET["usuario"])) $usuario=$_GET["usuario"];
36if (isset($_GET["pasguor"])) $pasguor=$_GET["pasguor"];
37if (isset($_GET["nombre"])) $nombre=$_GET["nombre"];
38if (isset($_GET["email"])) $email=$_GET["email"];
39if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
40if (isset($_GET["ididioma"])) $ididioma=$_GET["ididioma"];
41if (isset($_GET["idtipousuario"])) $idtipousuario=$_GET["idtipousuario"];
42
43$tablanodo=""; // Arbol para nodos insertados
44
45$cmd=CreaComando($cadenaconexion); // Crea objeto comando
46$resul=false;
47if ($cmd){
48        $resul=Gestiona();
49        $cmd->Conexion->Cerrar();
50}
51// *************************************************************************************************************************************************
52?>
53<HTML>
54<HEAD>
55<BODY>
56<?
57        $literal="";
58        switch($opcion){
59                case $op_alta :
60                        $literal="resultado_insertar_usuarios";
61                        break;
62                case $op_modificacion:
63                        $literal="resultado_modificar_usuarios";
64                        break;
65                case $op_eliminacion :
66                        $literal="resultado_eliminar_usuarios";
67                        break;
68                case $op_movida :
69                        $literal="resultado_cambiar_usuarios";
70                        break;
71                default:
72                        break;
73        }
74echo '<p><span id="arbol_nodo">'.$tablanodo.'</span></p>';
75if ($resul){
76        echo '<SCRIPT language="javascript">'.chr(13);
77        echo 'var oHTML'.chr(13);
78        echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
79        echo 'o=cTBODY.item(1);'.chr(13);
80        if ($opcion==$op_alta )
81                echo 'window.parent.'.$literal."(1,'".$cmd->DescripUltimoError()." ',".$idusuario.",o.innerHTML);";
82        else
83                echo 'window.parent.'.$literal."(1,'".$cmd->DescripUltimoError()." ','".$nombre."');";
84        echo '</SCRIPT>';
85}
86else{
87        echo '<SCRIPT language="javascript">';
88        echo "  window.parent.".$literal."(0,'".$cmd->DescripUltimoError()."',".$idusuario.")";
89        echo '</SCRIPT>';
90}
91?>
92</BODY>
93</HTML>
94<?
95/*________________________________________________________________________________________________________
96        Inserta, modifica o elimina datos en la tabla usuarios
97________________________________________________________________________________________________________*/
98function Gestiona(){
99        global  $cmd;
100        global  $opcion;
101        global $OPERADOR;
102        global $ADMINISTRADOR;
103
104        global $idusuario;
105        global $usuario;
106        global $pasguor;
107        global $nombre;
108        global $email;
109        global $idambito;
110        global $ididioma;
111        global $idtipousuario;
112
113        global  $op_alta;
114        global  $op_modificacion;
115        global  $op_eliminacion;
116        global  $op_movida;
117        global  $tablanodo;
118
119        $cmd->CreaParametro("@idusuario",$idusuario,1);
120        $cmd->CreaParametro("@usuario",$usuario,0);
121        $cmd->CreaParametro("@pasguor",$pasguor,0);
122        $cmd->CreaParametro("@nombre",$nombre,0);
123        $cmd->CreaParametro("@email",$email,0);
124        $cmd->CreaParametro("@idambito",$idambito,1);
125        $cmd->CreaParametro("@ididioma",$ididioma,1);
126        $cmd->CreaParametro("@idtipousuario",$idtipousuario,1);
127
128        switch($opcion){
129                case $op_alta :
130                        $cmd->texto="INSERT INTO usuarios (usuario,pasguor,nombre,email,idambito,ididioma,idtipousuario ) VALUES (@usuario,@pasguor,@nombre,@email,@idambito,@ididioma,@idtipousuario);";
131                        $resul=$cmd->Ejecutar();
132                        if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
133                                $idusuario=$cmd->Autonumerico();
134                                $arbolXML=SubarbolXML_usuarios($idusuario,$nombre,$idtipousuario);
135                                $baseurlimg="../images/signos"; // Url de las imagenes de signo
136                                $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
137                                $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
138                                $tablanodo=$arbol->CreaArbolVistaXML();
139                                if($idtipousuario==$OPERADOR)
140                                        GestionLogin($cmd,$usuario,$pasguor,$idusuario,$op_alta,$idambito);
141                                else{
142                                        if($idtipousuario==$ADMINISTRADOR){
143                                                GestionLogin($cmd,$usuario,$pasguor,$idusuario,$op_alta,0);
144                                        }
145                                }
146                        }
147                        break;
148                case $op_modificacion:
149                        $cmd->texto="UPDATE usuarios SET usuario=@usuario,pasguor=@pasguor,nombre=@nombre,email=@email,idambito=@idambito,ididioma=@ididioma WHERE idusuario=@idusuario";
150                        $resul=$cmd->Ejecutar();
151                        break;
152                case $op_eliminacion :
153                        if(toma_usuario($cmd,$idusuario)){
154                                if($idtipousuario==$OPERADOR)
155                                        GestionLogin($cmd,$usuario,$pasguor,$idusuario,$op_eliminacion,$idambito);
156                                else{
157                                        if($idtipousuario==$ADMINISTRADOR){
158                                                GestionLogin($cmd,$usuario,$pasguor,$idusuario,$op_eliminacion,0);
159                                        }
160                                }
161                                $resul=EliminaUsuarios($cmd,$idusuario,"idusuario");
162                        }
163                        break;
164                default:
165                        break;
166        }
167        return($resul);
168}
169/*________________________________________________________________________________________________________
170        Busca los datos de un usuario
171                Parametros:
172                - cmd:Una comando ya operativo (con conexión abierta) 
173                - idusuario:El identificador del usuario
174________________________________________________________________________________________________________*/
175function toma_usuario($cmd,$idusuario){
176        global $usuario;
177        global $pasguor;
178        global $idambito;
179        global $idtipousuario;
180
181        $rs=new Recordset;
182        $cmd->texto="SELECT usuario, pasguor,idambito,idtipousuario FROM usuarios WHERE idusuario=".$idusuario;
183        $rs->Comando=&$cmd;
184        if (!$rs->Abrir()) return(0); // Error al abrir recordset
185        $rs->Primero();
186        if (!$rs->EOF){
187                $usuario=$rs->campos["usuario"];
188                $pasguor=$rs->campos["pasguor"];
189                $idambito=$rs->campos["idambito"];
190                $idtipousuario=$rs->campos["idtipousuario"];
191                return(true);
192        }
193        else
194                return(false);
195}
196/*________________________________________________________________________________________________________
197        Crea un arbol XML para el nuevo nodo insertado
198________________________________________________________________________________________________________*/
199function SubarbolXML_usuarios($idusuario,$nombre,$idtipousuario){
200                global $LITAMBITO_USUARIOS;
201                global $SUPERADMINISTRADOR;
202                global $ADMINISTRADOR;
203                global $OPERADOR;
204
205                switch($idtipousuario){
206                        case $SUPERADMINISTRADOR:
207                                $urlimg="../images/iconos/superadministradores.gif";
208                                break;
209                        case $ADMINISTRADOR:
210                                $urlimg="../images/iconos/administradores.gif";
211                                break;
212                        case $OPERADOR:
213                                $urlimg="../images/iconos/operadores.gif";
214                                break;
215                }
216                $cadenaXML='<USUARIO';
217                // Atributos                   
218                $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_USUARIOS."'" .')"';
219                $cadenaXML.=' imagenodo="'.$urlimg.'"';
220                $cadenaXML.=' infonodo="'.$nombre.'"';
221                $cadenaXML.=' nodoid='.$LITAMBITO_USUARIOS.'-'.$idusuario;
222                $cadenaXML.='></USUARIO>';
223                return($cadenaXML);
224}
225/*________________________________________________________________________________________________________
226        Envía un comando al servidor para que cree el fichero de login de este operador
227________________________________________________________________________________________________________*/
228function GestionLogin($cmd,$usuario,$pasguor,$idusuario,$op,$idambito){
229        global $servidorhidra;
230        global $hidraport;
231       
232        $nombrefuncion="FicheroOperador";
233        $ejecutor="1";
234        $cadenaip=TomaIpesServidores($cmd,$idusuario,$idambito);
235        $shidra=new SockHidra($servidorhidra,$hidraport);
236
237        $parametros=$ejecutor;
238        $parametros.="nfn=".$nombrefuncion.chr(13);
239        $parametros.="amb=".$op.chr(13);
240        $parametros.="usu=".$usuario.chr(13);
241        $parametros.="psw=".$pasguor.chr(13);
242        $parametros.="ida=".$idambito.chr(13);
243        $auxIP=split(";",$cadenaip);
244        for ($i=0;$i<sizeof($auxIP)-1;$i++){
245                $auxparametros=$parametros."rmb=".$auxIP[$i].chr(13);
246                $resul=manda_trama($shidra,$auxparametros);
247        }
248        return(false);
249}
250/*________________________________________________________________________________________________________
251        Devuelve una cadena con las Ipes de los servidores rembo implicados
252________________________________________________________________________________________________________*/
253function TomaIpesServidores($cmd,$idusuario,$idambito){
254        if($idambito>0)
255                        $cmd->texto="SELECT DISTINCT servidoresrembo.ip FROM aulas INNER JOIN ordenadores ON aulas.idaula = ordenadores.idaula INNER JOIN servidoresrembo ON ordenadores.idservidorrembo = servidoresrembo.idservidorrembo INNER JOIN   usuarios ON aulas.idaula = usuarios.idambito Where usuarios.idusuario=".$idusuario;
256        else
257                        $cmd->texto="SELECT DISTINCT servidoresrembo.ip FROM aulas INNER JOIN ordenadores ON aulas.idaula = ordenadores.idaula INNER JOIN servidoresrembo ON ordenadores.idservidorrembo = servidoresrembo.idservidorrembo INNER JOIN  centros  ON aulas.idcentro = centros.idcentro    INNER JOIN   usuarios ON centros.idcentro = usuarios.idambito Where usuarios.idusuario=".$idusuario;
258
259        $rs=new Recordset;
260        $rs->Comando=&$cmd;
261        if (!$rs->Abrir())      return(""); // Error al abrir recordset
262        $rs->Primero();
263        $cadenaip="";
264        while(!$rs->EOF){
265                $cadenaip.=trim($rs->campos["ip"]).";";
266                $rs->Siguiente();
267        }
268        $rs->Cerrar();
269        return($cadenaip);
270}
271//________________________________________________________________________________________________________
272//
273//      Manda una trama del comando Actualizar
274//________________________________________________________________________________________________________
275function manda_trama($shidra,$parametros){
276        if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
277                $shidra->envia_comando($parametros);
278                $shidra->desconectar();
279                return(true);
280        }
281        return(false);
282}
283?>
Note: See TracBrowser for help on using the repository browser.