/** metodo privado que hace la busqueda de permiso en el arbol */ private static function isObjectAllowedByInheritance($action, &$currentUserRoles, &$tree) { if (!is_array($tree)) { return false; } $tree = array_reverse($tree); foreach ($tree as $elemento) { // veamos q no tenga permisos propios, y si tiene cortamos ahi if ($roles = seguridad_role::listRoles(USED, 'name', OPERATOR_EQUAL)) { $arrayRoles = array(); foreach ($roles as $r) { //verifico si tiene permiso de ver if (seguridad::getObjectPermission($action, $r, $elemento->object())) { $arrayRoles[] = true; } } } //end if reload de seguridad if (seguridad::getPermissionForAnyObject($action, $currentUserRoles, $elemento->object())) { return true; } else { if (count($arrayRoles) > 0) { return false; } } } return false; }