【问题标题】:Drupal Conditional PHP if admin or user has certain role如果管理员或用户具有特定角色,则 Drupal 条件 PHP
【发布时间】:2011-09-06 18:35:15
【问题描述】:

如果用户是管理员,以下将执行“某些操作”。

<?php if (($is_admin)) : ?>
  do something
<?php endif; ?>

如果用户是管理员或具有特定角色,我该如何更改此设置以使“某些事情”发生? 谢谢

【问题讨论】:

    标签: php drupal


    【解决方案1】:

    角色存储在$user-&gt;roles。要检查“用户是管理员还是具有特定角色”,您可以简单地:

    if ($is_admin || in_array('some_role', $user->roles)):
    

    【讨论】:

      【解决方案2】:

      要检查用户是否属于一个或多个角色,您可以这样做:

      global $user;
      $allowed_roles = array('customer', 'administrator');
      
      if(count(array_intersect($user->roles, $allowed_roles)) > 0){
        // do something useful here
      }
      

      【讨论】:

        【解决方案3】:
        function user_has_role($roles) {
            return !!count(array_intersect(is_array($roles)? $roles : array($roles), array_values($GLOBALS['user']->roles)));
        }
        

        使用此功能,您可以检查用户是否具有一个或多个角色。 虽然它可能作为“访问回调”值有用

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-21
          • 2016-12-17
          • 2014-05-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-07
          • 2018-04-29
          相关资源
          最近更新 更多