]> git.llucax.com Git - mecon/samurai.git/commitdiff
- ABM de sistemas terminado.
authorMartín Marrese <marrese@gmail.com>
Fri, 27 Jun 2003 16:53:52 +0000 (16:53 +0000)
committerMartín Marrese <marrese@gmail.com>
Fri, 27 Jun 2003 16:53:52 +0000 (16:53 +0000)
- ABM de asociaciones entre permisos y sistemas terminado.

doc/uml/Samurai.xmi
sistema/conf/confSecciones.php
sistema/local_lib/Sistema.php
sistema/local_lib/Sistema/consultas.php
sistema/local_lib/prepend.php
sistema/www/.htaccess
sistema/www/sistemas-permisos.php [deleted file]
sistema/www/sistemas/sistemas-abm.php [moved from sistema/www/sistemas-abm.php with 98% similarity]
sistema/www/sistemas/sistemas-permisos.php [new file with mode: 0644]
sistema/www/sistemas/sistemas.php [moved from sistema/www/sistemas.php with 91% similarity]

index 6922b94bd7b3de225e17f4b669830904cb8dacad..b91c3a4489f0c5edfe7df2038b25cf882c3f76c6 100644 (file)
@@ -9,7 +9,7 @@
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
-  <docsettings viewid="206" documentation="" uniqueid="309" />
+  <docsettings viewid="206" documentation="" uniqueid="315" />
   <umlobjects>
    <UML:Class stereotype="" package="" xmi.id="207" abstract="0" documentation="Clase para el manejo de los usuarios." name="Usuario" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="216" type="void" abstract="0" documentation="Constructor.Recibe como parametro opcional el login del usuario. y busca en la base la informacion referida a el." name="Usuario" static="0" scope="200" >
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="309" type="void" abstract="0" documentation="Borra los permisos que tenga asociado el sistema segun el criterio de observaciones" name="borrarPermisosDb" static="0" scope="201" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="Identificador del sistema" name="idSistema" static="0" scope="200" />
-     <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="bool" abstract="0" documentation="Si es false borra todas las asociaciones que tenga el sistema. Si es true borra solo aquellas que tengan observaciones = ''" name="observaciones" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="null" type="bool" abstract="0" documentation="Null u observacion de la asociacion a borrar" name="observaciones" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="3" value="null" type="int" abstract="0" documentation="Identificador del permiso a borrar" name="idPermiso" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="312" type="bool" abstract="0" documentation="Guarda en base las nuevas asociaciones que se van cargando y actualiza los datos del sistema." name="guardarAsociacion" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="Identificador del Permiso" name="idPermiso" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="''" type="string" abstract="0" documentation="Observacion a agregar" name="observacion" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="313" type="bool" abstract="0" documentation="Elimina una asociacion de la base, y actualiza los datos del sistema." name="eliminarAsociacion" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="Identificador del permiso a borrar" name="idPermiso" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="''" type="string" abstract="0" documentation="Observacion de la asociacion a borrar (Puede ser vacia)" name="observacion" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="314" type="bool" abstract="0" documentation="Actualiza los datos de la asociacion en la base de datos." name="modificarAsociacion" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="Identificador del permiso" name="idPermiso" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="int" abstract="0" documentation="Identificador del permiso anterior" name="idPermiso_ant" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="3" value="''" type="string" abstract="0" documentation="Observacion a insertar" name="observacion" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="4" value="''" type="string" abstract="0" documentation="Observacion anterior" name="obs_ant" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="315" type="bool" abstract="0" documentation="Chequea si existe la asociacion" name="existeAsociacion" static="0" scope="201" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="Id del permiso a chequear" name="idPermiso" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="string" abstract="0" documentation="Observacion a chequear" name="observacion" static="0" scope="200" />
     </UML:Operation>
     <UML:Attribute stereotype="" package="" xmi.id="235" value="" type="int" abstract="0" documentation="Identificador del sistema." name="id" static="0" scope="201" />
     <UML:Attribute stereotype="" package="" xmi.id="237" value="" type="string" abstract="0" documentation="Nombre del sistema." name="nombre" static="0" scope="201" />
     <UML:Attribute stereotype="" package="" xmi.id="272" value="" type="Samurai_DB" abstract="0" documentation="Objeto Samurai_DB" name="db" static="0" scope="201" />
     <UML:Attribute stereotype="" package="" xmi.id="289" value="" type="string" abstract="0" documentation="Login del responsable de los ultimos cambios del sistema." name="responsable" static="0" scope="201" />
     <UML:Attribute stereotype="" package="" xmi.id="300" value="" type="array" abstract="0" documentation="Array asociativo (id - descripcion) con los permisos asociados al sistema." name="permisos" static="0" scope="201" />
+    <UML:Attribute stereotype="" package="" xmi.id="310" value="" type="array" abstract="0" documentation="Array con los permisos asociados al sistema
+x2c:get set" name="asociaciones" static="0" scope="201" />
    </UML:Class>
    <UML:Class stereotype="" package="" xmi.id="210" abstract="0" documentation="Clase para el manejo de los Permisos." name="Permiso" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="259" type="void" abstract="0" documentation="Constructor. Si recibe como parametro el identificador del permiso, busca la informacion en la DB." name="Permiso" static="0" scope="200" >
@@ -163,70 +184,70 @@ x2c:include: DB.php" name="DB" static="0" scope="200" />
    </UML:Class>
   </umlobjects>
   <diagrams>
-   <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="1" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="206" documentation="" type="402" showops="1" showpackage="0" name="Clases" localid="30000" showstereotype="0" showscope="1" font="helvetica,7,-1,0,50,0,0,0,0,0" linecolor="#ff0000" >
+   <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="206" documentation="" type="402" showops="1" showpackage="0" name="Clases" localid="30000" showstereotype="0" showscope="1" font="helvetica,7,-1,0,50,0,0,0,0,0" linecolor="#ff0000" >
     <widgets>
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="230" showattsigs="601" usesdiagramusefillcolour="0" x="510" linecolour="#ff0000" y="160" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="165" usefillcolor="1" showattributes="1" xmi.id="207" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="208" showattsigs="601" usesdiagramusefillcolour="0" x="380" linecolour="#ff0000" y="0" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="121" usefillcolor="1" showattributes="1" xmi.id="208" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="266" showattsigs="601" usesdiagramusefillcolour="0" x="10" linecolour="#ff0000" y="280" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="407" usefillcolor="1" showattributes="1" xmi.id="209" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="208" showattsigs="601" usesdiagramusefillcolour="0" x="10" linecolour="#ff0000" y="10" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="132" usefillcolor="1" showattributes="1" xmi.id="210" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="40" showattsigs="601" usesdiagramusefillcolour="0" x="230" linecolour="#ff0000" y="10" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="21" usefillcolor="1" showattributes="1" xmi.id="264" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="78" showattsigs="601" usesdiagramusefillcolour="0" x="270" linecolour="#ff0000" y="120" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="27" usefillcolor="1" showattributes="1" xmi.id="265" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="240" showattsigs="601" usesdiagramusefillcolour="0" x="350" linecolour="#ff0000" y="450" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="121" usefillcolor="1" showattributes="1" xmi.id="274" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="86" showattsigs="601" usesdiagramusefillcolour="0" x="660" linecolour="#ff0000" y="320" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="165" usefillcolor="1" showattributes="1" xmi.id="207" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="94" showattsigs="601" usesdiagramusefillcolour="0" x="660" linecolour="#ff0000" y="70" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="121" usefillcolor="1" showattributes="1" xmi.id="208" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="132" showattsigs="601" usesdiagramusefillcolour="0" x="60" linecolour="#ff0000" y="190" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="462" usefillcolor="1" showattributes="1" xmi.id="209" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="95" showattsigs="601" usesdiagramusefillcolour="0" x="230" linecolour="#ff0000" y="20" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="132" usefillcolor="1" showattributes="1" xmi.id="210" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="40" showattsigs="601" usesdiagramusefillcolour="0" x="490" linecolour="#ff0000" y="30" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="21" usefillcolor="1" showattributes="1" xmi.id="264" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="64" showattsigs="601" usesdiagramusefillcolour="0" x="400" linecolour="#ff0000" y="250" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="27" usefillcolor="1" showattributes="1" xmi.id="265" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="111" showattsigs="601" usesdiagramusefillcolour="0" x="360" linecolour="#ff0000" y="420" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="121" usefillcolor="1" showattributes="1" xmi.id="274" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,7,-1,0,50,0,0,0,0,0" />
     </widgets>
     <messages/>
     <associations>
      <UML:AssocWidget totalcounta="4" indexa="2" totalcountb="2" indexb="1" widgetbid="264" widgetaid="265" documentation="" type="500" >
       <linepath>
-       <startpoint startx="309" starty="120" />
-       <endpoint endx="250" endy="31" />
+       <startpoint startx="432" starty="250" />
+       <endpoint endx="510" endy="51" />
       </linepath>
      </UML:AssocWidget>
      <UML:AssocWidget totalcounta="4" indexa="1" totalcountb="2" indexb="1" widgetbid="210" widgetaid="265" documentation="" type="501" >
       <linepath>
-       <startpoint startx="289" starty="120" />
-       <endpoint endx="218" endy="76" />
+       <startpoint startx="416" starty="250" />
+       <endpoint endx="325" endy="86" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="209" widgetaid="265" documentation="" type="501" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="209" widgetaid="265" documentation="" type="501" >
       <linepath>
-       <startpoint startx="309" starty="147" />
-       <endpoint endx="143" endy="280" />
+       <startpoint startx="400" starty="263" />
+       <endpoint endx="192" endy="344" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="4" indexa="3" totalcountb="2" indexb="1" widgetbid="208" widgetaid="265" documentation="" type="501" >
+     <UML:AssocWidget totalcounta="4" indexa="3" totalcountb="3" indexb="1" widgetbid="208" widgetaid="265" documentation="" type="501" >
       <linepath>
-       <startpoint startx="328" starty="120" />
-       <endpoint endx="380" endy="60" />
+       <startpoint startx="448" starty="250" />
+       <endpoint endx="660" endy="110" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="207" widgetaid="265" documentation="" type="501" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="207" widgetaid="265" documentation="" type="501" >
       <linepath>
-       <startpoint startx="348" starty="133" />
-       <endpoint endx="510" endy="242" />
+       <startpoint startx="464" starty="263" />
+       <endpoint endx="660" endy="375" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="274" widgetaid="209" documentation="" type="501" >
+     <UML:AssocWidget totalcounta="3" indexa="2" totalcountb="2" indexb="1" widgetbid="274" widgetaid="209" documentation="" type="501" >
       <linepath>
-       <startpoint startx="276" starty="483" />
-       <endpoint endx="350" endy="510" />
+       <startpoint startx="192" starty="498" />
+       <endpoint endx="360" endy="480" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="3" widgetbid="274" widgetaid="207" documentation="" type="501" >
+     <UML:AssocWidget totalcounta="3" indexa="2" totalcountb="2" indexb="1" widgetbid="274" widgetaid="207" documentation="" type="501" >
       <linepath>
-       <startpoint startx="625" starty="325" />
-       <endpoint endx="530" endy="450" />
+       <startpoint startx="660" starty="430" />
+       <endpoint endx="471" endy="480" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="2" widgetbid="274" widgetaid="208" documentation="" type="501" >
+     <UML:AssocWidget totalcounta="3" indexa="2" totalcountb="3" indexb="2" widgetbid="274" widgetaid="208" documentation="" type="501" >
       <linepath>
-       <startpoint startx="484" starty="121" />
-       <endpoint endx="470" endy="450" />
+       <startpoint startx="660" starty="150" />
+       <endpoint endx="434" endy="420" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="1" widgetbid="274" widgetaid="210" documentation="" type="501" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="274" widgetaid="210" documentation="" type="501" >
       <linepath>
-       <startpoint startx="114" starty="142" />
-       <endpoint endx="410" endy="450" />
+       <startpoint startx="277" starty="152" />
+       <endpoint endx="397" endy="420" />
       </linepath>
      </UML:AssocWidget>
     </associations>
@@ -279,11 +300,14 @@ x2c:include: DB.php" name="DB" static="0" scope="200" />
        <listitem open="0" type="815" id="269" label="connect" />
       </listitem>
       <listitem open="1" type="813" id="209" label="Sistema" >
+       <listitem open="0" type="814" id="310" label="asociaciones" />
        <listitem open="0" type="815" id="305" label="borrarDb" />
        <listitem open="0" type="815" id="309" label="borrarPermisosDb" />
        <listitem open="0" type="814" id="242" label="contacto" />
        <listitem open="0" type="814" id="272" label="db" />
        <listitem open="0" type="814" id="238" label="descripcion" />
+       <listitem open="0" type="815" id="313" label="eliminarAsociacion" />
+       <listitem open="0" type="815" id="315" label="existeAsociacion" />
        <listitem open="0" type="814" id="240" label="fecha_fin" />
        <listitem open="0" type="814" id="241" label="fecha_implementacion" />
        <listitem open="0" type="814" id="239" label="fecha_inicio" />
@@ -299,8 +323,10 @@ x2c:include: DB.php" name="DB" static="0" scope="200" />
        <listitem open="0" type="815" id="290" label="getResponsable" />
        <listitem open="0" type="815" id="304" label="grabarDb" />
        <listitem open="0" type="815" id="308" label="grabarPermisosDb" />
+       <listitem open="0" type="815" id="312" label="guardarAsociacion" />
        <listitem open="0" type="815" id="288" label="guardarDatos" />
        <listitem open="0" type="814" id="235" label="id" />
+       <listitem open="0" type="815" id="314" label="modificarAsociacion" />
        <listitem open="0" type="815" id="306" label="modificarDb" />
        <listitem open="0" type="814" id="237" label="nombre" />
        <listitem open="0" type="815" id="263" label="obtenerDatosDb" />
index c87da9eca1e18cad85831d2deeb89c345f177fdb..988a50015a1fe25b730307050e3bd0bba272fa1d 100644 (file)
         'db_name'           => 'samurai',
         //Directorios web del sistema, salvo el root, todos son opcionales
         //Si no se ponen, o estan vacias se asume lo que dice el comentario al lado de cada una
-        'directorios'       => array (  'root'     => '/www/sistemas/samurai',              // obligatorio
-//                                        'imagenes' => '/www/sistemas/samurai/www/images',   // <root>/www/images
-                                        'estilos'  => '',                                  // <root>/www/css
-                                        'js'       => '',                                  // <root>/www/js
-                                        'www'      => '',                                  // <root>/www/
+        'directorios'       => array (  'root'     => '/sistemas/samurai',              // obligatorio
+//                                        'imagenes' => '/sistemas/samurai/www/images',   // <root>/images
+                                        'estilos'  => '',                                  // <root>/css
+                                        'js'       => '',                                  // <root>/js
+                                        'www'      => '',                                  // <root>/
                                 ),
         //Directorios del file system. Si no se pone se asume lo que esta comentado. Son opcionales
         'directorios_fs'    => array ('cache'    => '',                                  // /tmp
             'imagenComun'   => 'sistemas',    
             'imagenMouseOn' => '',            
             'imagenSelect'  => '',            
-            'link'          => 'sistemas',    
+            'link'          => 'sistemas/sistemas',    
             'tipoMenu'      => 'oculto',    
             'hijos'         =>  array (       
                                     array ( 'nombre'        => 'ABM Sistemas',   
                                             'imagenComun'   => '',  
                                             'imagenMouseOn' => '',                  
                                             'imagenSelect'  => '',                  
-                                            'link'          => 'sistemas-abm',  
+                                            'link'          => 'sistemas/sistemas-abm',  
                                             'subhijos'      => array (  '',
                                                                ),
                                     ),
                                             'imagenComun'   => '',  
                                             'imagenMouseOn' => '',                  
                                             'imagenSelect'  => '',                  
-                                            'link'          => 'sistemas-permisos',  
+                                            'link'          => 'sistemas/sistemas-permisos',  
                                             'subhijos'      => array (  '',
                                                                ),
                                     ),
index 59e4db514eb3ca90cc1e390b268e143108014f72..65e54b432e2119acee47057ae0b2f858f8af94ae 100644 (file)
@@ -115,6 +115,37 @@ class Sistema {
      */
     var $_permisos;
 
+    /**
+     * Array con los permisos asociados al sistema
+     *
+     * @var    array $asociaciones
+     * @access private
+     */
+    var $_asociaciones;
+
+    /**
+     * Gets Asociaciones.
+     *
+     * @return array
+     * @access public
+     */
+    function getAsociaciones()
+    {
+        return $this->_asociaciones;
+    }
+    /**
+     * Sets Asociaciones.
+     *
+     * @param  array $asociaciones Asociaciones.
+     *
+     * @return void
+     * @access public
+     */
+    function setAsociaciones($asociaciones)
+    {
+        $this->_asociaciones = $asociaciones;
+    }
+
     // ~X2C
 
     // +X2C Operation 243
@@ -419,14 +450,30 @@ class Sistema {
             }
         }
         $tmp = $sql['obtener_permisos'];
+        $tmp.= $sql['borrar_permisos2'];
         $dbh = $this->_db->prepare($tmp);
-        $tmp = array ($this->getId());
-        $res = $this->_db->execute($dbh,$tmp);        
-        $tmp = array();
+        $tmp = array ($this->getId(),'');
+        $res = $this->_db->execute($dbh,$tmp);
+        $tmp  = array();
+        $i = 0;
         while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) {
             $tmp[] = $re['0'];
+            $i++;
         }
         $this->_permisos = $tmp;
+        $tmp = $sql['obtener_permisos'];
+        $tmp.= $sql['obtener_permisos2'];
+        $dbh = $this->_db->prepare($tmp);
+        $tmp = array ($this->getId());
+        $res = $this->_db->execute($dbh,$tmp);        
+        $tmp  = array();
+        $i = 0;
+        while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) {
+            $tmp[$i]['id']  = $re['0'];
+            $tmp[$i]['obs'] = $re['1'];
+            $i++;
+        }
+        $this->_asociaciones = $tmp;
     }
     // -X2C
 
@@ -588,7 +635,7 @@ class Sistema {
         
         //Borro los permisos que tiene asignado el sistema
         //Borro absolutamente todos los permisos que tiene asociado -> No hay vuelta a atras
-        $this->_borrarPermisosDb($idSistema, false);
+        $this->_borrarPermisosDb($idSistema);
     }
     // -X2C
 
@@ -623,7 +670,7 @@ class Sistema {
             trigger_error('Error al tratar de insertar el sistema -> '.var_dump($res), E_USER_ERROR);
         }
         //Borro los permisos que no tengan observaciones
-        $this->_borrarPermisosDb($idSistema, true);
+        $this->_borrarPermisosDb($idSistema, '');
         //Grabo los permisos que selecciono
         $this->_grabarPermisosDb($idSistema);
     }
@@ -648,7 +695,7 @@ class Sistema {
                 $datos = array ($permiso['0'], $idSistema, $this->getResponsable());
                 $res = $this->_db->execute($re, $datos);
                 if (DB::isError($res)) {
-                    trigger_error('Error en perm_sist -> '.$res, E_USER_ERROR);
+                    trigger_error('Error en perm_sist -> '.var_dump($res), E_USER_ERROR);
                 }
             }
         }
@@ -661,22 +708,148 @@ class Sistema {
      * Borra los permisos que tenga asociado el sistema segun el criterio de observaciones
      *
      * @param  int $idSistema Identificador del sistema
-     * @param  bool $observaciones Si es false borra todas las asociaciones que tenga el sistema. Si es true borra solo aquellas que tengan observaciones = ''
+     * @param  bool $observaciones Null u observacion de la asociacion a borrar
+     * @param  int $idPermiso Identificador del permiso a borrar
      *
      * @return void
      * @access private
      */
-    function _borrarPermisosDb($idSistema, $observaciones)// ~X2C
+    function _borrarPermisosDb($idSistema, $observaciones = null, $idPermiso = null)// ~X2C
     {
         $sql = include 'Sistema/consultas.php';
         $datos[] = $idSistema;
         $tmp = $sql['borrar_permisos']; 
-        if ($observaciones) {
+        if (isset($observaciones)) {
             $tmp.= $sql['borrar_permisos2'];
-            $datos[] = '';
+            $datos[] = $observaciones;
+        }
+        if (isset($idPermiso)) {
+            $tmp.= $sql['borrar_permisos3'];
+            $datos[] = $idPermiso;
         }
         $dbh = $this->_db->prepare($tmp);
         $res = $this->_db->execute($dbh, $datos);
+        if (DB::isError($res)) {
+            trigger_error('Error al tratar de borrar la relacion entre permiso y sistema -> '.var_dump($res), E_USER_ERROR);
+        }
+    }
+    // -X2C
+
+
+    // +X2C Operation 312
+    /**
+     * Guarda en base las nuevas asociaciones que se van cargando y actualiza los datos del sistema.
+     *
+     * @param  int $idPermiso Identificador del Permiso
+     * @param  string $observacion Observacion a agregar
+     *
+     * @return bool
+     * @access public
+     */
+    function guardarAsociacion($idPermiso, $observacion = '')// ~X2C
+    {
+        $error = true;
+        if (!$this->_existeAsociacion($idPermiso, $observacion)) {    
+            //Guardo la asociacion
+            //Grabo el sistema        
+            $datos = array(  
+                        'id_permiso'    => $idPermiso,
+                        'id_sistema'    => $this->getId(),
+                        'observaciones' => $observacion,
+                        'responsable'   => $this->getResponsable(),
+                    );                
+            $res = $this->_db->autoExecute('perm_sist', $datos, DB_AUTOQUERY_INSERT);
+            //Recargo los datos del sistema
+            $this->_obtenerDatosDb();
+            $error = false;
+        }
+        return $error;
+    }
+    // -X2C
+
+    // +X2C Operation 313
+    /**
+     * Elimina una asociacion de la base, y actualiza los datos del sistema.
+     *
+     * @param  int $idPermiso Identificador del permiso a borrar
+     * @param  string $observacion Observacion de la asociacion a borrar (Puede ser vacia)
+     *
+     * @return bool
+     * @access public
+     */
+    function eliminarAsociacion($idPermiso, $observacion = '')// ~X2C
+    {
+        $error = false;
+        //Elimino la asociacion
+        $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso);
+        //Recargo los datos del sistema
+        $this->_obtenerDatosDb();
+        return $error;
+    }
+    // -X2C
+
+    // +X2C Operation 314
+    /**
+     * Actualiza los datos de la asociacion en la base de datos.
+     *
+     * @param  int $idPermiso Identificador del permiso
+     * @param  int $idPermiso_ant Identificador del permiso anterior
+     * @param  string $observacion Observacion a insertar
+     * @param  string $obs_ant Observacion anterior
+     *
+     * @return bool
+     * @access public
+     */
+    function modificarAsociacion($idPermiso, $idPermiso_ant, $observacion = '', $obs_ant = '')// ~X2C
+    {
+        $error = true;
+        //Busco la nueva asociacion
+        if (!$this->_existeAsociacion($idPermiso, $observacion)) {    
+            //Actualizo la asociacion
+             $datos = array(  
+                        'id_permiso'    => $idPermiso,
+                        'id_sistema'    => $this->getId(),
+                        'observaciones' => $observacion,
+                        'responsable'   => $this->getResponsable(),
+                    );                
+            $this->_db->autoExecute('perm_sist', 
+                                    $datos, 
+                                    DB_AUTOQUERY_UPDATE, 
+                                    'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso_ant.' AND observaciones =\''.$obs_ant.'\'');
+
+            //Recargo los datos del sistema
+            $this->_obtenerDatosDb();
+            $error = false;
+        }
+        return $error;
+    }
+    // -X2C
+
+    // +X2C Operation 315
+    /**
+     * Chequea si existe la asociacion
+     *
+     * @param  int $idPermiso Id del permiso a chequear
+     * @param  string $observacion Observacion a chequear
+     *
+     * @return bool
+     * @access private
+     */
+    function _existeAsociacion($idPermiso, $observacion)// ~X2C
+    {
+        $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
+        $tmp = $sql['obtener_permisos'].$sql['obtener_permisos3'].$sql['obtener_permisos4'];
+        $dbh = $this->_db->prepare($tmp);
+        $tmp = array ($this->getId(),$idPermiso,$observacion);
+        $res = $this->_db->execute($dbh,$tmp);
+        $re  = $res->fetchRow();      
+
+        if (is_null($re)) {
+            return false;
+        }
+        else {
+            return true;
+        }
     }
     // -X2C
 
index 2d1fe2e3b45cb772c515555fdbfa931eae6a53fe..142340b707501962476ccb3c0706198ebbbe362c 100644 (file)
 //
     return array (
         //OBTENER DATOS
-        'obtener_datos_sistema'   => 'SELECT id_sistema, nombre_sistema, desc_sistema, fecha_inicio, fecha_fin, fecha_implementacion, contacto,
-                                             responsable
-                                      FROM sistema ',
+        'obtener_datos_sistema'   => 'SELECT id_sistema, nombre_sistema, desc_sistema, fecha_inicio, fecha_fin, fecha_implementacion, contacto,responsable FROM sistema ',
         'obtener_datos_sistema2'  => ' WHERE id_sistema = ? ',
-        'obtener_permisos'        => 'SELECT id_permiso FROM perm_sist WHERE id_sistema = ? ORDER BY id_permiso',
+        'obtener_permisos'        => 'SELECT id_permiso, observaciones FROM perm_sist WHERE id_sistema = ?',
+        'obtener_permisos2'       => ' ORDER BY id_permiso',
+        'obtener_permisos3'       => ' AND id_permiso = ?',
+        'obtener_permisos4'       => ' AND observaciones = ?',
         'obtener_max_id_sistemas' => 'SELECT IFNULL(max(id_sistema), 1)  as id_sistema FROM sistema',
         //BORRAR DATOS
         'borrar_permisos'         => 'DELETE FROM perm_sist WHERE id_sistema = ? ',
-        'borrar_permisos2'        => ' and observaciones = ?',
+        'borrar_permisos2'        => ' AND observaciones = ?',
+        'borrar_permisos3'        => ' AND id_permiso = ?',        
     );
 ?>
index 31a95f1ac0027551ed2e4b293eae78b8b9239a42..faba42d98e9eb3062c5b109e4d6caafaf00222c2 100644 (file)
@@ -3,8 +3,7 @@
 
 require_once 'MECON/general.php';
 
-//prepend_include_path('/home/mmarrese/public_html/meconlib/tronco/lib/');
-prepend_include_path('/var/www/intranet/www/sistemas/samurai');
+prepend_include_path('/var/www/sistemas/samurai');
 
 require_once 'MECON/Marco.php';
 require_once 'local_lib/Samurai_DB.php';
index d3ef963f8534dbfe6972968211ba406ca2a23247..a43dbb6a933b61846bb36d4a80388a122f94ae0f 100644 (file)
@@ -1,3 +1,3 @@
-php_value auto_prepend_file "../local_lib/prepend.php"
-php_value auto_append_file  "../local_lib/append.php"
+php_value auto_prepend_file "/var/www/sistemas/samurai/local_lib/prepend.php"
+php_value auto_append_file  "/var/www/sistemas/samurai/local_lib/append.php"
 #php_value allow_call_time_pass_reference On
diff --git a/sistema/www/sistemas-permisos.php b/sistema/www/sistemas-permisos.php
deleted file mode 100644 (file)
index bc6b8f0..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
-// +----------------------------------------------------------------------+
-// | PHP Version 4                                                        |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2003 The PHP Group                                |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 2.02 of the PHP license,      |
-// | that is bundled with this package in the file LICENSE, and is        |
-// | available at through the world-wide-web at                           |
-// | http://www.php.net/license/2_02.txt.                                 |
-// | If you did not receive a copy of the PHP license and are unable to   |
-// | obtain it through the world-wide-web, please send a note to          |
-// | license@php.net so we can mail you a copy immediately.               |
-// +----------------------------------------------------------------------+
-// | Created: mar may 27 15:16:38 ART 2003
-// | Author:  Martin Marrese <mmarre@mecon.gov.ar>
-// +----------------------------------------------------------------------+
-//
-// $Id$
-// $Author$
-// $URL$
-// $Date$
-// $Rev$
-// 
-
-//ARMAR UNA TABLA CON UN SELECT UN TEXT Y UN BOTON AGREGAR
-//ABAJO LISTA CON LOS PERMISOS
-
-//SE SELECCIONA UN PERMISO SE SETEA O NO LA OBSERVACION Y SE AGREGA.
-
-?>
similarity index 98%
rename from sistema/www/sistemas-abm.php
rename to sistema/www/sistemas/sistemas-abm.php
index 70cf4d768a93fa657cb115d734325fc837db4b5c..72a0259a9ed123df52a79cc4c57fbaf3159511ec 100644 (file)
             $SISTEMA->setFechaImplementacion();
         }
         $SISTEMA->setContacto($contacto->getValue());        
-        
         $SISTEMA->setPermisos($permisos->getSelected());
-        
         $SISTEMA->setResponsable($responsable->_text); //TODO URGENTE Modificar esto. No tiene hay metodo static::getValue()
-        
         $FORM->freeze();
         $SISTEMA->guardarDatos($aceptar->getValue());
         header('Location: sistemas');
     $renderer =& new HTML_QuickForm_Renderer_Tabla('width="100%"');
     $FORM->accept($renderer);
 
-
-
-    $MARCO = new Marco ('../conf/confSecciones.php');
-    $MARCO->addTitle('Nuevo Sistema');
+    $MARCO = new Marco ('../../conf/confSecciones.php');
+    $MARCO->addTitle('ABM Sistema');
     $MARCO->addBody($renderer->toHtml());
     $MARCO->display();
 //
diff --git a/sistema/www/sistemas/sistemas-permisos.php b/sistema/www/sistemas/sistemas-permisos.php
new file mode 100644 (file)
index 0000000..e10b0b3
--- /dev/null
@@ -0,0 +1,179 @@
+<?php
+// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
+// +----------------------------------------------------------------------+
+// | PHP Version 4                                                        |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 1997-2003 The PHP Group                                |
+// +----------------------------------------------------------------------+
+// | This source file is subject to version 2.02 of the PHP license,      |
+// | that is bundled with this package in the file LICENSE, and is        |
+// | available at through the world-wide-web at                           |
+// | http://www.php.net/license/2_02.txt.                                 |
+// | If you did not receive a copy of the PHP license and are unable to   |
+// | obtain it through the world-wide-web, please send a note to          |
+// | license@php.net so we can mail you a copy immediately.               |
+// +----------------------------------------------------------------------+
+// | Created: mar may 27 15:16:38 ART 2003
+// | Author:  Martin Marrese <mmarre@mecon.gov.ar>
+// +----------------------------------------------------------------------+
+//
+// $Id: sistemas-permisos.php 21 2003-06-25 22:26:30Z mmarre e
+// $Author$
+// $URL$
+// $Date$
+// $Rev$
+// 
+    require_once 'HTML/QuickForm.php';
+    require_once 'MECON/HTML/QuickForm/Renderer/Tabla.php';
+    require_once 'MECON/HTML/Tabla.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
+    $SAMURAI   = new Samurai($DB);
+    $FORM      = new HTML_QuickForm ('sistemas_permisos','post','sistemas-permisos');
+    $SISTEMA   = new 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 ('Id', 'Nombre', 'Descripcion');
+    $TABLASIST->addRow($row, 'cabecera');
+    $row = array ($SISTEMA->getId(), $SISTEMA->getNombre(), $SISTEMA->getDescripcion());
+    $TABLASIST->addRow($row, 'comun');
+//
+//AGREGO LOS ELEMENTOS DEL FORM
+    //Obtengo la lista de permisos
+    $PERMISOS = $SAMURAI->getSelectPermisos();
+    //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');
+    $FORM->addElement ('hidden', 'obsant');
+    $FORM->addElement ('text'  , 'observacion', 'Observacion', array('size' => '30'));
+    $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar');
+    $FORM->addGroup($group,'botones', '', ',&nbsp;');
+//
+//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) {
+            $group = array ();
+            $group[] = HTML_QuickForm::createElement('static', 'error' , 'Error', 'La asociacion ya existe, modifique alguno de sus datos.');
+            $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar');
+            $FORM->removeElement('botones');
+            $FORM->addGroup($group,'botones', '', '<br>');
+        }
+        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      = '<a href="sistemas-permisos?accion=##ACCION##&idPermiso=##PERMISO##&observacion=##OBS##&idSistema='.$idSistema.'">';
+    $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar"></a>';
+    $aHrefElim  = $aHref.'<img src="/MECON/images/general_eliminar.gif"  border="0" alt="Eliminar" ></a>';
+    $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 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);
+    }
+
+//
+//DIBUJO LA PAGINA
+    $renderer =& new HTML_QuickForm_Renderer_Tabla('width="100%"');
+    $FORM->accept($renderer);
+
+    $MARCO = new Marco ('../../conf/confSecciones.php');
+    $MARCO->addTitle('Asociar Permisos y Sistemas');
+    //AGREGO LA TABLA DEL SISTEMA
+    $MARCO->addBody($TABLASIST);
+    $MARCO->addBody('<BR>');
+    //AGREGO LA TABLA DEL FORM
+    $MARCO->addBody($renderer);
+    $MARCO->addBody('<BR>');
+    //AGREGO LA TABLA DE PERMISOS
+    $MARCO->addBody($TABLAPERM);
+    $MARCO->display();
+//
+//FIN
+
+?>
similarity index 91%
rename from sistema/www/sistemas.php
rename to sistema/www/sistemas/sistemas.php
index c6e5f7d097544cfabc7bc9dce1c2c0a387039ad3..5aac445a519e0d08d486050686bdefdb55191ea9 100644 (file)
@@ -26,9 +26,9 @@
     require_once 'MECON/HTML/Tabla.php';
 
     $aHref      = '<a href="sistemas-abm?accion=##ACCION##&idSistema=##NUEVO##">';
-    $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0"></a>';
-    $aHrefElim  = $aHref.'<img src="/MECON/images/general_eliminar.gif"  border="0"></a>';
-    $aHrefPerm  = '<a href="sistemas-permisos?idSistema=##SISTEMA##"><img src="/MECON/images/general_ir4" border="0"></a>';
+    $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar Sistema"></a>';
+    $aHrefElim  = $aHref.'<img src="/MECON/images/general_eliminar.gif"  border="0" alt="Eliminar Sistema" ></a>';
+    $aHrefPerm = '<a href="sistemas-permisos?idSistema=##SISTEMA##"><img src="/MECON/images/general_ir4" border="0" alt="Definir Permisos"></a>';
 
     $body = '';
 
@@ -74,7 +74,7 @@
     $body.=$TABLA2->toHtml(1);
     $body.=$TABLA->toHtml().'<BR>';
 
-    $MARCO = new Marco ('../conf/confSecciones.php');
+    $MARCO = new Marco ('../../conf/confSecciones.php');
     $MARCO->addBody($body);
     $MARCO->display();
 ?>