【问题标题】:Site Access control through a particular user field in Drupal 7通过 Drupal 7 中的特定用户字段进行站点访问控制
【发布时间】:2016-04-01 22:20:21
【问题描述】:

我试图仅在用户字段之一具有特定值时授予用户访问该站点的权限。

如果不是,该站点应显示拒绝访问。

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

谢谢

【问题讨论】:

    标签: drupal-7 drupal-permissions


    【解决方案1】:

    你可以这样做

    选项1

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

    然后创建一个自定义角色,比如说“高级访问权限”,允许查看您的内容(或其他)

    在帐户设置中添加您的自定义字段(“访问权限”)和您希望的值(“受限”、“高级”)。

    /admin/config/people/accounts/fields
    

    添加规则模块并创建一个自定义规则,如果 field_access == premium 则在帐户创建/更新时将角色更新为“高级访问权限”。

    完成此操作后,您可以从用户角色管理用户

    选项2

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

    选项3

    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');
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多