后台权限管理,是后台一个重要的模块,这个关乎到数据的安全,什么样的人访问什么样模块,例如:财务人员只可以访问财务模块,评论审核人员只能访问信息模块等。drupal也有这样的权限管理
一,drupal后台的每个操作最终都可以归就于对菜单的管理
为什么这么说呢?正常的菜单访问我就不说了,下面以drupal自带的taxonomy(分类模块)为例,说明一下
如上图所示红色框中的内容,按正常理解他只是页面中的一个操作,但是drupal把它也定义成了菜单的样子。
list terms 对应的url是http://localhost/drupal/?q=admin/content/taxonomy/1,对应的菜单模块是drupal/modules/taxonomy/taxonomy.module下的function taxonomy_menu()
$items['admin/content/taxonomy/%taxonomy_vocabulary'] = array(
'title' => 'List terms',
'page callback' => 'drupal_get_form',
'page arguments' => array('taxonomy_overview_terms', 3),
'access arguments' => array('administer taxonomy'), //access arguments是权限控制项
'type' => MENU_CALLBACK,
'file' => 'taxonomy.admin.inc',
);
drupal是怎么利用这个access arguments来进行菜单控制的呢?
二,模块_perm()函数
系统自带的每个.module文件里面都有一个模块名+_perm()这样的函数,并且本模块也没有直接调用,这个函数到底是干什么的呢,以taxonomy(分类模块)为例,来说明一下drupal/modules/taxonomy/taxonomy.module这个文件中
/**
* Implementation of hook_perm().
*/
function taxonomy_perm() { //权限控制函数
return array('administer taxonomy');
}
这个函数够简单,表面上看他只是返回了一个数组,其实他还有其他作用(上面的'access arguments' => array('administer taxonomy')数组中的内容,必须是taxonomy_perm数组中的一条数据,不然权限管理不会启动作用的。)
通过上面的选择我们可以控制用户的访问
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/drupal/1190.html
