作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在我们编写模块时,需要注意菜单项中'access callback'和’access arguments’键的使用。在前面SQL注入的例子中,我们是这样的写的:
function sql_injection_menu() {
$items = array();
$items['sql/injection'] = array(
'title' => 'SQL注入实例',
'description' => 'SQL注入实例.',
'page callback' => 'sql_injection_page_callback',
'access callback' => TRUE,
);
return $items;
}
此时,任何人都可以访问这个页面。我们可以对它做出改进。比如我们可以这样设置:
'access callback' => 'user_access',
'access arguments' => array('access content'),
这样只有具有“access content”(“访问内容”)权限的用户才可以访问这个页面, “access content”是个很宽松的权限。我们也可以使用hook_permission()来定义你自己的权限,并使用它们来保护你的菜单回调函数。当然我们也可以自己定义一个访问控制回调函数,将其设置为'access callback'。有关这方面的更多信息,可参看菜单系统一章。