O administrador do site em uma instalação de rede não pode editar usuários?

13

Para os blogs da comunidade do Stack Exchange, temos uma instalação de rede que configuramos. Estou sendo informado de que a função de administrador do site não está permitindo uma opção para a edição do usuário. Na página de usuários do site ao passar o mouse sobre um usuário, há apenas uma opção para delete , não para edit .

A única opção relacionada às permissões do usuário é a seguinte, mas não exatamente o que estou procurando aqui ...

Como posso permitir que o administrador do site tenha controle total sobre os usuários nesse site específico?

    
por Rebecca Chernoff 17.05.2011 / 19:40

4 respostas

6

Como explicado na descrição da tela Usuários de rede , em uma instalação de rede (modo multisite) os usuários são

  

adicionado globalmente a toda a rede, depois atribuído a sites específicos

Os administradores normais não têm permissão para modificar esses perfis globais, pois seus privilégios se estendem apenas para o site fornecido. Esta tarefa é reservada para superadministradores, que têm controle total em toda a rede.

Em versões anteriores do WordPress, quando instalações multisite dependiam de suporte separado ao MU WordPress , você poderia definir EDIT_ANY_USER como verdadeiro seu arquivo wp-config.php. No entanto, como o suporte multisite foi integrado nativamente, acredito que isso foi removido.

Para gerenciar usuários de rede na tela Usuários Administradores de Rede, um usuário deve pertencer a uma função que tenha pelo menos as permissões manage_network_users e edit_users . Você poderia tentar criar uma função personalizada que incluísse essas e as permissões de administrador padrão, mas não estou convencido de como isso seria eficaz. Pessoalmente, tentaria evitar contornar essas restrições.

    
por Tim Stone 18.05.2011 / 01:58
2

O Wordpress multisite 3.0 não permite que os administradores do site editem usuários. enlace

    
por NW Tech 18.05.2011 / 01:50
2

Isso funcionou para mim: enlace

    
por JonnyPlow 27.09.2011 / 03:40
0

Talvez este plugin possa ajudar: enlace em combinação com a codificação da variável global, $ super_admins, específicos de cada site.

Ele deve poder ser colocado em um gancho quando o menu do administrador do site for carregado - sem ter certeza de como fazer isso ainda. Parece uma solução promissora para um problema que terei que lidar comigo mesmo em breve.

Veja: enlace e observe o retorno se o global, $ super_admins já está definido.

/**
 * 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;
}

    
por marfarma 19.05.2011 / 01:52