- ABM de asociaciones entre permisos y sistemas terminado.
<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" >
</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>
<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" />
<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" />
'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 ( '',
),
),
*/
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
}
}
$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
//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
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);
}
$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);
}
}
}
* 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
//
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 = ?',
);
?>
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';
-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
+++ /dev/null
-<?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.
-
-?>
$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();
//
--- /dev/null
+<?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', '', ', ');
+//
+//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
+
+?>
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 = '';
$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();
?>