drupal学习经验(后台权限管理)

张映 发表于 2010-12-26

分类目录: drupal

标签:,

后台权限管理,是后台一个重要的模块,这个关乎到数据的安全,什么样的人访问什么样模块,例如:财务人员只可以访问财务模块,评论审核人员只能访问信息模块等。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