// +----------------------------------------------------------------------+ // // $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/Sistema.php'; require_once 'SAMURAI/Permiso.php'; // }}} // }}} //OBTENGO EL ID DEL SISTEMA {{{ //El id de sistema viene por get o por post, no hay otra posibilidad $idSistema = 0; if (isset($_GET['idSistema'])) { $idSistema = $_GET['idSistema']; } elseif (isset($_POST['idSistema'])) { $idSistema = $_POST['idSistema']; } // }}} //CREO LOS OBJETO NECESARIOS {{{ $FORM = new MECON_HTML_QuickForm ('sistemas_permisos','post','sistemas-permisos'); $SISTEMA = new SAMURAI_Sistema ($DB, $idSistema); $TABLASIST = new Tabla ('cellpadding=2'); $TABLAPERM = new Tabla ('cellpadding=2'); $SISTEMA->setResponsable($_SESSION['samurai']['login']); // }}} //AGREGO LA INFORMACION DEL SISTEMA {{{ $row = array ('Datos del sistema'); $TABLASIST->addRow($row, 'cabecera colspan=3'); $row = array ('Id', 'Nombre', 'Descripcion'); $TABLASIST->addRow($row, 'titulo'); $row = array ($SISTEMA->getId(), $SISTEMA->getNombre(), $SISTEMA->getDescripcion()); $TABLASIST->addRow($row, 'comun'); // }}} //AGREGO LOS ELEMENTOS DEL FORM {{{ //Obtengo la lista de permisos $PERMISOS = SAMURAI_Permiso::getArrayPermisos($DB); //Agrego elementos $FORM->addElement ('header', 'cabecera' , 'Agregar una asociacion'); $FORM->addElement ('hidden', 'idSistema' , $idSistema); $FORM->addElement ('select', 'permisos' , 'Permisos' , $PERMISOS, array('size' => '1')); $FORM->addElement ('hidden', 'permant'); //Permiso anterior $FORM->addElement ('hidden', 'obsant'); //Obseracion anterior $FORM->addElement ('text' , 'observacion', 'Observacion', array('size' => '30')); $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); $FORM->addGroup($group,'botones', '', ', '); // }}} //VALIDO EL FORMULARIO {{{ if ($FORM->validate()) { $idPermiso =& $FORM->getElement ('permisos' ); $idPerm_ant =& $FORM->getElement ('permant' ); $observacion =& $FORM->getElement ('observacion'); $obs_ant =& $FORM->getElement ('obsant' ); $group =& $FORM->getElement ('botones' ); $group =& $group->getElements('aceptar' ); $aceptar =& $group[0]; $tmp = $idPermiso->getSelected(); $tmp = $tmp['0']; if ($aceptar->getValue() == 'Grabar') { $error = $SISTEMA->guardarAsociacion($tmp, $observacion->getValue()); } elseif ($aceptar->getValue() == 'Modificar') { $error = $SISTEMA->modificarAsociacion($tmp, $idPerm_ant->getValue(), $observacion->getValue(), $obs_ant->getValue()); } elseif ($aceptar->getValue() == 'Eliminar') { $error = $SISTEMA->eliminarAsociacion($tmp, $observacion->getValue()); } if ($error) { $ERROR = new MECON_HTML_Error('La asociacion ya existe, modifique alguno de sus datos'); } else { $idPermiso->setSelected(null); $observacion->setValue(null); $aceptar->setValue('Grabar'); } } // }}} //VERIFICO COMO DEBO LLAMAR AL BOTON SUBMIT {{{ if (isset($_GET['accion'])) { $group =& $FORM->getElement ('botones'); $group =& $group->getElements('aceptar'); $aceptar =& $group[0]; if ($_GET['accion'] == 'm') { $aceptar->setValue('Modificar'); } elseif ($_GET['accion'] == 'e') { $aceptar->setValue('Eliminar'); $FORM->freeze(); } } // }}} //CAPTURO SI HAY ACCION -> MODIFICAR O ELIMINAR -> MUESTRO LOS DATOS EN EL FORM {{{ if (isset($_GET['accion'])) { $idPermiso =& $FORM->getElement ('permisos' ); $idPerm_ant =& $FORM->getElement ('permant' ); $observacion =& $FORM->getElement ('observacion'); $obs_ant =& $FORM->getElement ('obsant' ); $idPermiso->setSelected($_GET['idPermiso']); $idPerm_ant->setValue($_GET['idPermiso']); $observacion->setValue($_GET['observacion']); $obs_ant->setValue($_GET['observacion']); } // }}} //AGREGO LA INFORMACION DE LAS ASOCIACIONES {{{ $aHref = ''; $aHrefModif = $aHref.'Modificar'; $aHrefElim = $aHref.'Eliminar'; $row = array ('Nombre', 'Observacion', 'Modif.', 'Elim.'); $TABLAPERM->addRow($row, 'cabecera'); $asocs = $SISTEMA->getAsociaciones(); $idPerm_ant =& $FORM->getElement ('permant'); $obs_ant =& $FORM->getElement ('obsant' ); foreach ($asocs as $key => $asoc) { $estilo = 'comun'; $permiso = new SAMURAI_Permiso($DB, $asoc['id']); $Modif = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefModif); $Elim = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefElim ); $Modif = ereg_replace('##OBS##' , $asoc['obs'], $Modif ); $Elim = ereg_replace('##OBS##' , $asoc['obs'], $Elim ); $Modif = ereg_replace('##ACCION##' , 'm' , $Modif ); $Elim = ereg_replace('##ACCION##' , 'e' , $Elim ); if ($permiso->getId() == $idPerm_ant->getValue() && $asoc['obs'] == $obs_ant->getValue()) { $estilo = 'titulo'; } $row = array ($permiso->getDescripcion(), $asoc['obs'], $Modif, $Elim); $TABLAPERM->addRow($row, $estilo); } // }}} //OPCION VOLVER {{{ $TABLAVOLVER = new Tabla ('cellspacing=0'); $row = array (' Volver a Sistemas'); $TABLAVOLVER->addRow($row,'align=left'); // }}} //DIBUJO LA PAGINA {{{ $MARCO = new Marco ('../../conf/confSecciones.php'); $MARCO->addBody($TABLAVOLVER); $MARCO->addTitle('Asociar Permisos y Sistemas'); //AGREGO LA TABLA DEL SISTEMA $MARCO->addBody($TABLASIST); $MARCO->addBody('
'); //AGREGO EL ERROR if (isset($ERROR)) { $MARCO->addBody($ERROR); } //AGREGO LA TABLA DEL FORM $MARCO->addBody($FORM); $MARCO->addBody('
'); //AGREGO LA TABLA DE PERMISOS $MARCO->addBody($TABLAPERM); $MARCO->display(); // }}} //FIN ?>