source: admin/WebConsole/gestores/gestor_usuarios.php @ 74c04a0

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 74c04a0 was 5eaa0e0, checked in by alonso <alonso@…>, 15 years ago

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