如何在Drupal 7中获取当前登录用户的角色?您知道实现此目的的简单方法吗?有一些 Drupal 核心功能吗?
$user->roles 是属于用户的角色数组,以角色 ID 为键,值是角色字符串。因此,如果您想检查用户是否具有“经过身份验证的用户”角色,您的代码片段将如下所示(不一定是最优化的方法,in_array 是一个性能相当昂贵的函数):
global $user;
if (in_array('authenticated user', $user->roles)) {
//do stuff here
}
请注意,in_array 也可以接受数组作为“needle”(参数 #1),以便您可以检查多个角色选项:
in_array(array('authenticated user', 'anonymous user'), $user->roles);
您只需使用以下 PHP 片段即可访问用户角色:
<?php $GLOBALS['user']->roles; ?>
我找到了一个有趣的解决方案来检查用户的多个角色:
global $user;
$check = array_intersect(array('moderator', 'administrator'), array_values($user->roles));
if (empty($check) ? FALSE : TRUE) {
// is admin
} else {
// is not admin
}
//加载当前登录的用户。
global $user;
print_r($user->roles);//this gives you current user roles
//检查他是否是管理员,可以通过
if (in_array('administrator', $user->roles)) {
// do some stuff
$form['field_end_date']['#disabled'] = FALSE;
}