通过Drupal 7中的特定用户字段进行站点访问控制

时间:2016-04-01 22:20:22

标签: drupal-7 drupal-permissions

如果其中一个用户字段具有特定值,我尝试仅向用户授予对该网站的访问权。

如果没有,该网站应显示拒绝访问。

有没有一种有效的方法来实现这一目标?

由于

1 个答案:

答案 0 :(得分:0)

这是你怎么做的

<强> OPTION1

创建一个自定义角色让我们说“有限访问”,除了创建他的帐户外,在网站上没有任何权限(编辑/删除/查看),这将是您的默认用户角色

然后创建一个自定义角色,让我们说“高级访问权限”,通过permision来查看您的内容(或其他)

在帐户设置中,添加您想要的自定义字段(“访问权限”)(“限制”,“高级”)。

/admin/config/people/accounts/fields

添加rulles模块并创建自定义rulle,如果field_access == premium,则在帐户创建/更新时将该角色更新为“premium access”。

执行此操作后,您可以管理来自用户角色的用户

<强> OPTION2

再次使用rulles模块,您可以检查您的用户是否具有其个人资料中所需的值,并将其重定向到您的页面。

<强> OPTION3

hook_init()和/或hook_boot()检查用户帐户配置文件字段中的值是否重定向,如下所示:

function hook_init(){
    global $user;
    $user_data=user_load($user->id);
    if($user_data->field_access['LANGUAGE_NONE'][0]['value']=='limited'){
        drupal_go_to('/content/limited');
    }
}