如果管理员或用户具有某些角色,Drupal Conditional PHP

时间:2011-09-06 18:35:15

标签: php drupal

如果用户是管理员,以下将执行'某事'。

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

如果用户是管理员或具有某个角色,我该怎么改变这个'某事'? 谢谢

3 个答案:

答案 0 :(得分:5)

角色存储在$user->roles中。要检查“用户是管理员还是具有某个角色”,您只需:

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

答案 1 :(得分:1)

要检查用户是否属于一个或多个角色,您可以执行以下操作:

global $user;
$allowed_roles = array('customer', 'administrator');

if(count(array_intersect($user->roles, $allowed_roles)) > 0){
  // do something useful here
}

答案 2 :(得分:1)

function user_has_role($roles) {
    return !!count(array_intersect(is_array($roles)? $roles : array($roles), array_values($GLOBALS['user']->roles)));
}

使用此功能可以检查用户是否有一个或多个角色。 虽然它可能有用,因为访问回调&#39;值