Drupal Условный PHP, если администратор или пользователь имеют определенную роль

Следующее сделает «что-то», если пользователь является администратором.

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

Как я могу изменить это, так что «что-то» произойдет, если пользователь будет администратором или имеет определенную роль? благодаря

Роли хранятся в $user->roles . Чтобы проверить «если пользователь является администратором или имеет определенную роль», вы можете просто:

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

Для проверки того, принадлежит ли пользователь одной или нескольким ролям, вы можете:

 global $user; $allowed_roles = array('customer', 'administrator'); if(count(array_intersect($user->roles, $allowed_roles)) > 0){ // do something useful here } 
 function user_has_role($roles) { return !!count(array_intersect(is_array($roles)? $roles : array($roles), array_values($GLOBALS['user']->roles))); } 

используя эту функцию, вы можете проверить, имеет ли пользователь одну или несколько роли. хотя это может быть полезно в качестве значения «обратного вызова доступа»