// +----------------------------------------------------------------------+ // // $Id$ // //VERIFICO SI SE TIENE ACCESO A LA PAGINA{{{ $SAMURAI_PERM->setSistema(SAMURAI_PERM); if (!$SAMURAI_PERM->tiene(SAMURAI_PERM_DEVELOPER)) { $SAMURAI_PERM->setSistema($_SESSION['samurai']['id_sistema']); $SAMURAI_PERM->chequear(SAMURAI_PERM_USUARIO_ALTA, SAMURAI_PERM_USUARIO_BAJA, SAMURAI_PERM_USUARIO_MODIF, SAMURAI_PERM_DEVELOPER); } $MARCO =& new MECON_Marco ('/var/www/sistemas/samurai/sistema/conf/confSecciones.php', $SAMURAI_PERM); //}}} //OBTENGO LA ACCION {{{ switch ($_REQUEST['accion']) { case 'm': $b_accion = 'Modificar'; $accion = 'm'; break; case 'e': $b_accion = 'Eliminar'; $accion = 'e'; break; default: $b_accion = 'Grabar'; $accion = ''; break; } //}}} //REQUIRE ONCE {{{ //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 (@$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"'); $USUARIO = new SAMURAI_Usuario($DB, $login, $_SESSION['samurai']['id_sistema']); // }}} //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 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'); } 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']) && $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]; $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($VINETA); $MARCO->addBody($TABLA); if (isset($ERROR)) { $MARCO->addBody($ERROR); } $MARCO->addBody($FORM); $MARCO->display(); // }}} ?>