204 lines
7.3 KiB
PHP
204 lines
7.3 KiB
PHP
<?
|
|
// ********************************************************************
|
|
// Aplicación WEB: ogAdmWebCon
|
|
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
|
|
// Fecha Creación: Diciembre-2003
|
|
// Fecha Última modificación: Febrero-2005
|
|
// Nombre del fichero: controlacceso.php
|
|
// Descripción :Este fichero implementa el control de acceso a la aplicación
|
|
// *********************************************************************
|
|
include_once("controlacceso.php");
|
|
include_once("./includes/CreaComando.php");
|
|
include_once("./clases/AdoPhp.php");
|
|
#include_once("idiomas/php/$idi/acceso_$idi.php");
|
|
//________________________________________________________________________________________________________
|
|
$usu="";
|
|
$pss="";
|
|
$ident="";
|
|
$idc=0;
|
|
$iph=""; // Switch menu cliente
|
|
|
|
if (isset($_POST["usu"])) $usu=mysql_escape_string($_POST["usu"]);
|
|
if (isset($_POST["pss"])) $pss=mysql_escape_string($_POST["pss"]);
|
|
if (isset($_POST["idcentro"])) $idc=mysql_escape_string($_POST["idcentro"]);
|
|
|
|
if (isset($_GET["iph"])) $iph=$_GET["iph"];
|
|
//________________________________________________________________________________________________________
|
|
$cmd=CreaComando($cnx); // Crea objeto comando
|
|
if (!$cmd)
|
|
die($TbMsg["ACCESS_ERROR"]);
|
|
//________________________________________________________________________________________________________
|
|
|
|
if ($idc != 0)
|
|
{
|
|
$rs=new Recordset;
|
|
// $cmd->texto="SELECT * FROM centros WHERE idcentro='$idc'";
|
|
$cmd->texto="SELECT * FROM centros WHERE idcentro=".$idc;
|
|
$rs->Comando=&$cmd;
|
|
if (!$rs->Abrir()) return(false); // Error al abrir recordset
|
|
$rs->Primero();
|
|
if (!$rs->EOF){
|
|
$ident=$rs->campos["identidad"];
|
|
}$rs->Cerrar();
|
|
}
|
|
|
|
//________________________________________________________________________________________________________
|
|
|
|
|
|
$nmc="";
|
|
$idi="";
|
|
|
|
if(!empty($iph)){ // LLamada del browser del cliente
|
|
list($wip,$wusu,$wpwd,$wbd,$tbd)=split(";",$cnx);
|
|
$usu=$wusu;
|
|
$pss=$wpwd;
|
|
}
|
|
|
|
$resul=toma_datos($cmd,$idc,$nmc,$idi,$usu,$tsu,$pss);
|
|
// Antes la variable idioma no es la correcta
|
|
include_once("idiomas/php/$idi/acceso_$idi.php");
|
|
if(!$resul)
|
|
Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D.
|
|
|
|
if(!empty($iph)){
|
|
$wurl="./varios/menucliente.php";
|
|
Header("Location:".$wurl); // Accede a la página de menus
|
|
}
|
|
|
|
|
|
session_start(); // Activa variables de sesión
|
|
|
|
$_SESSION["widentidad"]=$ident;
|
|
$_SESSION["widcentro"]=$idc;
|
|
$_SESSION["wnombrecentro"]=$nmc;
|
|
$_SESSION["wusuario"]=$usu;
|
|
$_SESSION["widtipousuario"]=$tsu;
|
|
$_SESSION["widioma"]=$idi;
|
|
$_SESSION["wcadenaconexion"]=$cnx;
|
|
$_SESSION["wpagerror"]=$wer;
|
|
$_SESSION["wurlacceso"]=$wac;
|
|
$_SESSION["wadminetboot"]=$adminetboot;
|
|
|
|
// Variables de entorno
|
|
$resul=toma_entorno($cmd,$ips,$prt,$pclo,$rep);
|
|
if(!$resul)
|
|
Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D.
|
|
|
|
$_SESSION["wservidorhidra"]=$ips;
|
|
$_SESSION["whidraport"]=$prt;
|
|
$_SESSION["protclonacion"]=$pclo;
|
|
$_SESSION["repcentralizado"]=$rep;
|
|
|
|
//________________________________________________________________________________________________________
|
|
// Busca datos del usuario que intenta acceder a la aplicación
|
|
// Parametros:
|
|
// - cmd:Una comando ya operativo (con conexión abierta)
|
|
// - usuario: Nombre del usuario
|
|
// - pasguor: Password del uuario
|
|
//
|
|
// Devuelve el identificador del centro, el nombre y el idioma utilizado por el usuario
|
|
//_______________________________________________________________________________________________________
|
|
function toma_datos($cmd,$idcentro,&$nombrecentro,&$idioma,$usuario,&$idtipousuario,$pasguor){
|
|
global $adminetboot;
|
|
$rs=new Recordset;
|
|
if(!empty($idcentro)){
|
|
$cmd->texto="SELECT usuarios.idtipousuario, centros.nombrecentro,
|
|
idiomas.nemonico AS idioma
|
|
FROM usuarios
|
|
INNER JOIN administradores_centros ON administradores_centros.idusuario=usuarios.idusuario
|
|
INNER JOIN centros ON centros.idcentro=administradores_centros.idcentro
|
|
INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma
|
|
WHERE idtipousuario <> 3
|
|
AND usuarios.usuario='".$usuario."'
|
|
AND usuarios.pasguor='".$pasguor."'
|
|
AND administradores_centros.idcentro=".$idcentro;
|
|
}
|
|
else{
|
|
$cmd->texto="SELECT usuarios.idtipousuario, idiomas.nemonico AS idioma
|
|
FROM usuarios
|
|
INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma
|
|
WHERE idtipousuario <> 3
|
|
AND usuarios.usuario='".$usuario."'
|
|
AND usuarios.pasguor='".$pasguor."'";
|
|
}
|
|
$rs->Comando=&$cmd;
|
|
if (!$rs->Abrir()) return($false); // Error al abrir recordset
|
|
if(!$rs->EOF){
|
|
$adminetboot=$rs->campos["idtipousuario"];
|
|
$idtipousuario=$rs->campos["idtipousuario"];
|
|
$idioma=$rs->campos["idioma"];
|
|
if(!empty($idcentro)){
|
|
$nombrecentro=$rs->campos["nombrecentro"];
|
|
$idtipousuario=2; // Fuerza al acceso como administrador de UNidad organizativa
|
|
return(true);
|
|
}
|
|
else{
|
|
$nombrecentro="";
|
|
if($idtipousuario<>1) // Si NO es superadminsitrador
|
|
return(false);
|
|
else
|
|
return(true);
|
|
}
|
|
}
|
|
return(false);
|
|
}
|
|
//________________________________________________________________________________________________________
|
|
// Busca datos de configuración del sistema
|
|
// Parametros:
|
|
// - cmd:Una comando ya operativo (con conexión abierta)
|
|
// - ips: Dirección IP del servidor de administración
|
|
// - prt: Puerto de comunicaciones
|
|
// - pclo: Protocolo de clonación
|
|
// - rep: Uso de repositorio centralizado
|
|
//
|
|
// Devuelve datos generales de configuración del sistema
|
|
//_______________________________________________________________________________________________________
|
|
function toma_entorno($cmd,&$ips,&$prt,&$pclo,&$rep){
|
|
$rs=new Recordset;
|
|
$cmd->texto="SELECT * FROM entornos";
|
|
$rs->Comando=&$cmd;
|
|
//echo $cmd->texto;
|
|
if (!$rs->Abrir()) return($false); // Error al abrir recordset
|
|
if(!$rs->EOF){
|
|
$ips=$rs->campos["ipserveradm"];
|
|
$prt=$rs->campos["portserveradm"];
|
|
$pclo=$rs->campos["protoclonacion"];
|
|
//$rep=$rs->campos["repositorio"];
|
|
}
|
|
return(true);
|
|
}
|
|
//_______________________________________________________________________________________________________
|
|
?>
|
|
<html>
|
|
<head>
|
|
<title><?php echo $TbMsg["ACCESS_TITLE"] ?></title>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
|
<link rel="stylesheet" type="text/css" href="estilos.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div id="mensaje" style="position:absolute;TOP:250;LEFT:330; visibility:visible">
|
|
<span align="center" class="subcabeceras"><?php echo $TbMsg["ACCESS_ALLOWED"] ?></span>
|
|
</div>
|
|
<script language="javascript">
|
|
var vez=0;
|
|
setTimeout("acceso();",300);
|
|
function acceso(){
|
|
o=document.getElementById("mensaje");
|
|
var s=o.style.visibility;
|
|
if(s=="hidden")
|
|
o.style.visibility="visible";
|
|
else
|
|
o.style.visibility="hidden";
|
|
if(vez>5){
|
|
var w=window.top;
|
|
w.location="frames.php";
|
|
}
|
|
vez++;
|
|
setTimeout("acceso();",300);
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|