]> git.llucax.com Git - mecon/samurai.git/blobdiff - lib/SAMURAI/Perm.php
Se agrego la funcionalidad para embeber el abm de perfiles en cualquier sistema exter...
[mecon/samurai.git] / lib / SAMURAI / Perm.php
index 55b9785d9392844e097f2d5d20f10b161e0ebb0f..965665c3825e1c1550f792526199a5baa094fa54 100644 (file)
@@ -83,7 +83,8 @@ class SAMURAI_Perm {
         $query = '
             SELECT DISTINCT psu.id_sistema AS sistema, pps.id_permiso AS permiso
             FROM samurai.perfil_sist_usuario AS psu, samurai.perm_perfil_sist AS pps
         $query = '
             SELECT DISTINCT psu.id_sistema AS sistema, pps.id_permiso AS permiso
             FROM samurai.perfil_sist_usuario AS psu, samurai.perm_perfil_sist AS pps
-            WHERE psu.login = '.$db->quote($login).' AND psu.id_perfil = pps.id_perfil;';
+            WHERE psu.login = '.$db->quote($login).' AND psu.id_perfil = pps.id_perfil
+            AND psu.id_sistema = pps.id_sistema';
         foreach ($db->getAll($query, DB_FETCHMODE_ASSOC) as $row) {
             $this->_permisos[$row['sistema']][] = $row['permiso'];
         }
         foreach ($db->getAll($query, DB_FETCHMODE_ASSOC) as $row) {
             $this->_permisos[$row['sistema']][] = $row['permiso'];
         }
@@ -93,8 +94,9 @@ class SAMURAI_Perm {
     // +X2C Operation 381
     /**
      * Verifica si tiene un permiso.
     // +X2C Operation 381
     /**
      * Verifica si tiene un permiso.
-Se puede pasar par?etros variables con un identificador de permiso o un array, por ejemplo: $perm->tiene(1, 4, array(2, 5, 67), 12); Si tiene algn permiso devuelve true.
-Si no se pasa ningn p?ametro ($perm->tiene()), devuelve true si tiene un permiso (al menos uno) en el sistema actual.
+Se puede pasar parametros variables con un identificador de permiso o un array, por ejemplo: $perm->tiene(1, 4, array(2, 5, 67), 12); Si tiene algun permiso devuelve true.
+Si no se pasa ningun parametro ($perm->tiene()), devuelve true si tiene un permiso (al menos uno) en el sistema actual.
+@see chequear()
      *
      * @return bool
      * @access public
      *
      * @return bool
      * @access public
@@ -107,7 +109,7 @@ Si no se pasa ningn p?ametro ($perm->tiene()), devuelve true si tiene un permiso
         } else {
             foreach ($args as $arg) {
                 if (is_array($arg)) {
         } else {
             foreach ($args as $arg) {
                 if (is_array($arg)) {
-                     if (array_intersect($arg, @$this->_permisos[$this->_sistema])) {
+                     if (@array_intersect($arg, $this->_permisos[$this->_sistema])) {
                         return true;
                      }
                 } else {
                         return true;
                      }
                 } else {
@@ -138,6 +140,21 @@ Si no se pasa ningn p?ametro ($perm->tiene()), devuelve true si tiene un permiso
     }
     // -X2C
 
     }
     // -X2C
 
+    // +X2C Operation 388
+    /**
+     * @return void
+     * @access public
+     */
+    function chequear() // ~X2C
+    {
+        $args = func_get_args();
+        if (!call_user_func_array(array($this, 'tiene'), $args)) {
+            include 'MECON/includes/no_autorizado.html';
+            exit;
+        }
+    }
+    // -X2C
+
 } // -X2C Class :SAMURAI_Perm
 
 ?>
\ No newline at end of file
 } // -X2C Class :SAMURAI_Perm
 
 ?>
\ No newline at end of file