From: Martín Marrese Date: Mon, 8 Mar 2004 21:20:46 +0000 (+0000) Subject: Modifico la sección usuarios de samurai para que utilice MECON_HTML_TablaDB. X-Git-Tag: svn_import~22 X-Git-Url: https://git.llucax.com/mecon/samurai.git/commitdiff_plain/d34ddd26515d445d75d647c9d31b3949c4bda51c Modifico la sección usuarios de samurai para que utilice MECON_HTML_TablaDB. --- diff --git a/lib/SAMURAI/Usuario.php b/lib/SAMURAI/Usuario.php index a8a3a5a..de0e79c 100644 --- a/lib/SAMURAI/Usuario.php +++ b/lib/SAMURAI/Usuario.php @@ -539,5 +539,38 @@ class SAMURAI_Usuario { } // -X2C + /** + * Metodo que devuelve los datos necesarios para listar usuarios. + * + * @param SAMURAI_DB &$db Base de Datos + * @param int $id_sistema Identificador del sistema + * + * @return mixed + * @access public + * @static + */ + function getUsuariosPager(&$db, $id_sistema = null) { + + //@TODO REEMPLAZA A getUsuarios + if ($id_sistema) { + $sql = ' + SELECT DISTINCT u.login, u.nombre + FROM samurai.usuario AS u, perfil_sist_usuario AS psu + WHERE u.login = psu.login + AND psu.id_sistema = '. $id_sistema .' + ORDER BY login; + '; + } + else { + $sql = ' + SELECT login, nombre + FROM samurai.usuario + ORDER BY login + '; + } + return $db->query ($sql); + + } + } // -X2C Class :SAMURAI_Usuario ?> diff --git a/sistema/www/usuarios/usuarios-abm.php b/sistema/www/usuarios/usuarios-abm.php index 4cb553b..bbf6d80 100644 --- a/sistema/www/usuarios/usuarios-abm.php +++ b/sistema/www/usuarios/usuarios-abm.php @@ -28,7 +28,7 @@ if (!$SAMURAI_PERM->tiene(SAMURAI_PERM_DEVELOPER)) { $MARCO =& new MECON_Marco ('/var/www/sistemas/samurai/sistema/conf/confSecciones.php', $SAMURAI_PERM); //}}} -//XXX OBTENGO LA ACCION {{{ +//OBTENGO LA ACCION {{{ switch ($_REQUEST['accion']) { case 'm': $b_accion = 'Modificar'; @@ -44,163 +44,172 @@ switch ($_REQUEST['accion']) { break; } //}}} + //REQUIRE ONCE {{{ - //MECON {{{ - require_once 'MECON/HTML/QuickForm.php'; - require_once 'MECON/HTML/Tabla.php'; - require_once 'MECON/HTML/Error.php'; - //}}} - //SAMURAI {{{ - require_once 'SAMURAI/Perfil.php'; - require_once 'SAMURAI/Usuario.php'; - require_once 'SAMURAI/Sistema.php'; - //}}} - require_once 'MECON/HTML/Image.php'; +//MECON {{{ +require_once 'MECON/HTML/QuickForm.php'; +require_once 'MECON/HTML/Tabla.php'; +require_once 'MECON/HTML/Image.php'; +require_once 'MECON/HTML/Error.php'; +//}}} +//SAMURAI {{{ +require_once 'SAMURAI/Perfil.php'; +require_once 'SAMURAI/Usuario.php'; +require_once 'SAMURAI/Sistema.php'; +//}}} // }}} + //VEO SI HAY QUE ELEGIR EN QUE SISTEMA TRABAJAR {{{ if (!@$_SESSION['samurai']['id_sistema']) { header('Location: ./../sel-sistema?redirect=usuarios/usuarios'); } // }}} -//CREO LOS OBJETOS NECESARIOS {{{ - if (@$_GET['login']) { - $login = $_GET['login']; - $validar = 0; - } - else { - $validar = 1; - $login = null; - } +//CREO LOS OBJETOS NECESARIOS {{{ +if (@$accion) { + $login = $_GET['_login']; + $validar = 0; +} +else { + $validar = 1; + $login = null; +} - $TABLA = new MECON_HTML_Tabla ('cellspacing=0'); - $FORM = new MECON_HTML_QuickForm ('usuarios_abm','post','usuarios-abm'); - $FORM->renderer->updateAttributes('width="400"'); - $SISTEMA = new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']); - $USUARIO = new SAMURAI_Usuario($DB, $login, $_SESSION['samurai']['id_sistema']); +$TABLA = new MECON_HTML_Tabla ('cellspacing=0'); +$FORM = new MECON_HTML_QuickForm ('usuarios_abm','post','usuarios-abm'); +$FORM->renderer->updateAttributes('width="400"'); +$USUARIO = new SAMURAI_Usuario($DB, $login, $_SESSION['samurai']['id_sistema']); // }}} -//OBTENGO LOS DATOS DE LA BASE {{{ - $tmps = SAMURAI_Perfil::getPerfiles($DB, null, $_SESSION['samurai']['id_sistema']); - foreach ($tmps as $tmp) { - $PERFILES[$tmp->getId()] = $tmp->getDescripcion(); - } + +//VIÑETA CON EL SISTEMA EN EL CUAL SE ESTA TRABAJANDO {{{ +$SISTEMA =& new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']); +$tmp =& new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif', '>>'); +$VINETA = '
'. $tmp->toHTML() .' SISTEMA: '. + $SISTEMA->getNombre().'
'; //}}} -//AGREGO LOS DATOS A LAS TABLAS {{{ - $imagen = new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif'); - $row = array ($imagen->toHtml().' SISTEMA: '.$SISTEMA->getNombre().''); - $TABLA->addRow($row,'align=left'); + +//OBTENGO LOS DATOS DE LA BASE {{{ +$tmps = SAMURAI_Perfil::getPerfiles($DB, null, $_SESSION['samurai']['id_sistema']); +foreach ($tmps as $tmp) { + $PERFILES[$tmp->getId()] = $tmp->getDescripcion(); +} //}}} + //AGREGO LOS ELEMENTOS DEL FORM {{{ - if (@$PERFILES) { - $FORM->addElement ('header', 'cabecera' , 'ABM Usuarios'); - if ($login) { //Si esta el login solo permito modificar los perfiles asociados - $FORM->addElement ('static', 'login2', 'Login@Organismo' , $login ); - $FORM->addElement ('hidden', 'login' , $login ); - $FORM->addElement ('static', 'nombre', 'Nombre', $USUARIO->getNombre()); - } - else { - $FORM->addElement ('text' , 'login' , 'Login@Organismo' , array( 'value' => $login , 'size' => '20')); - } - $FORM->addElement ('select', 'perfiles' , 'Perfiles', $PERFILES, array('size' => '5', 'multiple' => 'true')); - $FORM->addElement ('hidden', 'responsable', $_SESSION['usuario']); - $FORM->addElement ('hidden', 'accion', $accion); - $group[] = HTML_QuickForm::createElement('submit', 'aceptar', $b_accion); - $group[] = HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:window.location = \'usuarios\';return false;')); - $FORM->addGroup($group,'botones'); +if (@$PERFILES) { + $FORM->addElement ('header', 'cabecera' , 'ABM Usuarios'); + if ($login) { //Si esta el login solo permito modificar los perfiles asociados + $FORM->addElement ('static', 'login2', 'Login@Organismo' , $login ); + $FORM->addElement ('hidden', 'login' , $login ); + $FORM->addElement ('static', 'nombre', 'Nombre', $USUARIO->getNombre()); } else { - $ERROR = new MECON_HTML_Error('El sistema no posee perfiles.'); + $FORM->addElement ('text' , 'login' , 'Login@Organismo' , array( 'value' => $login , 'size' => '20')); } -// }}} + $FORM->addElement ('select', 'perfiles' , 'Perfiles', $PERFILES, array('size' => '5', 'multiple' => 'true')); + $FORM->addElement ('hidden', 'responsable', $_SESSION['usuario']); + $FORM->addElement ('hidden', 'accion', $accion); + $group[] = HTML_QuickForm::createElement('submit', 'aceptar', $b_accion); + $group[] = HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:window.location = \'usuarios\';return false;')); + $FORM->addGroup($group,'botones'); +} +else { + $ERROR = new MECON_HTML_Error('El sistema no posee perfiles.'); +} +//}}} + //AGREO LAS REGLAS DE VALIDACION {{{ - if (@$PERFILES) { - if (@$validar) { - $FORM->addRule ('login', 'Se debe ingresar el login del usuario', 'required'); - } - $FORM->addRule ('perfiles', 'Se debe seleccionar al menos un perfil', 'required'); +if (@$PERFILES) { + if (@$validar) { + $FORM->addRule ('login', 'Se debe ingresar el login del usuario', 'required'); } -// }}} + $FORM->addRule ('perfiles', 'Se debe seleccionar al menos un perfil', 'required'); +} +//}}} + //SETEO LOS PERFILES SELECCIONADOS {{{ - if (isset($_GET['accion']) && $_GET['accion'] != '') { +if (isset($_GET['accion']) && $accion != '') { + $perfiles =& $FORM->getElement ('perfiles'); + $group =& $FORM->getElement ('botones' ); + $group =& $group->getElements('aceptar' ); + $aceptar =& $group[0]; + + $perfiles->setSelected($USUARIO->getPerfiles()); + + //Modifico el valor del boton + $aceptar->setValue('Modificar'); + + //ELIMINACION -> modifico el valor del boton + if ($_GET['accion'] == 'e') { + $aceptar->updateAttributes(array ('onClick' => 'javascript:if (confirm(\'¿Esta Seguro?\')) return true;return false;')); + $aceptar->setValue('Eliminar'); + $FORM->freeze(); + } +} +//}}} + +//VALIDO EL FORMULARIO {{{ +if ($FORM->validate()) { + // VEO SI SE CANCELO {{{ + $botones = $FORM->getSubmitValue('botones'); + if (@$botones['cancelar']) { + header('Location: usuarios'); + } + // }}} + else { + $login2 =& $FORM->getElement ('login' ); + $nombre =& $FORM->getElement ('nombre' ); $perfiles =& $FORM->getElement ('perfiles'); $group =& $FORM->getElement ('botones' ); $group =& $group->getElements('aceptar' ); $aceptar =& $group[0]; - - $perfiles->setSelected($USUARIO->getPerfiles()); - - //Modifico el valor del boton - $aceptar->setValue('Modificar'); - - //ELIMINACION -> modifico el valor del boton - if ($_GET['accion'] == 'e') { - $aceptar->updateAttributes(array ('onClick' => 'javascript:if (confirm(\'¿Esta Seguro?\')) return true;return false;')); - $aceptar->setValue('Eliminar'); - $FORM->freeze(); + $res = ''; + + if ($login) { + $login3 = $login2->_text; } - } -// }}} -//VALIDO EL FORMULARIO {{{ - if ($FORM->validate()) { - // VEO SI SE CANCELO {{{ - $botones = $FORM->getSubmitValue('botones'); - if (@$botones['cancelar']) { - header('Location: usuarios'); + else { + $login3 = $login2->getValue(); + } + $USUARIO->setLogin($login3); + + $res = $USUARIO->verificarLogin(); + if ($aceptar->getValue() == 'Grabar') { + $res2 = $USUARIO->verificarAsociacionExistente(); + } + if (@PEAR::isError($res)) { + $ERROR = new MECON_HTML_Error($res->getMessage()); + } + elseif (@PEAR::isError($res2)) { + $ERROR =new MECON_HTML_Error($res2->getMessage()); } - // }}} else { - $login2 =& $FORM->getElement ('login' ); - $nombre =& $FORM->getElement ('nombre' ); - $perfiles =& $FORM->getElement ('perfiles'); - $group =& $FORM->getElement ('botones' ); - $group =& $group->getElements('aceptar' ); - $aceptar =& $group[0]; - $res = ''; - - if ($login) { - $login3 = $login2->_text; - } - else { - $login3 = $login2->getValue(); - } - $USUARIO->setLogin($login3); - - $res = $USUARIO->verificarLogin(); - if ($aceptar->getValue() == 'Grabar') { - $res2 = $USUARIO->verificarAsociacionExistente(); - } - if (@PEAR::isError($res)) { + $USUARIO->setPerfiles($perfiles->getSelected()); + + $res = $USUARIO->guardarDatos($aceptar->getValue()); + + if (PEAR::isError($res)) { $ERROR = new MECON_HTML_Error($res->getMessage()); - } - elseif (@PEAR::isError($res2)) { - $ERROR =new MECON_HTML_Error($res2->getMessage()); - } - else { - $USUARIO->setPerfiles($perfiles->getSelected()); - - $res = $USUARIO->guardarDatos($aceptar->getValue()); - - if (PEAR::isError($res)) { - $ERROR = new MECON_HTML_Error($res->getMessage()); - if ($aceptar->getValue() == 'Eliminar') { - $FORM->freeze(); - } - } - else { + if ($aceptar->getValue() == 'Eliminar') { $FORM->freeze(); - header('Location: usuarios'); } } + else { + $FORM->freeze(); + header('Location: usuarios'); + } } } -// }}} +} +//}}} + //DIBUJO LA PAGINA {{{ - $MARCO->addBody($TABLA); - if (isset($ERROR)) { - $MARCO->addBody($ERROR); - } - $MARCO->addBody($FORM); - $MARCO->display(); +$MARCO->addBody($VINETA); +$MARCO->addBody($TABLA); +if (isset($ERROR)) { + $MARCO->addBody($ERROR); +} +$MARCO->addBody($FORM); +$MARCO->display(); // }}} -//FIN ?> diff --git a/sistema/www/usuarios/usuarios.php b/sistema/www/usuarios/usuarios.php index 285042e..947b432 100644 --- a/sistema/www/usuarios/usuarios.php +++ b/sistema/www/usuarios/usuarios.php @@ -27,79 +27,71 @@ if (!$SAMURAI_PERM->tiene(SAMURAI_PERM_DEVELOPER)) { } $MARCO =& new MECON_Marco ('/var/www/sistemas/samurai/sistema/conf/confSecciones.php', $SAMURAI_PERM); //}}} + //REQUIRE ONCE {{{ - require_once 'MECON/HTML/Tabla.php'; - require_once 'SAMURAI/Usuario.php'; - require_once 'SAMURAI/Sistema.php'; - require_once 'MECON/HTML/Image.php'; -// }}} -//LINKS {{{ - $aHrefPopup = ''; - $aHref = ''; - $aHrefModif = $aHref.'Modificar Usuario'; - $aHrefElim = $aHref.'Eliminar Usuario'; -// }}} +require_once 'SAMURAI/Sistema.php'; +require_once 'MECON/HTML/Image.php'; +require_once 'MECON/HTML/TablaDB.php'; +require_once 'SAMURAI/Usuario.php'; +//}}} + //VEO SI HAY QUE ELEGIR EN QUE SISTEMA TRABAJAR {{{ if (!@$_SESSION['samurai']['id_sistema']) { header('Location: ./../sel-sistema?redirect=usuarios/usuarios'); } -// }}} -//CREO LOS OBJETOS NECESARIOS {{{ - $TABLA2 = new MECON_HTML_Tabla ('cellspacing=0'); - $TABLA = new MECON_HTML_Tabla ('cellpadding=2'); - $TABLA3 = new MECON_HTML_Tabla ('cellspacing=0'); - $SISTEMA = new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']); -// }}} -//OBTENGO LA INFORMACION DE LA BASE {{{ - $usuarios = SAMURAI_Usuario::getUsuarios($DB, $_SESSION['samurai']['id_sistema']); -// }}} -//AGREGO LOS DATOS A LAS TABLAS {{{ - $imagen = new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif'); - $row = array ($imagen->toHtml().' SISTEMA: '.$SISTEMA->getNombre().''); - $TABLA3->addRow($row,'align=left'); +//}}} + +//VIÑETA CON EL SISTEMA EN EL CUAL SE ESTA TRABAJANDO {{{ +$SISTEMA =& new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']); +$tmp =& new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif', '>>'); +$VINETA = '
'. $tmp->toHTML() .' SISTEMA: '. + $SISTEMA->getNombre().'
'; +//}}} + +//OBTENGO LA INFORMACION DE LOS USUARIOS {{{ +$res = SAMURAI_Usuario::getUsuariosPager($DB, $_SESSION['samurai']['id_sistema']); +//}}} +//CREO LA TABLA DE USUARIOS {{{ +$TABLA =& new MECON_HTML_TablaDB ('Usuarios'); +$TABLA->addLink( + 'nuevo', + new MECON_HTML_Link( + 'usuarios-abm', 'Nuevo Usuario', + array ( + 'accion' => '##ACCION##', + '_login' => '##NUEVO##' + ) + ) + ); +$TABLA->addLink( + 'volver', + new MECON_HTML_Link( + './../sel-sistema?redirect=usuarios/usuarios', + 'Seleccionar otro sistema para trabajar' + ) + ); - //Agrego la posibilidad de seleccionar otro sistema para trabajar. - $row = array (); - $row[] = 'Seleccionar otro sistema para trabajar.'; - //Agrego el link a nuevo - if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_ALTA)) { - $row[] = $aHref.'Agregar Nuevo Usuario'; - } - $TABLA2->addRow($row,'align=right'); - $TABLA2->updateColAttributes(0,'align=left'); - //Genero la cabecera de la tabla - $row = array ('Login','Nombre'); - if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_MODIF)) { - $row[] = 'Modif.'; - } - if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) { - $row[] = 'Elim.'; - } - $TABLA->addRow($row,'cabecera'); - foreach ($usuarios as $usuario) { - $Popup = ereg_replace('##LOGIN##' , $usuario->getLogin(), $aHrefPopup); - $Modif = ereg_replace('##NUEVO##' , $usuario->getLogin(), $aHrefModif); - $Elim = ereg_replace('##NUEVO##' , $usuario->getLogin(), $aHrefElim ); - $Popup = $Popup.$usuario->getLogin().''; - $Modif = ereg_replace('##ACCION##', 'm' , $Modif ); - $Elim = ereg_replace('##ACCION##', 'e' , $Elim ); - $row = array ( $Popup, $usuario->getNombre()); - if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_MODIF)) { - $row[] = $Modif; - } - if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) { - $row[] = $Elim; - } - $TABLA->addRow($row); - } -// }}} +//Agrego las columnas de modificacion y eliminacion {{{ +$link = new MECON_HTML_Link ('usuarios-abm', null, array('accion' => 'm')); +if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_MODIF)) { + $TABLA->addRowsIcon('modificar', 'login', $link); +} +if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) { + $link->setGetVar('accion', 'e'); + $TABLA->addRowsIcon('eliminar', 'login', $link); +} +//}}} + +$TABLA->addRow(array('Login', 'Nombre', 'Modif.', 'Elimn.'), 'cabecera'); +$pager = $TABLA->addPager($res, null, new MECON_HTML_Link ('usuarios', null), 25); +$TABLA->addRows($pager, array ('login', 'nombre')); +//}}} + //DIBUJO LA PAGINA {{{ - $MARCO->addBody($TABLA3); - $MARCO->addBody($TABLA2->toHtml(1)); - $MARCO->addBody($TABLA); - $MARCO->display(); -// }}} -//FIN +$MARCO->addBody($VINETA); +$MARCO->addBody($TABLA); +$MARCO->display(); +//}}} ?>