上海戴文 - Drupal开发 在线教育

你在这里

Drupal 7 中的一个访问权限控制示例

主标签

应用场景:基层单位发布一篇文章,只允许本单位和公司本部人员可见。

一、先决条件:

1、为了定位作者的从属关系,在用户资料中添加了“所在单位”字段,这个字段通过分类术语控制输入,术语值分别为“公司本部”、“XX单位”、“XX单位”……。

2、已经设定了“本部领导”、“本部中层”、“本部员工”、“基层领导”、“基层中层”、“基层员工”等角色,这些角色是相互独立的。

二、实现方法:

1、在文章内容类型中添加一个字段,字段标签为“半月报”,机读名称为“field_report”,数据类型选择“布尔值”。默认选项为“字段标签”。便于在views中设置过滤。

2、添加或修改文章内容时,勾选“半月报”。

3、创建一个views,用来控制只能访问本单位的半月报。

  • 添加过滤条件。

  半月报的过滤条件=开启

  • 在高级设置里设置一个作者关联。

  • 添加一个上下文过滤。

  • 填写PHP代码。获取当前用户所在单位值,使其与文章作者所在单位值相匹配。
global $user;
$uid = $user->uid;
$myuser = user_load($uid);
$org = taxonomy_term_load($myuser->field_of_org['und'][0]['tid'])->tid;
return $org;

4、克隆这个区块,供公司本部所有成员可以访问半月报。移除作者关联和上下文过滤。通过用户的角色来控制访问。

5、将上述两个views区块放置到相应的区域。

 

tags: 
Drupal 版本: 

猜你喜欢