]> git.llucax.com Git - mecon/samurai.git/blob - sistema/www/sistemas/sistemas-permisos.php
Permisos, Sistemas y Perfiles terminado.
[mecon/samurai.git] / sistema / www / sistemas / sistemas-permisos.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4 foldmethod=marker:
3 // +----------------------------------------------------------------------+
4 // | PHP Version 4                                                        |
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 // +----------------------------------------------------------------------+
19 //
20 // $Id$
21 // 
22
23 //REQUIRE_ONCE {{{
24     //MECON {{{
25     require_once 'MECON/HTML/QuickForm.php';
26     require_once 'MECON/HTML/Tabla.php';
27     require_once 'MECON/HTML/Error.php';
28     // }}}
29     //SAMURAI {{{
30     require_once 'SAMURAI/Sistema.php';
31     require_once 'SAMURAI/Permiso.php';
32     // }}}
33 // }}}
34 //OBTENGO EL ID DEL SISTEMA {{{
35     //El id de sistema viene por get o por post, no hay otra posibilidad
36     $idSistema = 0;
37     if (isset($_GET['idSistema'])) {
38         $idSistema = $_GET['idSistema'];
39     }
40     elseif (isset($_POST['idSistema'])) {
41         $idSistema = $_POST['idSistema'];
42     }
43 // }}}
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']);
50 // }}}
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');
58 // }}}
59 //AGREGO LOS ELEMENTOS DEL FORM {{{
60     //Obtengo la lista de permisos
61     $PERMISOS = SAMURAI_Permiso::getArrayPermisos($DB);
62     //Agrego elementos
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', '', ',&nbsp;');
71 // }}}
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];
81
82         $tmp = $idPermiso->getSelected();
83         $tmp = $tmp['0'];
84         if ($aceptar->getValue() == 'Grabar') {
85             $error = $SISTEMA->guardarAsociacion($tmp, $observacion->getValue());
86         }
87         elseif ($aceptar->getValue() == 'Modificar') {
88             $error = $SISTEMA->modificarAsociacion($tmp, $idPerm_ant->getValue(), $observacion->getValue(), $obs_ant->getValue());
89         }
90         elseif ($aceptar->getValue() == 'Eliminar') {
91             $error = $SISTEMA->eliminarAsociacion($tmp, $observacion->getValue());
92         }
93
94         if ($error) {
95             $ERROR = new MECON_HTML_Error('La asociacion ya existe, modifique alguno de sus datos');
96         }
97         else {
98             $idPermiso->setSelected(null);
99             $observacion->setValue(null);
100             $aceptar->setValue('Grabar');
101         }
102     }
103 // }}}
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];
109         
110         if ($_GET['accion'] == 'm') {
111             $aceptar->setValue('Modificar');
112         }
113         elseif ($_GET['accion'] == 'e') {
114             $aceptar->setValue('Eliminar');
115             $FORM->freeze();
116         }
117     } 
118 // }}}
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']);    
129     }
130 // }}}
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');
137     
138     $asocs = $SISTEMA->getAsociaciones();
139  
140     $idPerm_ant  =& $FORM->getElement ('permant');
141     $obs_ant     =& $FORM->getElement ('obsant' );  
142    
143     foreach ($asocs as $key => $asoc) {
144         $estilo = 'comun';
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      );
152         
153         if ($permiso->getId() == $idPerm_ant->getValue() && $asoc['obs'] == $obs_ant->getValue()) {
154             $estilo = 'titulo';
155         }
156         
157         $row = array ($permiso->getDescripcion(), $asoc['obs'], $Modif, $Elim);
158         $TABLAPERM->addRow($row, $estilo);
159     }
160
161 // }}}
162 //OPCION VOLVER {{{
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>&nbsp;Volver a Sistemas</b></a>');
165     $TABLAVOLVER->addRow($row,'align=left');
166 // }}}
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>');
173     //AGREGO EL ERROR
174     if (isset($ERROR)) {
175         $MARCO->addBody($ERROR);
176     }
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);
183     $MARCO->display();
184 // }}}
185 //FIN
186
187 ?>