$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'];
}
// +X2C Operation 381
/**
- * Verifica si tiene un permiso. Se puede pasar par?etros variables, por ejemplo: $perm->tiene(1, 4, 9, 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.
+ * Verifica si tiene un permiso.
+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
} 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 {
- if (in_array($arg, @$this->_permisos[$this->_sistema])) {
+ if (@in_array($arg, $this->_permisos[$this->_sistema])) {
return true;
}
}
}
// -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