// +----------------------------------------------------------------------+
//
// $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.'';
$aHrefElim = $aHref.'';
$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
?>