跳转到主要内容
toto多背一公斤 提交于 5 July 2013

原文:https://drupal.org/node/93737

在Drupal6中 db_rewrite_sql() ,和 Drupal7中的'node_access'的hook_query_alter()函数,为模块提供了一种扩展SQL查询。例如,一个模块控制节点访问,但需要限制查询结果,排除所有节点,其访问者不具有该节点的访问权限。

如果你不使用db_rewrite_sql()hook_query_alter()函数,访问控制模块将不能够修改或扩展您的SQL查询,你可能会在不经意间展示出要限制的内容。

总是利用的db_rewrite_sql()或hook_query_alter()是很好的做法。

但也有一些例外情况, 如:

  •     在内部模块中进行查询,但不负责为用户展示内容(例如,cron任务查询)。
  •     管理页面中进行查询,需要显示一个未过滤列表,并且用户已经得到了授权权限。