X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/3c702b40a1806798e475c48abb456e5a9c2dac72..de4cfadb31bf782b45184a44ba02bb73f8cc2f77:/sistema/www/usuarios/usuarios-abm.php diff --git a/sistema/www/usuarios/usuarios-abm.php b/sistema/www/usuarios/usuarios-abm.php index 63fe141..ed58473 100644 --- a/sistema/www/usuarios/usuarios-abm.php +++ b/sistema/www/usuarios/usuarios-abm.php @@ -20,6 +20,9 @@ // $Id$ // +//VERIFICO SI SE TIENE ACCESO A LA PAGINA{{{ +$SAMURAI_PERM->chequear(SAMURAI_ALTA_USUARIO, SAMURAI_BAJA_USUARIO, SAMURAI_MODI_USUARIO, SAMURAI_DEVELOPER); +//}}} //REQUIRE ONCE {{{ //MECON {{{ require_once 'MECON/HTML/QuickForm.php'; @@ -31,11 +34,11 @@ require_once 'SAMURAI/Usuario.php'; require_once 'SAMURAI/Sistema.php'; //}}} - require_once 'HTML/Image.php'; + require_once 'MECON/HTML/Image.php'; // }}} //VEO SI HAY QUE ELEGIR EN QUE SISTEMA TRABAJAR {{{ -if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { - header('Location: ./../sel-sistema'); +if (!@$_SESSION['samurai']['id_sistema']) { + header('Location: ./../sel-sistema?redirect=usuarios/usuarios'); } // }}} //CREO LOS OBJETOS NECESARIOS {{{ @@ -47,10 +50,12 @@ if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { $validar = 1; $login = null; } - $TABLA = new Tabla ('cellspacing=0'); + + + $TABLA = new MECON_HTML_Tabla ('cellspacing=0'); $FORM = new MECON_HTML_QuickForm ('usuarios_abm','post','usuarios-abm'); $SISTEMA = new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']); - $USUARIO = new SAMURAI_Usuario($DB, $login); + $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']); @@ -59,31 +64,38 @@ if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { } //}}} //AGREGO LOS DATOS A LAS TABLAS {{{ - $imagen = new HTML_Image('/MECON/images/vinetas_flecha_doble.gif'); + $imagen = new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif'); $row = array ($imagen->toHtml().' SISTEMA: '.$SISTEMA->getNombre().''); $TABLA->addRow($row,'align=left'); //}}} //AGREGO LOS ELEMENTOS DEL FORM {{{ - $FORM->addElement ('header', 'cabecera' , 'ABM Usuarios'); - if ($login) { //Si esta el login solo permito modificar los perfiles asociados - $FORM->addElement ('static', 'login2', 'Login' , $login ); - $FORM->addElement ('hidden', 'login' , $login ); - $FORM->addElement ('static', 'nombre', 'Nombre', $USUARIO->getNombre()); + 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']); + $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); + $group[] = HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:window.location = \'usuarios\';return false;')); + $FORM->addGroup($group,'botones'); } else { - $FORM->addElement ('text' , 'login' , 'Login' , array( 'value' => $login , 'size' => '20')); + $ERROR = new MECON_HTML_Error('El sistema no posee perfiles.'); } - $FORM->addElement ('select', 'perfiles' , 'Perfiles', $PERFILES, array('size' => '5', 'multiple' => 'true')); - $FORM->addElement ('hidden', 'responsable', $_SESSION['samurai']['login']); - $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); - $group[] = HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:history.go(-1);return true;')); - $FORM->addGroup($group,'botones'); // }}} //AGREO LAS REGLAS DE VALIDACION {{{ - if (@$validar) { - $FORM->addRule ('login', 'Se debe ingresar el login del usuario', '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'); } - $FORM->addRule ('perfiles', 'Se debe seleccionar al menos un perfil', 'required'); // }}} //SETEO LOS PERFILES SELECCIONADOS {{{ if (isset($_GET['accion']) && $_GET['accion'] != '') { @@ -99,6 +111,7 @@ if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { //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(); } @@ -109,7 +122,7 @@ if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { // VEO SI SE CANCELO {{{ $botones = $FORM->getSubmitValue('botones'); if (@$botones['cancelar']) { - header('Location: perfiles'); + header('Location: usuarios'); } // }}} else { @@ -128,13 +141,19 @@ if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { $login3 = $login2->getValue(); } $USUARIO->setLogin($login3); - $res = $USUARIO->verificarLogin(); - if (PEAR::isError($res)) { + $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 { $USUARIO->setPerfiles($perfiles->getSelected()); - + $res = $USUARIO->guardarDatos($aceptar->getValue()); if (PEAR::isError($res)) { @@ -152,7 +171,6 @@ if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { } // }}} //DIBUJO LA PAGINA {{{ - $MARCO = new Marco ('../../conf/confSecciones.php'); $MARCO->addBody($TABLA); if (isset($ERROR)) { $MARCO->addBody($ERROR);