2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4 foldmethod=marker:
3 // +----------------------------------------------------------------------+
5 // +----------------------------------------------------------------------+
6 // | Copyright (c) 1997-2003 The PHP Group |
7 // +----------------------------------------------------------------------+
8 // | This source file is subject to version 2.02 of the PHP license, |
9 // | that is bundled with this package in the file LICENSE, and is |
10 // | available at through the world-wide-web at |
11 // | http://www.php.net/license/2_02.txt. |
12 // | If you did not receive a copy of the PHP license and are unable to |
13 // | obtain it through the world-wide-web, please send a note to |
14 // | license@php.net so we can mail you a copy immediately. |
15 // +----------------------------------------------------------------------+
16 // | Created: mar may 27 15:16:38 ART 2003
17 // | Author: Martin Marrese <mmarre@mecon.gov.ar>
18 // +----------------------------------------------------------------------+
25 require_once 'MECON/HTML/QuickForm.php';
26 require_once 'MECON/HTML/Tabla.php';
27 require_once 'MECON/HTML/Error.php';
30 require_once 'SAMURAI/Sistema.php';
31 require_once 'SAMURAI/Permiso.php';
34 //OBTENGO EL ID DEL SISTEMA {{{
35 //El id de sistema viene por get o por post, no hay otra posibilidad
37 if (isset($_GET['idSistema'])) {
38 $idSistema = $_GET['idSistema'];
40 elseif (isset($_POST['idSistema'])) {
41 $idSistema = $_POST['idSistema'];
44 //CREO LOS OBJETO NECESARIOS {{{
45 $FORM = new MECON_HTML_QuickForm ('sistemas_permisos','post','sistemas-permisos');
46 $SISTEMA = new SAMURAI_Sistema ($DB, $idSistema);
47 $TABLASIST = new Tabla ('cellpadding=2');
48 $TABLAPERM = new Tabla ('cellpadding=2');
49 $SISTEMA->setResponsable($_SESSION['samurai']['login']);
51 //AGREGO LA INFORMACION DEL SISTEMA {{{
52 $row = array ('Datos del sistema');
53 $TABLASIST->addRow($row, 'cabecera colspan=3');
54 $row = array ('Id', 'Nombre', 'Descripcion');
55 $TABLASIST->addRow($row, 'titulo');
56 $row = array ($SISTEMA->getId(), $SISTEMA->getNombre(), $SISTEMA->getDescripcion());
57 $TABLASIST->addRow($row, 'comun');
59 //AGREGO LOS ELEMENTOS DEL FORM {{{
60 //Obtengo la lista de permisos
61 $PERMISOS = SAMURAI_Permiso::getArrayPermisos($DB);
63 $FORM->addElement ('header', 'cabecera' , 'Agregar una asociacion');
64 $FORM->addElement ('hidden', 'idSistema' , $idSistema);
65 $FORM->addElement ('select', 'permisos' , 'Permisos' , $PERMISOS, array('size' => '1'));
66 $FORM->addElement ('hidden', 'permant'); //Permiso anterior
67 $FORM->addElement ('hidden', 'obsant'); //Obseracion anterior
68 $FORM->addElement ('text' , 'observacion', 'Observacion', array('size' => '30'));
69 $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar');
70 $FORM->addGroup($group,'botones', '', ', ');
72 //VALIDO EL FORMULARIO {{{
73 if ($FORM->validate()) {
74 $idPermiso =& $FORM->getElement ('permisos' );
75 $idPerm_ant =& $FORM->getElement ('permant' );
76 $observacion =& $FORM->getElement ('observacion');
77 $obs_ant =& $FORM->getElement ('obsant' );
78 $group =& $FORM->getElement ('botones' );
79 $group =& $group->getElements('aceptar' );
80 $aceptar =& $group[0];
82 $tmp = $idPermiso->getSelected();
84 if ($aceptar->getValue() == 'Grabar') {
85 $error = $SISTEMA->guardarAsociacion($tmp, $observacion->getValue());
87 elseif ($aceptar->getValue() == 'Modificar') {
88 $error = $SISTEMA->modificarAsociacion($tmp, $idPerm_ant->getValue(), $observacion->getValue(), $obs_ant->getValue());
90 elseif ($aceptar->getValue() == 'Eliminar') {
91 $error = $SISTEMA->eliminarAsociacion($tmp, $observacion->getValue());
95 $ERROR = new MECON_HTML_Error('La asociacion ya existe, modifique alguno de sus datos');
98 $idPermiso->setSelected(null);
99 $observacion->setValue(null);
100 $aceptar->setValue('Grabar');
104 //VERIFICO COMO DEBO LLAMAR AL BOTON SUBMIT {{{
105 if (isset($_GET['accion'])) {
106 $group =& $FORM->getElement ('botones');
107 $group =& $group->getElements('aceptar');
108 $aceptar =& $group[0];
110 if ($_GET['accion'] == 'm') {
111 $aceptar->setValue('Modificar');
113 elseif ($_GET['accion'] == 'e') {
114 $aceptar->setValue('Eliminar');
119 //CAPTURO SI HAY ACCION -> MODIFICAR O ELIMINAR -> MUESTRO LOS DATOS EN EL FORM {{{
120 if (isset($_GET['accion'])) {
121 $idPermiso =& $FORM->getElement ('permisos' );
122 $idPerm_ant =& $FORM->getElement ('permant' );
123 $observacion =& $FORM->getElement ('observacion');
124 $obs_ant =& $FORM->getElement ('obsant' );
125 $idPermiso->setSelected($_GET['idPermiso']);
126 $idPerm_ant->setValue($_GET['idPermiso']);
127 $observacion->setValue($_GET['observacion']);
128 $obs_ant->setValue($_GET['observacion']);
131 //AGREGO LA INFORMACION DE LAS ASOCIACIONES {{{
132 $aHref = '<a href="sistemas-permisos?accion=##ACCION##&idPermiso=##PERMISO##&observacion=##OBS##&idSistema='.$idSistema.'">';
133 $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar"></a>';
134 $aHrefElim = $aHref.'<img src="/MECON/images/general_eliminar.gif" border="0" alt="Eliminar" ></a>';
135 $row = array ('Nombre', 'Observacion', 'Modif.', 'Elim.');
136 $TABLAPERM->addRow($row, 'cabecera');
138 $asocs = $SISTEMA->getAsociaciones();
140 $idPerm_ant =& $FORM->getElement ('permant');
141 $obs_ant =& $FORM->getElement ('obsant' );
143 foreach ($asocs as $key => $asoc) {
145 $permiso = new SAMURAI_Permiso($DB, $asoc['id']);
146 $Modif = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefModif);
147 $Elim = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefElim );
148 $Modif = ereg_replace('##OBS##' , $asoc['obs'], $Modif );
149 $Elim = ereg_replace('##OBS##' , $asoc['obs'], $Elim );
150 $Modif = ereg_replace('##ACCION##' , 'm' , $Modif );
151 $Elim = ereg_replace('##ACCION##' , 'e' , $Elim );
153 if ($permiso->getId() == $idPerm_ant->getValue() && $asoc['obs'] == $obs_ant->getValue()) {
157 $row = array ($permiso->getDescripcion(), $asoc['obs'], $Modif, $Elim);
158 $TABLAPERM->addRow($row, $estilo);
163 $TABLAVOLVER = new Tabla ('cellspacing=0');
164 $row = array ('<a href="sistemas" alt="Volver a la lista de Sistemas" ><img src="/MECON/images/general_volver4.gif"><b> Volver a Sistemas</b></a>');
165 $TABLAVOLVER->addRow($row,'align=left');
167 //DIBUJO LA PAGINA {{{
168 $MARCO = new Marco ('../../conf/confSecciones.php');
169 $MARCO->addTitle('Asociar Permisos y Sistemas');
170 //AGREGO LA TABLA DEL SISTEMA
171 $MARCO->addBody($TABLASIST);
172 $MARCO->addBody('<BR>');
175 $MARCO->addBody($ERROR);
177 //AGREGO LA TABLA DEL FORM
178 $MARCO->addBody($FORM);
179 $MARCO->addBody('<BR>');
180 //AGREGO LA TABLA DE PERMISOS
181 $MARCO->addBody($TABLAPERM);
182 $MARCO->addBody($TABLAVOLVER);