如何获取当前登录的用户';Drupal7中的角色是什么?
如何在Drupal 7中获取当前登录用户的角色?你知道一个简单的方法吗?是否有一些drupal核心函数用于此功能?您只需使用以下PHP代码片段即可访问用户角色:如何获取当前登录的用户';Drupal7中的角色是什么?,drupal,login,drupal-modules,drupal-7,Drupal,Login,Drupal Modules,Drupal 7,如何在Drupal 7中获取当前登录用户的角色?你知道一个简单的方法吗?是否有一些drupal核心函数用于此功能?您只需使用以下PHP代码片段即可访问用户角色: <?php $GLOBALS['user']->roles; ?> 我找到了一个有趣的解决方案来检查用户的多个角色: global $user; $check = array_intersect(array('moderator', 'administrator'), array_values($user->r
<?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
}
$user->roles是由角色ID键入的属于用户的角色数组,值是角色字符串。因此,如果您想检查用户是否具有“authenticated user”角色,您的代码片段将如下所示(不一定是最优化的方法,in_array是一个性能相当昂贵的函数): 请注意,in#u数组也可以接受数组作为“指针”(参数#1),因此您可以检查多个角色选项:
in_array(array('authenticated user', 'anonymous user'), $user->roles);
//加载当前登录的用户
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;
}
在第二个“阵列式”针剪和一个快速的测试代码上,您要求数组中的
检查$user->roles
是否包含数组('authenticated user','anonymous user')
,而不是单个元素'authenticated user'
或'anonymous user'
。不过,我会为此而努力的。
if (in_array('administrator', $user->roles)) {
// do some stuff
$form['field_end_date']['#disabled'] = FALSE;
}