【发布时间】:2011-09-06 18:35:15
【问题描述】:
如果用户是管理员,以下将执行“某些操作”。
<?php if (($is_admin)) : ?>
do something
<?php endif; ?>
如果用户是管理员或具有特定角色,我该如何更改此设置以使“某些事情”发生? 谢谢
【问题讨论】:
如果用户是管理员,以下将执行“某些操作”。
<?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)));
}
使用此功能,您可以检查用户是否具有一个或多个角色。 虽然它可能作为“访问回调”值有用
【讨论】: