29 权限和页面回调

作者:老葛,北京亚艾元软件有限责任公司,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'。有关这方面的更多信息,可参看菜单系统一章。


Drupal版本: