网站管理员在网络安装中不能编辑用户吗?

时间:2011-05-17 作者:Rebecca Chernoff

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

与用户权限相关的唯一选项是以下内容,但不是我在这里想要的内容。。。

add new users

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

5 个回复
最合适的回答,由SO网友:Tim Stone 整理而成

如描述中所述Network Admin Users screen, 在网络安装(多站点模式)中,用户

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

普通管理员不允许修改这些全局配置文件,因为他们的权限仅扩展到给定的站点。此任务保留给超级管理员,他们可以完全控制整个网络。

在WordPress的早期版本中,当多站点安装依赖于单独的WordPress MU 支持,您可以定义EDIT_ANY_USER 在wp配置中为true。php文件。然而,由于多站点支持是本机集成的,我认为这已被删除。

要从网络管理用户屏幕管理网络用户,用户必须属于至少具有manage_network_usersedit_users 权限。您可以尝试创建一个包含这些权限和标准管理员权限的自定义角色,但我不确定这有多有效。就我个人而言,我只是尽量避免规避这些限制。

SO网友:NW Tech

Wordpress multisite 3.0不允许站点管理员编辑用户。http://wordpress.org/support/topic/administrators-cant-edit-users

SO网友:marfarma

也许这个插件可以帮助:http://wordpress.org/extend/plugins/extended-super-admins/ 结合硬编码全局变量$super\\u admins,特定于每个站点。

它应该能够在加载站点管理菜单时在挂钩中进行设置,但还不确定如何实施。这似乎是一个很有希望的解决方案,很快我将不得不自己处理这个问题。

请参见:http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.php 如果已经设置了全局$super\\u admins,请注意返回值。

/**
 * Grants super admin privileges.
 *
 * @since 3.0.0
 * @param int $user_id
 */
function grant_super_admin( $user_id ) {
    global $super_admins;

    // If global super_admins override is defined, there is nothing to do here.
    if ( isset($super_admins) )
        return false;

    do_action( \'grant_super_admin\', $user_id );

    // Directly fetch site_admins instead of using get_super_admins()
    $super_admins = get_site_option( \'site_admins\', array( \'admin\' ) );

    $user = new WP_User( $user_id );
    if ( ! 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 );
        return true;
    }
    return false;
}

/**
 * Revokes super admin privileges.
 *
 * @since 3.0.0
 * @param int $user_id
 */
function revoke_super_admin( $user_id ) {
    global $super_admins;

    // If global super_admins override is defined, there is nothing to do here.
    if ( isset($super_admins) )
        return false;

    do_action( \'revoke_super_admin\', $user_id );

    // Directly fetch site_admins instead of using get_super_admins()
    $super_admins = get_site_option( \'site_admins\', array( \'admin\' ) );

    $user = new WP_User( $user_id );
    if ( $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 );
            return true;
        }
    }
    return false;
}

SO网友:Xarcell

如果您作为超级管理员转到“网络设置”,您将看到一个选项

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

只需选中此选项。

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

结束

相关推荐

当安装在子文件夹中时,您可以安装/激活MultiSite吗?

我有初级域名。com和一个附加域。com公司附加域。com指向primarydomain。com/附加域我已经在primarydomain上分别安装了2次wordpress。com和primarydomain。com/附加域我可以激活primarydomain上的多站点吗。com/附加域作为附加域。com?我这样做的原因是这是两个独立的站点,有两个独立的功能,所以我想使用独立的数据库。这可能吗?