如何授予用户删除角色编辑权限

时间:2017-11-23 作者:Leff

我正在尝试授予具有角色编辑器的用户创建、编辑和删除用户的权限,但希望限制该权限,以便他们无法编辑其角色。我使用角色编辑器编辑了用户的功能,如下所示:

function add_theme_caps() {
    $role = get_role( \'editor\' );
        $role->add_cap( \'delete_users\' );
        $role->add_cap( \'create_users\' );
        $role->add_cap( \'add_users\' );
        $role->add_cap( \'list_users\' );
}
add_action( \'admin_init\', \'add_theme_caps\');
但是,我不确定在编辑用户时如何删除角色按钮?

1 个回复
SO网友:Drupalizeme

这将删除更改用户组的选项,除非这是管理员。

这个Codex 国家:

虽然部分支持针对特定角色而不是功能进行检查,但不鼓励这种做法,因为它可能会产生不可靠的结果。

因此,我检查activate_plugins 通常只有管理员才具有的功能。

function dont_allow_role_change($all_roles) {
    global $user_id;
    $user_meta = get_userdata($user_id);

    if(!current_user_can(\'activate_plugins\') && is_int($user_id)){
        foreach ( $all_roles as $name => $role ) {
            if (!in_array($name,$user_meta->roles)) {
                unset($all_roles[$name]);
            }
        }
    }
    return $all_roles;
}

add_filter(\'editable_roles\', \'dont_allow_role_change\');

结束

相关推荐