如果其中一个用户字段具有特定值,我尝试仅向用户授予对该网站的访问权。
如果没有,该网站应显示拒绝访问。
有没有一种有效的方法来实现这一目标?
由于
答案 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');
}
}