如果用户是管理员,以下将执行'某事'。
<?php if (($is_admin)) : ?>
do something
<?php endif; ?>
如果用户是管理员或具有某个角色,我该怎么改变这个'某事'? 谢谢
答案 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;值