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

remotes/github/debian-pkg
alonso 2009-11-15 18:59:56 +00:00
parent f258c77943
commit ec016976c8
5 changed files with 169 additions and 133 deletions

View File

@ -505,7 +505,6 @@ CREATE TABLE IF NOT EXISTS `ordenadores` (
`mac` varchar(12) default NULL,
`idaula` int(11) default NULL,
`idperfilhard` int(11) default NULL,
`idperfilsoft` int(11) default NULL,
`idservidordhcp` int(11) default NULL,
`idservidorrembo` int(11) default NULL,
`grupoid` int(11) default NULL,
@ -538,6 +537,18 @@ CREATE TABLE IF NOT EXISTS `ordenador_imagen` (
-- Volcar la base de datos para la tabla `ordenador_imagen`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `ordenador_imagen`
--
DROP TABLE IF EXISTS `ordenador_perfilsoft`;
REATE TABLE `ordenador_perfilsoft` (
`idordenador` int(11) NOT NULL default '0',
`particion` int(11) NOT NULL default '0',
`idperfilsoft` int(11) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------

View File

@ -13,7 +13,7 @@
//
// Descripción:
// Esta funcin registra los evento de errores en un fichero log
// Parametros:
// Parametros:
// - msg : Mensage de error
// - swerrno: Switch que indica que recupere literal de error del sistema
// ________________________________________________________________________________________________________
@ -339,6 +339,12 @@ void gestiona_comando(SOCKET s,TRAMA trama)
RESPUESTA_TomaHardware(s,parametros);
respuesta_cortesia(s);
return;
}
resul=strcmp(nombrefuncion,"RESPUESTA_TomaSoftware");
if(resul==0){
RESPUESTA_TomaSoftware(s,parametros);
respuesta_cortesia(s);
return;
}
}
else{ // Debe ejecutar elcliente rembo
@ -1351,7 +1357,7 @@ int actualiza_software(Database db, Table tbl,char* sft,char* par,char* ip,char*
} // Fin for
}
// Comprueba existencia de perfil software y actualización de éste para el ordenador
if(!CuestionPerfilSoftware(db, tbl,idcentro,ido,tbidsoftware,i,nombreordenador)){
if(!CuestionPerfilSoftware(db, tbl,idcentro,ido,tbidsoftware,i,nombreordenador,par)){
tbl.GetErrorErrStr(ErrStr); // error al acceder al registro
pthread_mutex_unlock(&guardia);
return(false);
@ -1363,19 +1369,19 @@ int actualiza_software(Database db, Table tbl,char* sft,char* par,char* ip,char*
// ________________________________________________________________________________________________________
// Funcin: CuestionPerfilSoftware
//________________________________________________________________________________________________________/
int CuestionPerfilSoftware(Database db, Table tbl,int idcentro,char* ido,int *tbidsoftware,int i,char *nombreordenador){
int CuestionPerfilSoftware(Database db, Table tbl,int idcentro,char* ido,int *tbidsoftware,int i,char *nombreordenador,char *particion){
char sqlstr[1000],ErrStr[200];
int tbidsoftwareperfil[MAXSOFTWARE];
int j=0;
int idperfilsoft;
// Busca perfil soft del ordenador
sprintf(sqlstr,"SELECT perfilessoft_softwares.idsoftware FROM ordenadores INNER JOIN perfilessoft ON ordenadores.idperfilsoft = perfilessoft.idperfilsoft INNER JOIN perfilessoft_softwares ON perfilessoft_softwares.idperfilsoft = perfilessoft.idperfilsoft WHERE ordenadores.idordenador =%s",ido);
sprintf(sqlstr,"SELECT perfilessoft_softwares.idsoftware FROM ordenador_perfilsoft INNER JOIN perfilessoft ON ordenador_perfilsoft.idperfilsoft = perfilessoft.idperfilsoft INNER JOIN perfilessoft_softwares ON perfilessoft_softwares.idperfilsoft=perfilessoft.idperfilsoft WHERE ordenador_perfilsoft.idordenador =%s",ido);
// EJecuta consulta
if(!db.Execute(sqlstr,tbl)){ // Error al leer
db.GetErrorErrStr(ErrStr);
return(false);
}
while(!tbl.ISEOF()){ // Recorre acciones del menu
while(!tbl.ISEOF()){ // Recorre software del perfils
if(!tbl.Get("idsoftware",tbidsoftwareperfil[j++])){ // Toma dato
tbl.GetErrorErrStr(ErrStr); // error al acceder al registro
return(false);
@ -1384,15 +1390,18 @@ int CuestionPerfilSoftware(Database db, Table tbl,int idcentro,char* ido,int *tb
}
// Comprueba si el perfil del ordenador contiene todo el software enviado
int k,q,sw=false;
for(k=0;k<i;k++){ // Elemento software
for(q=0;q<j;q++){
if(tbidsoftware[k]==tbidsoftwareperfil[q]){
sw=true;
break;
if(i==j){ // Si son el mismo número de componenetes software ...
for(k=0;k<i;k++){ // Elemento software
for(q=0;q<j;q++){
if(tbidsoftware[k]==tbidsoftwareperfil[q]){
sw=true;
break;
}
}
if(!sw) break;
}
if(!sw) break;
}
// La variable sw contiene false si se ha encontrado algún software que no está en el perfil software del ordenador
if(sw) return(true); // Todo el software está en el perfil actual
@ -1420,12 +1429,29 @@ int CuestionPerfilSoftware(Database db, Table tbl,int idcentro,char* ido,int *tb
db.GetErrorErrStr(ErrStr);
return(false);
}
}
sprintf(sqlstr,"UPDATE ordenadores SET idperfilsoft=%d WHERE idordenador=%s",idperfilsoft,ido);
if(!db.Execute(sqlstr,tbl)){ // Error al insertar
}
// Busca si existe un perfil software para ese ordenador y esa partición
sprintf(sqlstr,"SELECT idperfilsoft FROM ordenador_perfilsoft WHERE idordenador =%s AND particion=%s",ido,particion);
// Ejecuta consulta
if(!db.Execute(sqlstr,tbl)){ // Error al leer
db.GetErrorErrStr(ErrStr);
return(false);
}
}
if(!tbl.ISEOF()){ // existe un perfilsoft que se cambia al nuevo
sprintf(sqlstr,"UPDATE ordenador_perfilsoft SET idperfilsoft=%d WHERE idordenador=%s AND particion=%s",idperfilsoft,ido,particion);
if(!db.Execute(sqlstr,tbl)){ // Error al insertar
db.GetErrorErrStr(ErrStr);
return(false);
}
}
else{
sprintf(sqlstr,"INSERT INTO ordenador_perfilsoft (idordenador,particion,idperfilsoft) VALUE (%s,%s,%d)",ido,particion,idperfilsoft);
if(!db.Execute(sqlstr,tbl)){ // Error al insertar
db.GetErrorErrStr(ErrStr);
return(false);
}
}
return(true);
}
// ________________________________________________________________________________________________________

View File

@ -171,7 +171,7 @@ int actualiza_configuracion(Database , Table ,char* ,int,int ,char* );
int actualiza_hardware(Database , Table ,char* ,char* ,char*);
int actualiza_software(Database , Table ,char* ,char*,char* ,char*);
int CuestionPerfilHardware(Database , Table ,int ,char* ,int *,int ,char*);
int CuestionPerfilSoftware(Database, Table ,int ,char* ,int *,int,char *);
int CuestionPerfilSoftware(Database, Table ,int ,char* ,int *,int,char *,char*);
void TomaParticiones(char*, char* ,int );
int Toma_menu(Database,Table,char*,int,int);

View File

@ -75,7 +75,7 @@ switch($ambito){
<TH align=center>&nbsp;&nbsp;</TH>
<TH align=center>&nbsp;<? echo $TbMsg[8] ?>&nbsp;</TH>
<TH align=center>&nbsp;<? echo $TbMsg[9] ?>&nbsp;</TH>
<TH align=center>&nbsp;<? echo $TbMsg[10] ?>&nbsp;</TD></TR>
</TR>
<?
echo tabla_configuraciones($cmd,$idambito);
?>
@ -121,7 +121,6 @@ function tabla_configuraciones($cmd,$idordenador){
$tablaHtml.='<TD align=center>&nbsp;'.$particion.'&nbsp;</TD>'.chr(13);
$tablaHtml.='<TD>&nbsp;'.$nombreso.'&nbsp;</TD>'.chr(13);
$tiposo=$ValorParametros["tiposo"];
$tablaHtml.='<TD></TD>';
$tablaHtml.='</TR>'.chr(13);
}
}

View File

@ -1,125 +1,125 @@
<?
// *************************************************************************************************************************************************
// 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
// *************************************************************************************************************************************************
// 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
// *************************************************************************************************************************************************
if(isset($_SESSION)){ // Si existe algua sesión ...
session_unset(); // Elimina variables
session_destroy(); // Destruye sesión
}
session_start(); // Activa variables de sesión
session_start(); // Activa variables de sesión
include_once("./clases/AdoPhp.php");
$usu="";
$pss="";
if (isset($_POST["usu"])) $usu=$_POST["usu"];
if (isset($_POST["pss"])) $pss=$_POST["pss"];
//========================================================================================================
// Variables de sessión de configuración de servidor y base de datos( Modificar aquípara cambio global)
$cnx="localhost;usuog;passusuog;ogBDAdmin;mysql"; // Cadena de conexión a la base de datos
$ips="SERVERIP"; // IP del servidor de Administración
$usu="";
$pss="";
if (isset($_POST["usu"])) $usu=$_POST["usu"];
if (isset($_POST["pss"])) $pss=$_POST["pss"];
//========================================================================================================
// Variables de sessión de configuración de servidor y base de datos( Modificar aquípara cambio global)
$cnx="localhost;usuog;passusuog;ogBDAdmin;mysql"; // Cadena de conexión a la base de datos
$ips="10.1.15.3"; // IP del servidor de Administración
$prt="2008"; // Puerto de comunicación con el servidor
$wer="OPENGNSYSURL/pagerror.php"; // Página de redireccionamiento de errores
$wac="OPENGNSYSURL/acceso.php"; // Página de login de la aplicación
//========================================================================================================
$cmd=CreaComando($cnx); // Crea objeto comando
$resul=false;
$idc=0;
$nmc="";
$idi="";
if ($cmd){
$resul=toma_datos($cmd,&$idc,&$nmc,&$idi,$usu,&$tsu,$pss);
}
if(!$resul)
Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D.
$_SESSION["widcentro"]=$idc;
$_SESSION["wnombrecentro"]=$nmc;
$_SESSION["wusuario"]=$usu;
$_SESSION["widtipousuario"]=$tsu;
$_SESSION["widioma"]=$idi;
$_SESSION["wcadenaconexion"]=$cnx;
$_SESSION["wservidorhidra"]=$ips;
$_SESSION["whidraport"]=$prt;
$_SESSION["wpagerror"]=$wer;
$_SESSION["wurlacceso"]=$wac;
// *************************************************************************************************************************************************
// Devuelve una objeto comando totalmente operativo (con la conexión abierta)
// Parametros:
// - cadenaconexion: Una cadena con los datos necesarios para la conexión: nombre del servidor
// usuario,password,base de datos,etc separados por coma
//________________________________________________________________________________________________________
function CreaComando($cadenaconexion){
$strcn=split(";",$cadenaconexion);
$cn=new Conexion;
$cmd=new Comando;
$cn->CadenaConexion($strcn[0],$strcn[1],$strcn[2],$strcn[3],$strcn[4]);
if (!$cn->Abrir()) return (false);
$cmd->Conexion=&$cn;
return($cmd);
}
//________________________________________________________________________________________________________
// 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){
$rs=new Recordset;
$cmd->texto="SELECT usuarios.idtipousuario,usuarios.idambito,centros.nombrecentro,idiomas.nemonico AS idioma FROM usuarios";
$cmd->texto.=" LEFT OUTER JOIN centros ON usuarios.idambito=centros.idcentro";
$cmd->texto.=" INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma";
$cmd->texto.=" WHERE idtipousuario<>3 AND usuarios.usuario='".$usuario."' AND usuarios.pasguor='".$pasguor."'";
$rs->Comando=&$cmd;
$resul=false;
if (!$rs->Abrir()) return($resul); // Error al abrir recordset
$rs->Primero();
if (!$rs->EOF){
$idcentro=$rs->campos["idambito"];
$nombrecentro=$rs->campos["nombrecentro"];
$idtipousuario=$rs->campos["idtipousuario"];
$idioma=$rs->campos["idioma"];
return(true);
}
return($resul);
}
?>
<HTML>
<TITLE> Administración web de aulas</TITLE>
$wer="http://localhost/WebConsole/pagerror.php"; // Página de redireccionamiento de errores
$wac="http://localhost/WebConsole/acceso.php"; // Página de login de la aplicación
//========================================================================================================
$cmd=CreaComando($cnx); // Crea objeto comando
$resul=false;
$idc=0;
$nmc="";
$idi="";
if ($cmd){
$resul=toma_datos($cmd,&$idc,&$nmc,&$idi,$usu,&$tsu,$pss);
}
if(!$resul)
Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D.
$_SESSION["widcentro"]=$idc;
$_SESSION["wnombrecentro"]=$nmc;
$_SESSION["wusuario"]=$usu;
$_SESSION["widtipousuario"]=$tsu;
$_SESSION["widioma"]=$idi;
$_SESSION["wcadenaconexion"]=$cnx;
$_SESSION["wservidorhidra"]=$ips;
$_SESSION["whidraport"]=$prt;
$_SESSION["wpagerror"]=$wer;
$_SESSION["wurlacceso"]=$wac;
// *************************************************************************************************************************************************
// Devuelve una objeto comando totalmente operativo (con la conexión abierta)
// Parametros:
// - cadenaconexion: Una cadena con los datos necesarios para la conexión: nombre del servidor
// usuario,password,base de datos,etc separados por coma
//________________________________________________________________________________________________________
function CreaComando($cadenaconexion){
$strcn=split(";",$cadenaconexion);
$cn=new Conexion;
$cmd=new Comando;
$cn->CadenaConexion($strcn[0],$strcn[1],$strcn[2],$strcn[3],$strcn[4]);
if (!$cn->Abrir()) return (false);
$cmd->Conexion=&$cn;
return($cmd);
}
//________________________________________________________________________________________________________
// 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){
$rs=new Recordset;
$cmd->texto="SELECT usuarios.idtipousuario,usuarios.idambito,centros.nombrecentro,idiomas.nemonico AS idioma FROM usuarios";
$cmd->texto.=" LEFT OUTER JOIN centros ON usuarios.idambito=centros.idcentro";
$cmd->texto.=" INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma";
$cmd->texto.=" WHERE idtipousuario<>3 AND usuarios.usuario='".$usuario."' AND usuarios.pasguor='".$pasguor."'";
$rs->Comando=&$cmd;
$resul=false;
if (!$rs->Abrir()) return($resul); // Error al abrir recordset
$rs->Primero();
if (!$rs->EOF){
$idcentro=$rs->campos["idambito"];
$nombrecentro=$rs->campos["nombrecentro"];
$idtipousuario=$rs->campos["idtipousuario"];
$idioma=$rs->campos["idioma"];
return(true);
}
return($resul);
}
?>
<HTML>
<TITLE> Administración web de aulas</TITLE>
<HEAD>
<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>Acceso permitido. Espere por favor ...</SPAN></P>
<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>
<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>Acceso permitido. Espere por favor ...</SPAN></P>
<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>