网络安装中的站点管理员无法编辑用户?


15

对于Stack Exchange社区博客,我们已经设置了网络安装。有人告诉我,站点管理员角色不允许用户进行编辑。将鼠标悬停在网站的用户页面上时,只有一个选项delete,没有一个针对edit

与用户权限相关的唯一选项如下,但实际上并不是我要这样做的...

添加新用户

如何使站点管理员能够完全控制该特定站点上的用户?

Answers:


8

如“ 网络管理员用户”屏幕的说明中所述,在网络安装(多站点模式)中,用户为

在全球范围内添加到整个网络,然后分配给特定站点

普通管理员不允许修改这些全局配置文件,因为他们的权限仅扩展到给定的站点。该任务仅供超级管理员使用,他们对整个网络具有完全控制权。

在WordPress的早期版本中,当多站点安装依赖于单独的WordPress MU支持时,您可以EDIT_ANY_USER在wp-config.php文件中将其定义为true。但是,由于多站点支持是本机集成的,因此我认为已删除了该支持。

要从“网络管理员用户”屏幕管理网络用户,用户必须属于至少具有manage_network_usersedit_users权限的角色。您可以尝试创建一个包含这些权限和标准管理员权限的自定义角色,但是我不相信这样做的效果如何。就个人而言,我只是想避免绕过这些限制。




0

也许此插件可以提供帮助:http : //wordpress.org/extend/plugins/extended-super-admins/结合硬编码针对每个站点的全局变量$ super_admins。

在加载站点管理菜单时,应该可以将其设置为一个钩子-尚不确定如何实施。不久之后,我将不得不面对自己的问题,这似乎是一个很有前途的解决方案。

请参阅:http : //svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.php,并注意是否已设置全局$ super_admins。

/ **
 *授予超级管理员权限。
 *
 * @ 3.0.0起
 * @param int $ user_id
 * /
函数grant_super_admin($ user_id){
    全球$ super_admins;

    //如果定义了全局super_admins覆盖,则此处无事可做。
    如果(isset($ super_admins))
        返回false;

    do_action('grant_super_admin',$ user_id);

    //直接获取site_admins,而不使用get_super_admins()
    $ super_admins = get_site_option('site_admins',array('admin'));

    $ user =新的WP_User($ user_id);
    如果(!in_array($ user-> user_login,$ super_admins)){
        $ super_admins [] = $ user-> user_login;
        update_site_option('site_admins',$ super_admins);
        do_action('granted_super_admin',$ user_id);
        返回true;
    }
    返回false;
}

/ **
 *撤销超级管理员权限。
 *
 * @ 3.0.0起
 * @param int $ user_id
 * /
函数revoke_super_admin($ user_id){
    全球$ super_admins;

    //如果定义了全局super_admins覆盖,则此处无事可做。
    如果(isset($ super_admins))
        返回false;

    do_action('revoke_super_admin',$ user_id);

    //直接获取site_admins,而不使用get_super_admins()
    $ super_admins = get_site_option('site_admins',array('admin'));

    $ user =新的WP_User($ user_id);
    如果($ user-> user_email!= get_site_option('admin_email')){
        if(false!==($ key = array_search($ user-> user_login,$ super_admins))){
            unset($ super_admins [$ key]);
            update_site_option('site_admins',$ super_admins);
            do_action('revoked_super_admin',$ user_id);
            返回true;
        }
    }
    返回false;
}


0

如果您以超级管理员身份进入“网络设置”,则会看到一个选项

添加新用户:允许站点管理员通过“用户→添加新”页面将新用户添加到其站点中

只需选中此选项。

这将允许普通的非超级子站点管理员添加新用户。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.