| [3ec149c] | 1 | <?  | 
|---|
 | 2 | // ******************************************************************** | 
|---|
 | 3 | // Aplicación WEB: ogAdmWebCon  | 
|---|
 | 4 | // Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla  | 
|---|
 | 5 | // Fecha Creación: Diciembre-2003  | 
|---|
 | 6 | // Fecha Última modificación: Febrero-2005  | 
|---|
 | 7 | // Nombre del fichero: controlacceso.php  | 
|---|
 | 8 | // Descripción :Este fichero implementa el control de acceso a la aplicación  | 
|---|
 | 9 | // ********************************************************************* | 
|---|
 | 10 | include_once("controlacceso.php"); | 
|---|
 | 11 | include_once("./includes/CreaComando.php"); | 
|---|
 | 12 | include_once("./clases/AdoPhp.php"); | 
|---|
| [2307886] | 13 | #include_once("idiomas/php/$idi/acceso_$idi.php"); | 
|---|
| [3ec149c] | 14 | //________________________________________________________________________________________________________ | 
|---|
 | 15 |  $usu="";  | 
|---|
| [4573cbd] | 16 |  $pss=""; | 
|---|
 | 17 |  $ident="";  | 
|---|
| [3ec149c] | 18 |  $idc=0;  | 
|---|
 | 19 |  $iph=""; // Switch menu cliente  | 
|---|
 | 20 |    | 
|---|
| [c9c8618] | 21 |  if (isset($_POST["usu"])) $usu=mysql_escape_string($_POST["usu"]);   | 
|---|
 | 22 |  if (isset($_POST["pss"])) $pss=mysql_escape_string($_POST["pss"]);   | 
|---|
 | 23 |  if (isset($_POST["idcentro"])) $idc=mysql_escape_string($_POST["idcentro"]);  | 
|---|
| [3ec149c] | 24 |  | 
|---|
 | 25 |  if (isset($_GET["iph"])) $iph=$_GET["iph"];   | 
|---|
 | 26 | //________________________________________________________________________________________________________ | 
|---|
 | 27 |  $cmd=CreaComando($cnx); // Crea objeto comando  | 
|---|
 | 28 |  if (!$cmd) | 
|---|
| [26a1226] | 29 |   die($TbMsg["ACCESS_ERROR"]); | 
|---|
| [3ec149c] | 30 | //________________________________________________________________________________________________________ | 
|---|
 | 31 |  | 
|---|
| [4573cbd] | 32 | if ($idc != 0) | 
|---|
 | 33 | { | 
|---|
 | 34 |         $rs=new Recordset; | 
|---|
 | 35 | //      $cmd->texto="SELECT * FROM  centros WHERE idcentro='$idc'"; | 
|---|
 | 36 |         $cmd->texto="SELECT * FROM  centros WHERE idcentro=".$idc; | 
|---|
 | 37 |         $rs->Comando=&$cmd; | 
|---|
 | 38 |         if (!$rs->Abrir()) return(false); // Error al abrir recordset | 
|---|
 | 39 |         $rs->Primero(); | 
|---|
 | 40 |         if (!$rs->EOF){ | 
|---|
 | 41 |         $ident=$rs->campos["identidad"]; | 
|---|
 | 42 |         }$rs->Cerrar(); | 
|---|
 | 43 | } | 
|---|
 | 44 |  | 
|---|
 | 45 | //________________________________________________________________________________________________________ | 
|---|
 | 46 |   | 
|---|
 | 47 |  | 
|---|
| [3ec149c] | 48 |  $nmc="";  | 
|---|
 | 49 |  $idi="";  | 
|---|
 | 50 |  | 
|---|
 | 51 |  if(!empty($iph)){ // LLamada del browser del cliente  | 
|---|
 | 52 |      list($wip,$wusu,$wpwd,$wbd,$tbd)=split(";",$cnx);  | 
|---|
 | 53 |      $usu=$wusu;  | 
|---|
 | 54 |      $pss=$wpwd;  | 
|---|
 | 55 |  } | 
|---|
 | 56 |  | 
|---|
| [294f9e5] | 57 |  $resul=toma_datos($cmd,$idc,$nmc,$idi,$usu,$tsu,$pss);  | 
|---|
| [2307886] | 58 |  // Antes la variable idioma no es la correcta | 
|---|
 | 59 |  include_once("idiomas/php/$idi/acceso_$idi.php"); | 
|---|
| [3ec149c] | 60 |  if(!$resul)  | 
|---|
 | 61 |      Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D.  | 
|---|
 | 62 |    | 
|---|
 | 63 |  if(!empty($iph)){  | 
|---|
 | 64 |      $wurl="./varios/menucliente.php";  | 
|---|
 | 65 |      Header("Location:".$wurl); // Accede a la página de menus  | 
|---|
 | 66 |  }  | 
|---|
 | 67 |  | 
|---|
 | 68 |  | 
|---|
 | 69 |  session_start(); // Activa variables de sesión | 
|---|
 | 70 |  | 
|---|
| [4573cbd] | 71 |  $_SESSION["widentidad"]=$ident;    | 
|---|
| [3ec149c] | 72 |  $_SESSION["widcentro"]=$idc;   | 
|---|
 | 73 |  $_SESSION["wnombrecentro"]=$nmc;   | 
|---|
 | 74 |  $_SESSION["wusuario"]=$usu;   | 
|---|
 | 75 |  $_SESSION["widtipousuario"]=$tsu;   | 
|---|
 | 76 |  $_SESSION["widioma"]=$idi;  | 
|---|
 | 77 |  $_SESSION["wcadenaconexion"]=$cnx;  | 
|---|
 | 78 |  $_SESSION["wpagerror"]=$wer;  | 
|---|
 | 79 |  $_SESSION["wurlacceso"]=$wac;  | 
|---|
| [4573cbd] | 80 |  $_SESSION["wadminetboot"]=$adminetboot;  | 
|---|
| [3ec149c] | 81 |  | 
|---|
 | 82 | // Variables de entorno | 
|---|
| [294f9e5] | 83 |  $resul=toma_entorno($cmd,$ips,$prt,$pclo,$rep);  | 
|---|
| [3ec149c] | 84 |  if(!$resul)  | 
|---|
 | 85 |      Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D.  | 
|---|
 | 86 |  | 
|---|
 | 87 |  $_SESSION["wservidorhidra"]=$ips;  | 
|---|
 | 88 |  $_SESSION["whidraport"]=$prt;  | 
|---|
 | 89 |  $_SESSION["protclonacion"]=$pclo;  | 
|---|
 | 90 |  $_SESSION["repcentralizado"]=$rep;  | 
|---|
 | 91 |  | 
|---|
 | 92 |  //________________________________________________________________________________________________________  | 
|---|
 | 93 |  //    Busca datos del usuario que intenta acceder a la aplicación   | 
|---|
 | 94 |  //        Parametros:   | 
|---|
 | 95 |  //        - cmd:Una comando ya operativo (con conexión abierta)    | 
|---|
 | 96 |  //        - usuario: Nombre del usuario    | 
|---|
 | 97 |  //        - pasguor: Password del uuario    | 
|---|
 | 98 |  //  | 
|---|
 | 99 |  //    Devuelve el identificador del centro, el nombre y el idioma utilizado por el usuario   | 
|---|
 | 100 |  //_______________________________________________________________________________________________________  | 
|---|
| [294f9e5] | 101 |  function toma_datos($cmd,$idcentro,&$nombrecentro,&$idioma,$usuario,&$idtipousuario,$pasguor){  | 
|---|
| [4573cbd] | 102 |         global $adminetboot; | 
|---|
| [294f9e5] | 103 |         $rs=new Recordset;   | 
|---|
 | 104 |         if(!empty($idcentro)){ | 
|---|
 | 105 |                  $cmd->texto="SELECT usuarios.idtipousuario, centros.nombrecentro, | 
|---|
 | 106 |                                      idiomas.nemonico AS idioma | 
|---|
 | 107 |                                 FROM usuarios | 
|---|
 | 108 |                                 INNER JOIN administradores_centros ON administradores_centros.idusuario=usuarios.idusuario | 
|---|
 | 109 |                                 INNER JOIN centros ON centros.idcentro=administradores_centros.idcentro | 
|---|
 | 110 |                                 INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma | 
|---|
 | 111 |                                 WHERE idtipousuario <> 3 | 
|---|
 | 112 |                                   AND usuarios.usuario='".$usuario."' | 
|---|
| [7441e57] | 113 |                                   AND usuarios.pasguor=SHA2('".$pasguor."', 224) | 
|---|
| [294f9e5] | 114 |                                   AND administradores_centros.idcentro=".$idcentro;  | 
|---|
 | 115 |         }                        | 
|---|
 | 116 |         else{ | 
|---|
 | 117 |                  $cmd->texto="SELECT usuarios.idtipousuario, idiomas.nemonico AS idioma | 
|---|
 | 118 |                                 FROM usuarios | 
|---|
 | 119 |                                 INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma | 
|---|
 | 120 |                                 WHERE idtipousuario <> 3 | 
|---|
 | 121 |                                   AND usuarios.usuario='".$usuario."' | 
|---|
| [7441e57] | 122 |                                   AND usuarios.pasguor=SHA2('".$pasguor."', 224)";  | 
|---|
| [294f9e5] | 123 |         } | 
|---|
 | 124 |         $rs->Comando=&$cmd;  | 
|---|
 | 125 |         if (!$rs->Abrir()) return($false); // Error al abrir recordset  | 
|---|
 | 126 |         if(!$rs->EOF){ | 
|---|
| [4573cbd] | 127 |         $adminetboot=$rs->campos["idtipousuario"]; | 
|---|
| [294f9e5] | 128 |                 $idtipousuario=$rs->campos["idtipousuario"];  | 
|---|
 | 129 |                 $idioma=$rs->campos["idioma"];  | 
|---|
 | 130 |                 if(!empty($idcentro)){ | 
|---|
 | 131 |                         $nombrecentro=$rs->campos["nombrecentro"];  | 
|---|
 | 132 |                         $idtipousuario=2; // Fuerza al acceso como administrador de UNidad organizativa | 
|---|
 | 133 |                         return(true); | 
|---|
 | 134 |                 } | 
|---|
 | 135 |                 else{ | 
|---|
 | 136 |                         $nombrecentro=""; | 
|---|
 | 137 |                         if($idtipousuario<>1) // Si NO es superadminsitrador | 
|---|
 | 138 |                                 return(false);   | 
|---|
 | 139 |                         else | 
|---|
 | 140 |                                 return(true);                                    | 
|---|
 | 141 |                 } | 
|---|
 | 142 |         }  | 
|---|
 | 143 |         return(false);  | 
|---|
| [3ec149c] | 144 |  }  | 
|---|
 | 145 | //________________________________________________________________________________________________________  | 
|---|
 | 146 |  //    Busca datos de configuración del sistema   | 
|---|
 | 147 |  //        Parametros:   | 
|---|
 | 148 |  //        - cmd:Una comando ya operativo (con conexión abierta)    | 
|---|
 | 149 |  //        - ips: Dirección IP del servidor de administración    | 
|---|
 | 150 |  //        - prt: Puerto de comunicaciones | 
|---|
 | 151 |  //        - pclo: Protocolo de clonación | 
|---|
 | 152 |  //          - rep: Uso de repositorio centralizado | 
|---|
 | 153 |  //  | 
|---|
 | 154 |  //    Devuelve datos generales de configuración del sistema | 
|---|
 | 155 |  //_______________________________________________________________________________________________________  | 
|---|
| [294f9e5] | 156 |  function toma_entorno($cmd,&$ips,&$prt,&$pclo,&$rep){  | 
|---|
| [3ec149c] | 157 |         $rs=new Recordset;   | 
|---|
 | 158 |         $cmd->texto="SELECT * FROM entornos";  | 
|---|
| [294f9e5] | 159 |         $rs->Comando=&$cmd;  | 
|---|
| [3ec149c] | 160 |         //echo $cmd->texto; | 
|---|
 | 161 |         if (!$rs->Abrir()) return($false); // Error al abrir recordset  | 
|---|
| [294f9e5] | 162 |         if(!$rs->EOF){ | 
|---|
 | 163 |                 $ips=$rs->campos["ipserveradm"];  | 
|---|
 | 164 |                 $prt=$rs->campos["portserveradm"]; | 
|---|
 | 165 |                 $pclo=$rs->campos["protoclonacion"]; | 
|---|
| [abb2eb0] | 166 |                 //$rep=$rs->campos["repositorio"]; | 
|---|
| [3ec149c] | 167 |         } | 
|---|
| [294f9e5] | 168 |         return(true);  | 
|---|
| [3ec149c] | 169 |  }  | 
|---|
 | 170 |  //_______________________________________________________________________________________________________  | 
|---|
 | 171 | ?>  | 
|---|
| [26a1226] | 172 | <html>  | 
|---|
 | 173 | <head>  | 
|---|
 | 174 |      <title><?php echo $TbMsg["ACCESS_TITLE"] ?></title> | 
|---|
| [3ec149c] | 175 |      <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">  | 
|---|
| [26a1226] | 176 |      <link rel="stylesheet" type="text/css" href="estilos.css">  | 
|---|
 | 177 | </head>  | 
|---|
 | 178 |  | 
|---|
 | 179 | <body>  | 
|---|
 | 180 | <div id="mensaje" style="position:absolute;TOP:250;LEFT:330; visibility:visible">  | 
|---|
 | 181 |      <span align="center" class="subcabeceras"><?php echo $TbMsg["ACCESS_ALLOWED"] ?></span> | 
|---|
 | 182 | </div> | 
|---|
 | 183 |      <script language="javascript">  | 
|---|
| [3ec149c] | 184 |              var vez=0;  | 
|---|
 | 185 |              setTimeout("acceso();",300);  | 
|---|
 | 186 |              function acceso(){  | 
|---|
 | 187 |                  o=document.getElementById("mensaje");  | 
|---|
 | 188 |                  var s=o.style.visibility;  | 
|---|
 | 189 |                  if(s=="hidden")  | 
|---|
 | 190 |                      o.style.visibility="visible";  | 
|---|
 | 191 |                  else  | 
|---|
 | 192 |                      o.style.visibility="hidden";  | 
|---|
 | 193 |                  if(vez>5){  | 
|---|
 | 194 |                      var w=window.top;  | 
|---|
 | 195 |                      w.location="frames.php";  | 
|---|
 | 196 |                  }  | 
|---|
 | 197 |                  vez++;  | 
|---|
 | 198 |                  setTimeout("acceso();",300);  | 
|---|
 | 199 |              }  | 
|---|
| [26a1226] | 200 |      </script>  | 
|---|
 | 201 | </body>  | 
|---|
 | 202 | </html>  | 
|---|
 | 203 |  | 
|---|