Drupal访问控制列表

时间:2009-08-24 20:06:40

标签: drupal-6 sitemap

为了确保我的网站安全并且所有权限都设置正确,我正在寻找一种方法来生成特定用户有权访问的每个页面的列表。 (所以... user_access()为给定的uid返回TRUE的每个菜单回调。

看起来像这样的东西:

$ user-> uid == 0

  

主页

     

照片

     

联系我们

$ user-> uid = 23

  

主页

     

照片

     

联系我们

     

论坛

     

博客

1 个答案:

答案 0 :(得分:0)

这在Drupal中并不可行,因为从System透视图中没有真正的 pages ,只有带参数的回调函数。为了澄清,请考虑节​​点页面的标准路径:

node/[nid]

这将接受[nid]的任意整数,然后node/%路径的回调函数将尝试查找具有匹配id的节点 - 在之后只有如果页面确实存在,Drupal'知道'。

对于所有其他路径也是如此,因此基本上您正在查看(几乎)无限数量的潜在页面,没有办法知道,如果它们实际上没有测试路径“存在”或以404结尾。

可以做的是查看menu_router表。在那里,您将找到所有已注册的路径,以及它们的回调和access_callback函数。对于那些你可以按用户进行检查的人,但结果很难解释,因为路径很多,并且会包含很多占位符。

如果您使用URL-Aliases / pathauto,则存在类似的选项。然后你可以拿url_alias表并检查那里的所有条目。但是既然你有兴趣保护自己的网站,那就不会有任何帮助,因为你会错过任何没有别名的路径 - 如上所述,这些都是无数的。