From: Martín Marrese Date: Fri, 3 Oct 2003 19:53:40 +0000 (+0000) Subject: Consultas terminadas. Falta que sotton lo apruebe X-Git-Tag: svn_import~67 X-Git-Url: https://git.llucax.com/mecon/samurai.git/commitdiff_plain/840abcc48a16d1149da9922585135f09a41e789a Consultas terminadas. Falta que sotton lo apruebe --- diff --git a/doc/Samurai.xmi b/doc/Samurai.xmi index 99ffc91..70c4243 100644 --- a/doc/Samurai.xmi +++ b/doc/Samurai.xmi @@ -10,7 +10,7 @@ - + @@ -47,6 +47,7 @@ + - + @@ -342,14 +343,14 @@ x2c:set" name="sistema" static="0" scope="202" /> - + - + - + - + @@ -361,7 +362,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -504,6 +505,7 @@ x2c:set" name="sistema" static="0" scope="202" /> + diff --git a/lib/SAMURAI/Sistema.php b/lib/SAMURAI/Sistema.php index eacb7d5..f82f36f 100644 --- a/lib/SAMURAI/Sistema.php +++ b/lib/SAMURAI/Sistema.php @@ -1005,4 +1005,4 @@ class SAMURAI_Sistema { } // -X2C Class :SAMURAI_Sistema -?> +?> \ No newline at end of file diff --git a/lib/SAMURAI/Usuario.php b/lib/SAMURAI/Usuario.php index 91ce6c5..99a3c6b 100644 --- a/lib/SAMURAI/Usuario.php +++ b/lib/SAMURAI/Usuario.php @@ -486,5 +486,41 @@ class SAMURAI_Usuario { } // -X2C + // +X2C Operation 396 + /** + * Devuelve la informacion completa del usuario. Sistemas a los que esta asignado, perfiles que tiene dentro de cada sistema y permisos. + * + * @return mixed + * @access public + */ + function informacionGeneral() // ~X2C + { + $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true); + $tmp = $sql['obtener_informacion']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh,array($this->getLogin())); + + if (PEAR::isError($res)) { + return $res; + } + + $rta = array(); + + while ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { + $rta[$re['id_sistema']]['nombre_sistema'] = $re['nombre_sistema']; + $rta[$re['id_sistema']]['perfiles'][$re['id_perfil']]['desc_perfil'] = + $re['desc_perfil']; + + $rta[$re['id_sistema']]['perfiles'][$re['id_perfil']]['permisos'][$re['id_permiso']] + [$re['observaciones']]['desc_permiso'] = $re['desc_permiso']; + + $rta[$re['id_sistema']]['perfiles'][$re['id_perfil']]['permisos'][$re['id_permiso']] + [$re['observaciones']]['observaciones'] = $re['observaciones']; + } + + return $rta; + } + // -X2C + } // -X2C Class :SAMURAI_Usuario -?> \ No newline at end of file +?> diff --git a/lib/SAMURAI/Usuario/consultas.ini b/lib/SAMURAI/Usuario/consultas.ini index 4bca838..c21cc12 100644 --- a/lib/SAMURAI/Usuario/consultas.ini +++ b/lib/SAMURAI/Usuario/consultas.ini @@ -12,3 +12,6 @@ obtener_perfiles_usuario = " SELECT id_perfil FROM samurai.perfil_sist_usuario W verificar_login2 = " SELECT login FROM samurai.perfil_sist_usuario WHERE login = ? AND id_sistema = ?" borrar = " DELETE FROM samurai.perfil_sist_usuario WHERE login = ? AND id_sistema = ?" + +obtener_informacion = " SELECT psu.login AS login, psu.id_sistema AS id_sistema, sist.nombre_sistema AS nombre_sistema, psu.id_perfil AS id_perfil, perf.desc_perfil AS desc_perfil, pps.id_permiso AS id_permiso, perm.desc_permiso AS desc_permiso, pps.observaciones AS observaciones FROM samurai.permiso AS perm, samurai.perfil AS perf, samurai.sistema AS sist, samurai.perfil_sist_usuario AS psu, samurai.perm_perfil_sist AS pps WHERE psu.id_perfil = pps.id_perfil AND psu.id_sistema = pps.id_sistema AND psu.id_sistema = sist.id_sistema AND psu.id_perfil = perf.id_perfil AND pps.id_permiso = perm.id_permiso AND psu.login = ? ORDER BY sist.nombre_sistema, perf.desc_perfil, perm.desc_permiso" + diff --git a/sistema/www/consultas/consultas.php b/sistema/www/consultas/consultas.php index 04ec05c..a25d2ea 100644 --- a/sistema/www/consultas/consultas.php +++ b/sistema/www/consultas/consultas.php @@ -29,21 +29,40 @@ $SAMURAI_PERM->chequear(SAMURAI_PERM_DEVELOPER); require_once 'MECON/HTML/Image.php'; // }}} //CREO LOS OBJETOS NECESARIOS {{{ - $TABLA =& new MECON_HTML_Tabla ('width="500"', 'claro'); - $LINK_PHP_CONSTANTES =& new MECON_HTML_Link ('php-constantes', - 'Bajar la definicion de constantes de un sistema.'); - $LINK_INFO_SISTEMAS =& new MECON_HTML_Link('sistemas', 'Ver informacion + $TABLA =& new HTML_Table('width="500" align="right"'); + $LINK0 =& new MECON_HTML_Link('sistemas', 'Ver informacion de los sistemas.', array('accion'=>'info_listado')); - $LINK_ACTIVAR_SISTEMAS =& new MECON_HTML_Link('sistemas', 'Activar + $LINK1 =& new MECON_HTML_Link('sistemas', 'Activar Sistemas.', array('accion'=>'activar_sistema')); - $LINK_INFO_USUARIOS =& new MECON_HTML_Link('usuarios', 'Ver informacion + $LINK2 =& new MECON_HTML_Link('usuarios', 'Ver informacion de los usuarios.', array('accion'=>'filtrar')); + $LINK3 =& new MECON_HTML_Link ('php-constantes', + 'Bajar la definicion de constantes de un sistema.'); + + $IMG0 =& new MECON_HTML_Image('../images/verinfodesist.gif'); + $IMG1 =& new MECON_HTML_Image('../images/activar.gif'); + $IMG2 =& new MECON_HTML_Image('../images/verusuario.gif'); + $IMG3 =& new MECON_HTML_Image('../images/bajar.gif'); + + $IMG4 =& new MECON_HTML_Image('/MECON/images/blanco.gif'); + + $LINK00 =& new MECON_HTML_Link('sistemas', $IMG0, + array('accion'=>'info_listado')); + $LINK11 =& new MECON_HTML_Link('sistemas', $IMG1, + array('accion'=>'info_listado')); + $LINK22 =& new MECON_HTML_Link('sistemas', $IMG2, + array('accion'=>'info_listado')); + $LINK33 =& new MECON_HTML_Link('sistemas', $IMG3, + array('accion'=>'info_listado')); //}}} //AGREGO LA INFO A LAS TABLAS {{{ - $TABLA->addRow(array($LINK_PHP_CONSTANTES->toHtml()), 'align="center"'); - $TABLA->addRow(array($LINK_INFO_SISTEMAS->toHtml()) , 'align="center"'); - $TABLA->addRow(array($LINK_ACTIVAR_SISTEMAS->toHtml()) , 'align="center"'); - $TABLA->addRow(array($LINK_INFO_USUARIOS->toHtml()) , 'align="center"'); + $TABLA->addRow(array($LINK00->toHtml(),$LINK0->toHtml()), 'align="left"'); + $TABLA->addRow(array($IMG4->toHtml()), 'colspan="2"'); + $TABLA->addRow(array($LINK11->toHtml(),$LINK1->toHtml()), 'align="left"'); + $TABLA->addRow(array($IMG4->toHtml()), 'colspan="2"'); + $TABLA->addRow(array($LINK22->toHtml(),$LINK2->toHtml()), 'align="left"'); + $TABLA->addRow(array($IMG4->toHtml()), 'colspan="2"'); + $TABLA->addRow(array($LINK33->toHtml(),$LINK3->toHtml()), 'align="left"'); //}}} //DIBUJO LA PAGINA {{{ $MARCO->addBodyContent($TABLA); diff --git a/sistema/www/consultas/php-constantes.php b/sistema/www/consultas/php-constantes.php index f155e49..b630d35 100644 --- a/sistema/www/consultas/php-constantes.php +++ b/sistema/www/consultas/php-constantes.php @@ -49,7 +49,7 @@ $end = <<renderer->setTable($TABLAFORM); $SISTEMAS = SAMURAI_Sistema::getArraySistemas($DB); diff --git a/sistema/www/consultas/usuarios.php b/sistema/www/consultas/usuarios.php index 7014923..698c96f 100644 --- a/sistema/www/consultas/usuarios.php +++ b/sistema/www/consultas/usuarios.php @@ -45,10 +45,12 @@ //}}} //Obtengo la accion y el id del usuario {{{ - $accion = (@$_REQUEST['accion']) ? $_REQUEST['accion'] : 'listado'; - $subaccion = (@$_REQUEST['subaccion']) ? $_REQUEST['subaccion'] : null; - $login = (@$_REQUEST['login']) ? $_REQUEST['login'] : null; - $filtro = (@$_REQUEST['filtro']) ? $_REQUEST['filtro'] : null; + $accion = (@$_REQUEST['accion']) ? $_REQUEST['accion'] : 'listado'; + $subaccion = (@$_REQUEST['subaccion']) ? $_REQUEST['subaccion'] : null; + $login = (@$_REQUEST['login']) ? $_REQUEST['login'] : null; + $filtro = (@$_REQUEST['filtro']) ? $_REQUEST['filtro'] : null; + $id_sistema = (@$_REQUEST['id_sistema']) ? $_REQUEST['id_sistema'] : null; + $id_perfil = (@$_REQUEST['id_perfil']) ? $_REQUEST['id_perfil'] : null; //}}} //Creo la tabla volver {{{ @@ -104,17 +106,23 @@ elseif ($accion == 'listado') { $T_USUARIOS->addRow(array('Listado de Usuarios'), 'colspan="4" cabecera align="left"'); $T_USUARIOS->addRow(array('Login', 'Nombre', 'Dependencia', 'Sel.'), 'titulo'); - foreach ($usu as $key => $value) { - $u =& new MECON_Usuario(null, $key); - //BUSCO EL NOMBRE DE LA DEPENDENCIA {{{ - $depen = MECON_Dependencia::buscarPorCodigo ($DB, $u->getCodep()); - while ($depen->fetchInto($row)){ - $dep = $row['nombre']; + if (@count($usu)) { + foreach ($usu as $key => $value) { + $u =& new MECON_Usuario(null, $key); + //BUSCO EL NOMBRE DE LA DEPENDENCIA {{{ + $depen = MECON_Dependencia::buscarPorCodigo ($DB, $u->getCodep()); + while ($depen->fetchInto($row)){ + $dep = $row['nombre']; + } + //}}} + $LINK_SEL->setGetVars(array('accion'=>'info_usuario', 'login' + => $key)); + $T_USUARIOS->addRow(array($key, $value, $dep, $LINK_SEL->toHtml())); } - //}}} - $LINK_SEL->setGetVars(array('accion'=>'info_usuario', 'login' - => $key)); - $T_USUARIOS->addRow(array($key, $value, $dep, $LINK_SEL->toHtml())); + } + else { + $T_USUARIOS->addRow(array('No se encontraron coincidencias.'), + 'colspan="4" align="left"'); } //}}} @@ -130,6 +138,248 @@ elseif ($accion == 'listado') { } //}}} +//Informacion del usuario seleccionado {{{ +elseif ($accion == 'info_usuario') { + //Creo los objetos necesarios {{{ + $USUARIO =& new SAMURAI_Usuario($DB, $login); + $T_USUARIO =& new MECON_HTML_Tabla(); + $T_SISTEMAS =& new MECON_HTML_Tabla(); + $IMG_SEP =& new MECON_HTML_Image('../images/linea_separacion.gif'); + $IMG_SEL =& new MECON_HTML_Image('/MECON/images/general_ir4.gif'); + $LINK_SEL =& new MECON_HTML_Link('usuarios', $IMG_SEL); + //}}} + + //Agrego la informacion a la tabla de usuario {{{ + $T_USUARIO->addRow(array('Datos del Usuario'), 'colspan="3" cabecera + align="left"'); + $T_USUARIO->addRow(array('Login', 'Nombre', 'Dependencia'), 'titulo'); + $u =& new MECON_Usuario(null, $login); + //BUSCO EL NOMBRE DE LA DEPENDENCIA {{{ + $depen = MECON_Dependencia::buscarPorCodigo ($DB, $u->getCodep()); + while ($depen->fetchInto($row)){ + $dep = $row['nombre']; + } + //}}} + $T_USUARIO->addRow(array($login, $USUARIO->getNombre(), + $dep)); + //}}} + + //Obtengo la informacion de la base {{{ + $informacion = $USUARIO->informacionGeneral(); + //}}} + + //Agrego la informacion de los sistemas {{{ + $T_SISTEMAS->addRow(array('Sistemas en los que esta asociado el + usuario'), 'colspan="4" cabecera align="left"'); + $T_SISTEMAS->addRow(array('Id', 'Nombre', 'Descripcion', 'Perfiles'), 'titulo'); + foreach ($informacion as $key => $value) { + $SISTEMA =& new SAMURAI_Sistema($DB, $key); + $LINK_SEL->setGetVars(array('accion' => 'info_usuario_sistema', + 'id_sistema'=>$key, 'login'=>$login)); + $T_SISTEMAS->addRow(array( + $key, + $value['nombre_sistema'], + $SISTEMA->getDescripcion(), + $LINK_SEL->toHtml() + ) + ); + } + $T_SISTEMAS->updateColAttributes(0, 'width="5%" align="center"'); + $T_SISTEMAS->updateColAttributes(1, 'width="20%" align="center"'); + $T_SISTEMAS->updateColAttributes(3, 'width="5%" align="center"'); + $T_SISTEMAS->updateRowAttributes(0, 'align="left"'); + + //}}} + + //Agrego la informacion al marco {{{ + $LINK_VOLVER->setHref('usuarios'); + $LINK_VOLVER->setGetVars(array('accion' => 'filtrar')); + $MARCO->addBodyContent($T_USUARIO); + $MARCO->addBodyContent($IMG_SEP); + $MARCO->addBodyContent($T_SISTEMAS); + $MARCO->addTitle('Informacion Usuario'); + $MARCO->addBodyContent('
'); + $T_VOLVER->addRow(array($LINK_VOLVER->toHtml()), 'align="left"'); + $MARCO->addBodyContent($T_VOLVER); + //}}} +} +//}}} + +//Informacion del usuario y sistema seleccionado {{{ +elseif ($accion == 'info_usuario_sistema') { + //Creo los objetos necesarios {{{ + $USUARIO =& new SAMURAI_Usuario($DB, $login); + $SISTEMA =& new SAMURAI_Sistema($DB, $id_sistema); + $T_USUARIO =& new MECON_HTML_Tabla(); + $T_SISTEMA =& new MECON_HTML_Tabla(); + $T_PERFILES =& new MECON_HTML_Tabla('width="400"'); + $IMG_SEP =& new MECON_HTML_Image('../images/linea_separacion.gif'); + $IMG_SEL =& new MECON_HTML_Image('/MECON/images/general_ir4.gif'); + $LINK_SEL =& new MECON_HTML_Link('usuarios', $IMG_SEL); + //}}} + + //Agrego la informacion a la tabla de usuario {{{ + $T_USUARIO->addRow(array('Datos del Usuario'), 'colspan="3" cabecera + align="left"'); + $T_USUARIO->addRow(array('Login', 'Nombre', 'Dependencia'), 'titulo'); + $u =& new MECON_Usuario(null, $login); + //BUSCO EL NOMBRE DE LA DEPENDENCIA {{{ + $depen = MECON_Dependencia::buscarPorCodigo ($DB, $u->getCodep()); + while ($depen->fetchInto($row)){ + $dep = $row['nombre']; + } + //}}} + $T_USUARIO->addRow(array($login, $USUARIO->getNombre(), + $dep)); + //}}} + + //Agrego la informacion de la tabla sistema {{{ + $T_SISTEMA->addRow(array('Datos del sistema'), 'colspan="3" cabecera align="left"'); + $T_SISTEMA->addRow(array('Id', 'Nombre', 'Descripcion'), 'titulo'); + $T_SISTEMA->addRow(array($id_sistema, $SISTEMA->getNombre(), + $SISTEMA->getDescripcion())); + $T_SISTEMA->updateColAttributes(0, 'width="5%" align="center"'); + $T_SISTEMA->updateColAttributes(1, 'width="20%" align="center"'); + $T_SISTEMA->updateRowAttributes(0, 'align="left"'); + //}}} + + //Obtengo la informacion de la base {{{ + $informacion = $USUARIO->informacionGeneral(); + //}}} + + //Agrego la informacion de los perfiles {{{ + $T_PERFILES->addRow(array('Perfiles del usuario en este sistema'), + 'colspan="3" cabecera align="left"'); + $T_PERFILES->addRow(array('Id', 'Descripcion', 'Permisos'), 'titulo'); + $informacion = $informacion[$id_sistema]['perfiles']; + foreach ($informacion as $key => $value) { + $PERFIL =& new SAMURAI_Perfil($DB, $key); + $LINK_SEL->setGetVars(array('accion' => 'info_usuario_sistema_perfil', + 'id_sistema'=>$id_sistema, 'login'=>$login, + 'id_perfil'=>$key)); + $T_PERFILES->addRow(array( + $key, + $value['desc_perfil'], + $LINK_SEL->toHtml() + ) + ); + } + $T_PERFILES->updateColAttributes(0, 'width="5%" align="center"'); + $T_PERFILES->updateColAttributes(2, 'width="5%" align="center"'); + $T_PERFILES->updateRowAttributes(0, 'align="left"'); + + //}}} + + //Agrego la informacion al marco {{{ + $LINK_VOLVER->setHref('usuarios'); + $LINK_VOLVER->setGetVars(array('accion' => 'info_usuario', + 'login' => $login)); + $MARCO->addBodyContent($T_USUARIO); + $MARCO->addBodyContent($IMG_SEP); + $MARCO->addBodyContent($T_SISTEMA); + $MARCO->addBodyContent($IMG_SEP); + $MARCO->addBodyContent($T_PERFILES); + $MARCO->addTitle('Informacion Usuario'); + $MARCO->addBodyContent('
'); + $T_VOLVER->addRow(array($LINK_VOLVER->toHtml()), 'align="left"'); + $MARCO->addBodyContent($T_VOLVER); + //}}} +} +//}}} + +//Informacion del usuario, sistema y perfli seleccionado {{{ +elseif ($accion == 'info_usuario_sistema_perfil') { + //Creo los objetos necesarios {{{ + $USUARIO =& new SAMURAI_Usuario($DB, $login); + $SISTEMA =& new SAMURAI_Sistema($DB, $id_sistema); + $PERFIL =& new SAMURAI_Perfil($DB, $id_perfil); + $T_USUARIO =& new MECON_HTML_Tabla(); + $T_SISTEMA =& new MECON_HTML_Tabla(); + $T_PERFIL =& new MECON_HTML_Tabla('width="400"'); + $T_PERMISOS =& new MECON_HTML_Tabla('width="400"'); + $IMG_SEP =& new MECON_HTML_Image('../images/linea_separacion.gif'); + $IMG_SEL =& new MECON_HTML_Image('/MECON/images/general_ir4.gif'); + $LINK_SEL =& new MECON_HTML_Link('usuarios', $IMG_SEL); + //}}} + + //Agrego la informacion a la tabla de usuario {{{ + $T_USUARIO->addRow(array('Datos del Usuario'), 'colspan="3" cabecera + align="left"'); + $T_USUARIO->addRow(array('Login', 'Nombre', 'Dependencia'), 'titulo'); + $u =& new MECON_Usuario(null, $login); + //BUSCO EL NOMBRE DE LA DEPENDENCIA {{{ + $depen = MECON_Dependencia::buscarPorCodigo ($DB, $u->getCodep()); + while ($depen->fetchInto($row)){ + $dep = $row['nombre']; + } + //}}} + $T_USUARIO->addRow(array($login, $USUARIO->getNombre(), + $dep)); + //}}} + + //Agrego la informacion de la tabla sistema {{{ + $T_SISTEMA->addRow(array('Datos del sistema'), 'colspan="3" cabecera align="left"'); + $T_SISTEMA->addRow(array('Id', 'Nombre', 'Descripcion'), 'titulo'); + $T_SISTEMA->addRow(array($id_sistema, $SISTEMA->getNombre(), + $SISTEMA->getDescripcion())); + $T_SISTEMA->updateColAttributes(0, 'width="5%" align="center"'); + $T_SISTEMA->updateColAttributes(1, 'width="20%" align="center"'); + $T_SISTEMA->updateRowAttributes(0, 'align="left"'); + //}}} + + //Agrego la informacion de la tabla perfil {{{ + $T_PERFIL->addRow(array('Datos del perfil'), 'colspan="2" cabecera align="left"'); + $T_PERFIL->addRow(array('Id', 'Descripcion'), 'titulo'); + $T_PERFIL->addRow(array($id_perfil, $PERFIL->getDescripcion())); + $T_PERFIL->updateColAttributes(0, 'width="5%" align="center"'); + $T_PERFIL->updateRowAttributes(0, 'align="left"'); + //}}} + + //Obtengo la informacion de la base {{{ + $informacion = $USUARIO->informacionGeneral(); + //}}} + + //Agrego la informacion de los permisos {{{ + $T_PERMISOS->addRow(array('Permisos del usuario con este perfil'), + 'colspan="3" cabecera align="left"'); + $T_PERMISOS->addRow(array('Id', 'Descripcion', 'Observaciones'), 'titulo'); + $informacion = + $informacion[$id_sistema]['perfiles'][$id_perfil]['permisos']; + foreach ($informacion as $key => $value) { + foreach ($value as $obs) { + $T_PERMISOS->addRow(array( + $key, + $obs['desc_permiso'], + $obs['observaciones'] + ) + ); + } + } + $T_PERMISOS->updateColAttributes(0, 'width="5%" align="center"'); + $T_PERMISOS->updateColAttributes(1, 'width="20%" align="center"'); + $T_PERMISOS->updateRowAttributes(0, 'align="left"'); + + //}}} + + //Agrego la informacion al marco {{{ + $LINK_VOLVER->setHref('usuarios'); + $LINK_VOLVER->setGetVars(array('accion' => 'info_usuario_sistema', + 'login' => $login, 'id_sistema'=>$id_sistema)); + $MARCO->addBodyContent($T_USUARIO); + $MARCO->addBodyContent($IMG_SEP); + $MARCO->addBodyContent($T_SISTEMA); + $MARCO->addBodyContent($IMG_SEP); + $MARCO->addBodyContent($T_PERFIL); + $MARCO->addBodyContent($IMG_SEP); + $MARCO->addBodyContent($T_PERMISOS); + $MARCO->addTitle('Informacion Usuario'); + $MARCO->addBodyContent('
'); + $T_VOLVER->addRow(array($LINK_VOLVER->toHtml()), 'align="left"'); + $MARCO->addBodyContent($T_VOLVER); + //}}} +} +//}}} + //MUESTRO LA INFORMACION {{{ $MARCO->display(); exit; diff --git a/sistema/www/images/activar.gif b/sistema/www/images/activar.gif new file mode 100644 index 0000000..4122844 Binary files /dev/null and b/sistema/www/images/activar.gif differ diff --git a/sistema/www/images/bajar.gif b/sistema/www/images/bajar.gif new file mode 100644 index 0000000..f314c19 Binary files /dev/null and b/sistema/www/images/bajar.gif differ diff --git a/sistema/www/images/linea_separacion.gif b/sistema/www/images/linea_separacion.gif index 2d57392..dba9c7f 100644 Binary files a/sistema/www/images/linea_separacion.gif and b/sistema/www/images/linea_separacion.gif differ diff --git a/sistema/www/images/verinfodesist.gif b/sistema/www/images/verinfodesist.gif new file mode 100644 index 0000000..275e3a6 Binary files /dev/null and b/sistema/www/images/verinfodesist.gif differ diff --git a/sistema/www/images/verusuario.gif b/sistema/www/images/verusuario.gif new file mode 100644 index 0000000..a9bc8ef Binary files /dev/null and b/sistema/www/images/verusuario.gif differ