添加编辑但不具有管理员角色(_CAP)

时间:2012-07-23 作者:ad2003

我希望我的编辑器能够添加其他用户。我补充道:

    $edit_editor->add_cap(\'create_users\');
$edit_editor->add_cap(\'delete_users\');
$edit_editor->add_cap(\'edit_users\');
功能。php-但现在,编辑器还可以创建、更改管理员角色。

有没有办法将管理员从角色中排除?

非常感谢。

公元

1 个回复
SO网友:Joshua Abenazer

如果允许删除和编辑用户,将危及您的安全,因为这样一来,编辑器也可以修改您的个人资料。你所能做的就是create_users 编辑的能力。但这样创建的用户将由迪福尔特分配“订阅者”角色。

EDIT:尝试以下代码(需要进行一些测试/某种程度的黑客攻击以满足您的需求)

if ( isset( $_REQUEST[\'user_id\'] ) ) {
    $userdata = get_user_by( \'id\', $_REQUEST[\'user_id\'] );
    if ( isset( $userdata->roles[0] ) && ( \'administrator\' == $userdata->roles[0] ) ) {
        $edit_editor->remove_cap( \'create_users\' );
        $edit_editor->remove_cap( \'delete_users\' );
        $edit_editor->remove_cap( \'edit_users\' );
    } else {
        $edit_editor->add_cap( \'create_users\' );
        $edit_editor->add_cap( \'delete_users\' );
        $edit_editor->add_cap( \'edit_users\' );
    }
} else {
    $edit_editor->add_cap( \'create_users\' );
    $edit_editor->add_cap( \'delete_users\' );
    $edit_editor->add_cap( \'edit_users\' );
}

结束