]> git.llucax.com Git - mecon/samurai.git/blobdiff - lib/SAMURAI/Perfil.php
BugFixes despues de tocar los $_SESSION
[mecon/samurai.git] / lib / SAMURAI / Perfil.php
index acbce4ed588ec9fcb4ed85a3225295c6ca8eba48..9d32a5c1caf9bd40621c0989a65609327fa19075 100644 (file)
@@ -81,6 +81,14 @@ class SAMURAI_Perfil {
      */
     var $_permisos;
 
      */
     var $_permisos;
 
+    /**
+     * Identificador del sistema en el cual se esta trabajando
+     *
+     * @var    int $idSistema
+     * @access protected
+     */
+    var $_idSistema;
+
     /**
      * Gets Id.
      *
     /**
      * Gets Id.
      *
@@ -204,13 +212,15 @@ class SAMURAI_Perfil {
      *
      * @param  SAMURAI_DB &$db Objeto conexion
      * @param  int $id Identificador del perfil.
      *
      * @param  SAMURAI_DB &$db Objeto conexion
      * @param  int $id Identificador del perfil.
+     * @param  int $idSistema Identificador del sistema en el que se esta trabajando
      *
      * @return void
      * @access public
      */
      *
      * @return void
      * @access public
      */
-    function SAMURAI_Perfil(&$db, $id = null) // ~X2C
+    function SAMURAI_Perfil(&$db, $id = null, $idSistema = null) // ~X2C
     {
         $this->_db = $db;
     {
         $this->_db = $db;
+        $this->_idSistema = $idSistema;
         if (!is_null($id)) {
             $this->setId($id);
             $this->_obtenerDatosDb();
         if (!is_null($id)) {
             $this->setId($id);
             $this->_obtenerDatosDb();
@@ -256,7 +266,7 @@ class SAMURAI_Perfil {
         //OBTENGO EL TIPO DE PERFIL
         $tmp = $sql['verificar_asociacion'];
         $dbh = $this->_db->prepare($tmp);
         //OBTENGO EL TIPO DE PERFIL
         $tmp = $sql['verificar_asociacion'];
         $dbh = $this->_db->prepare($tmp);
-        $tmp = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+        $tmp = array ($this->getId(), $this->_idSistema);
         $res = $this->_db->execute($dbh,$tmp);        
         $re = $res->fetchrow(DB_FETCHMODE_ASSOC);
         $this->setTipo($re['tipo_perfil']);
         $res = $this->_db->execute($dbh,$tmp);        
         $re = $res->fetchrow(DB_FETCHMODE_ASSOC);
         $this->setTipo($re['tipo_perfil']);
@@ -264,7 +274,7 @@ class SAMURAI_Perfil {
         //OBTENGO LOS PERMISOS QUE TIENE ASIGNADO EL PERFIL DESDE PERM_PERFIL_SIST
         $tmp = $sql['obtener_permisos'];
         $dbh = $this->_db->prepare($tmp);
         //OBTENGO LOS PERMISOS QUE TIENE ASIGNADO EL PERFIL DESDE PERM_PERFIL_SIST
         $tmp = $sql['obtener_permisos'];
         $dbh = $this->_db->prepare($tmp);
-        $tmp = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+        $tmp = array ($this->getId(), $this->_idSistema);
         $res = $this->_db->execute($dbh,$tmp);        
         $rta = array ();
         while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
         $res = $this->_db->execute($dbh,$tmp);        
         $rta = array ();
         while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
@@ -339,7 +349,7 @@ class SAMURAI_Perfil {
         }
         //GRABO EN PERFIL_SIST
         $datos = array ('id_perfil'   => $this->getId(),
         }
         //GRABO EN PERFIL_SIST
         $datos = array ('id_perfil'   => $this->getId(),
-                        'id_sistema'  => $_SESSION['samurai']['id_sistema'],
+                        'id_sistema'  => $this->_idSistema,
                         'tipo_perfil' => $this->getTipo(),
                         'responsable' => $this->getResponsable(),
                     );
                         'tipo_perfil' => $this->getTipo(),
                         'responsable' => $this->getResponsable(),
                     );
@@ -360,7 +370,7 @@ class SAMURAI_Perfil {
         //Verifico en perfil_sist_usuario
         $tmp = $sql['verif_perfil_sist_usuario'];
         $dbh = $this->_db->prepare($tmp);
         //Verifico en perfil_sist_usuario
         $tmp = $sql['verif_perfil_sist_usuario'];
         $dbh = $this->_db->prepare($tmp);
-        $datos = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+        $datos = array ($this->getId(), $this->_idSistema);
         $res = $this->_db->execute($dbh, $datos);
         if (($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
             return new PEAR_Error("Hay usuarios asociados al perfil seleccionado");
         $res = $this->_db->execute($dbh, $datos);
         if (($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
             return new PEAR_Error("Hay usuarios asociados al perfil seleccionado");
@@ -373,7 +383,7 @@ class SAMURAI_Perfil {
         //Borro perfil_sist
         $tmp = $sql['borrar_perfil_sist'];
         $dbh = $this->_db->prepare($tmp);
         //Borro perfil_sist
         $tmp = $sql['borrar_perfil_sist'];
         $dbh = $this->_db->prepare($tmp);
-        $datos = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+        $datos = array ($this->getId(), $this->_idSistema);
         $res = $this->_db->execute($dbh, $datos);
         if (PEAR::isError($res)) {         
             return $res;               
         $res = $this->_db->execute($dbh, $datos);
         if (PEAR::isError($res)) {         
             return $res;               
@@ -411,7 +421,9 @@ class SAMURAI_Perfil {
                     'tipo_perfil' => $this->getTipo(),
                     'responsable' => $this->getResponsable(),
         );
                     'tipo_perfil' => $this->getTipo(),
                     'responsable' => $this->getResponsable(),
         );
-        $res = $this->_db->autoExecute('perfil_sist', $datos, DB_AUTOQUERY_UPDATE, 'id_perfil ='.$this->getId().' AND id_sistema='.$_SESSION['samurai']['id_sistema']);
+        $res = $this->_db->autoExecute('perfil_sist', $datos,
+                DB_AUTOQUERY_UPDATE, 'id_perfil ='.$this->getId().' AND
+                id_sistema='.$this->_idSistema);
         if (PEAR::isError($res)) {         
             return $res;               
         }
         if (PEAR::isError($res)) {         
             return $res;               
         }
@@ -475,6 +487,8 @@ class SAMURAI_Perfil {
 
     // +X2C Operation 339
     /**
 
     // +X2C Operation 339
     /**
+     * Devuelve un array de perfiles
+     *
      * @param  SAMURAI_DB &$db Base de datos
      * @param  string $filtro Filtro por nombre del perfil
      * @param  int $id_sistema Identificador del sistema
      * @param  SAMURAI_DB &$db Base de datos
      * @param  string $filtro Filtro por nombre del perfil
      * @param  int $id_sistema Identificador del sistema
@@ -487,7 +501,7 @@ class SAMURAI_Perfil {
     {
         $rta = array ();
         foreach (SAMURAI_Perfil::_getIdPerfiles($db, $filtro, $id_sistema) as $id) {
     {
         $rta = array ();
         foreach (SAMURAI_Perfil::_getIdPerfiles($db, $filtro, $id_sistema) as $id) {
-            $tmp = new SAMURAI_Perfil($db,$id);
+            $tmp = new SAMURAI_Perfil($db,$id, $id_sistema);
             array_push($rta, $tmp);
         }
         return $rta;
             array_push($rta, $tmp);
         }
         return $rta;
@@ -500,16 +514,17 @@ class SAMURAI_Perfil {
      *
      * @param  SAMURAI_DB $db Base de Datos
      * @param  string $filtro Filtro por descripcion del perfil
      *
      * @param  SAMURAI_DB $db Base de Datos
      * @param  string $filtro Filtro por descripcion del perfil
+     * @param  int $id_sistema Identificador del sistema con el que se esta trabajando
      *
      * @return array()
      * @access public
      * @static
      */
      *
      * @return array()
      * @access public
      * @static
      */
-    function getArrayPerfiles($db, $filtro = null) // ~X2C
+    function getArrayPerfiles($db, $filtro = null, $id_sistema = null) // ~X2C
     {
         //FORECHEO LO QUE ME DEVUELVA GET PERMISOS
         $rta = array ();
     {
         //FORECHEO LO QUE ME DEVUELVA GET PERMISOS
         $rta = array ();
-        foreach (SAMURAI_Perfil::getPerfiles($db, $filtro) as $perfil) {
+        foreach (SAMURAI_Perfil::getPerfiles($db, $filtro, $id_sistema) as $perfil) {
             $rta[$perfil->getId()] = $perfil->getDescripcion();
         }
         return $rta;
             $rta[$perfil->getId()] = $perfil->getDescripcion();
         }
         return $rta;
@@ -594,7 +609,7 @@ class SAMURAI_Perfil {
         $re = $this->_db->autoPrepare('perm_perfil_sist', $datos, DB_AUTOQUERY_INSERT);
         foreach ($this->getPermisos() as $permiso) {
             list($id, $obs) = split ('##',$permiso);
         $re = $this->_db->autoPrepare('perm_perfil_sist', $datos, DB_AUTOQUERY_INSERT);
         foreach ($this->getPermisos() as $permiso) {
             list($id, $obs) = split ('##',$permiso);
-            $datos = array ($id, $this->getId(), $_SESSION['samurai']['id_sistema'], $obs, $this->getResponsable());
+            $datos = array ($id, $this->getId(), $this->_idSistema, $obs, $this->getResponsable());
             $res = $this->_db->execute($re, $datos);
             if (PEAR::isError($res)) {
                 return $res;
             $res = $this->_db->execute($re, $datos);
             if (PEAR::isError($res)) {
                 return $res;
@@ -615,7 +630,7 @@ class SAMURAI_Perfil {
         $sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true);
         $tmp = $sql['borrar_permisos'];
         $dbh = $this->_db->prepare($tmp);
         $sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true);
         $tmp = $sql['borrar_permisos'];
         $dbh = $this->_db->prepare($tmp);
-        $tmp = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+        $tmp = array ($this->getId(), $this->_idSistema);
         return $this->_db->execute($dbh,$tmp);        
     }
     // -X2C
         return $this->_db->execute($dbh,$tmp);        
     }
     // -X2C
@@ -633,7 +648,7 @@ class SAMURAI_Perfil {
         $sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true);
         $tmp = $sql['verif_perm_perfil_sist'];
         $dbh = $this->_db->prepare($tmp);
         $sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true);
         $tmp = $sql['verif_perm_perfil_sist'];
         $dbh = $this->_db->prepare($tmp);
-        $tmp = array ($_SESSION['samurai']['id_sistema']);
+        $tmp = array ($this->_idSistema);
         $res = $this->_db->execute($dbh,$tmp);
         $perm = array();
         while ($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
         $res = $this->_db->execute($dbh,$tmp);
         $perm = array();
         while ($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
@@ -643,7 +658,7 @@ class SAMURAI_Perfil {
             $rta1 = array_diff($p, $this->getPermisos());
             $rta2 = array_diff($this->getPermisos(), $p);
             if (!$rta1 && !$rta2) {
             $rta1 = array_diff($p, $this->getPermisos());
             $rta2 = array_diff($this->getPermisos(), $p);
             if (!$rta1 && !$rta2) {
-                $perf = new SAMURAI_Perfil($this->_db, $key);
+                $perf = new SAMURAI_Perfil($this->_db, $key, $this->_idSistema);
                 if ($perf->getDescripcion() != $this->getDescripcion()) {
                     return new PEAR_Error("El perfil \"".$perf->getDescripcion()."\" contiene los mismos permisos.");
                 }
                 if ($perf->getDescripcion() != $this->getDescripcion()) {
                     return new PEAR_Error("El perfil \"".$perf->getDescripcion()."\" contiene los mismos permisos.");
                 }
@@ -655,4 +670,4 @@ class SAMURAI_Perfil {
 
 } // -X2C Class :SAMURAI_Perfil
 
 
 } // -X2C Class :SAMURAI_Perfil
 
-?>
\ No newline at end of file
+?>