// +----------------------------------------------------------------------+ // // $Id$ // //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 'HTML/Image.php'; // }}} //VEO SI HAY QUE ELEGIR EN QUE SISTEMA TRABAJAR {{{ if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { header('Location: ./../sel-sistema'); } // }}} //CREO LOS OBJETOS NECESARIOS {{{ if (@$_GET['login']) { $login = $_GET['login']; $validar = 0; } else { $validar = 1; $login = null; } $TABLA = new 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); // }}} //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 DATOS A LAS TABLAS {{{ $imagen = new 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 {{{ 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['samurai']['login']); $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar', array ('onClick' => 'javascript:if (confirm(\'¿Esta Seguro?\')) return true;return false;')); $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'); } // }}} //SETEO LOS PERFILES SELECCIONADOS {{{ if (isset($_GET['accion']) && $_GET['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->setValue('Eliminar'); $FORM->freeze(); } } // }}} //VALIDO EL FORMULARIO {{{ if ($FORM->validate()) { // VEO SI SE CANCELO {{{ $botones = $FORM->getSubmitValue('botones'); if (@$botones['cancelar']) { header('Location: perfiles'); } // }}} 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)) { $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 { $FORM->freeze(); header('Location: usuarios'); } } } } // }}} //DIBUJO LA PAGINA {{{ $MARCO->addBody($TABLA); if (isset($ERROR)) { $MARCO->addBody($ERROR); } $MARCO->addBody($FORM); $MARCO->display(); // }}} //FIN ?>