¿El administrador del sitio en una instalación de red no puede editar usuarios?

13

Para los blogs de la comunidad de Stack Exchange, tenemos una instalación de red que hemos configurado. Me dicen que la función de administrador del sitio no permite una opción para la edición del usuario. En la página de usuarios del sitio cuando se desplaza sobre un usuario, solo hay una opción para delete , no una para edit .

La única opción relacionada con los permisos de usuario es la siguiente, pero no es realmente a lo que me dirijo aquí ...

¿Cómo puedo permitir que el administrador del sitio tenga control total sobre los usuarios en ese sitio específico?

    
pregunta Rebecca Chernoff 17.05.2011 - 19:40

4 respuestas

6

Como se explica en la descripción de la pantalla de usuarios de administrador de red , en una instalación de red (modo multisitio) los usuarios son

  

agregado globalmente a toda la red, luego asignado a sitios específicos

A los administradores normales no se les permite modificar estos perfiles globales, ya que sus privilegios se extienden solo a su sitio dado. Esta tarea está reservada para los superadministradores, que tienen control total en toda la red.

En versiones anteriores de WordPress, cuando las instalaciones multisitio dependían del soporte WordPress MU por separado, podría definir EDIT_ANY_USER como verdadero su archivo wp-config.php Sin embargo, dado que el soporte multisitio se integró de forma nativa, creo que se eliminó.

Para administrar usuarios de la red desde la pantalla de usuarios de administrador de red, un usuario debe pertenecer a un rol que tenga al menos los permisos manage_network_users y edit_users . Usted podría intentar crear un rol personalizado que incluyera estos y los permisos de administrador estándar, pero no estoy convencido de lo efectivo que sería. Personalmente, intentaría evitar eludir estas restricciones.

    
respondido por el Tim Stone 18.05.2011 - 01:58
2

Wordpress multisite 3.0 no permite a los administradores del sitio editar usuarios. enlace

    
respondido por el NW Tech 18.05.2011 - 01:50
2
"Esto me funcionó: enlace

    
respondido por el JonnyPlow 27.09.2011 - 03:40
0

Quizás este complemento pueda ayudar: enlace en combinación con la variable global de codificación rígida, $ super_admins, específicos para cada sitio.

Debería poder configurarse en un gancho mientras se carga el menú de administración del sitio, sin estar seguro de cómo hacerlo cumplir. Parece una solución prometedora para un problema que tendré que tratar conmigo, en breve.

Vea: enlace y observe el retorno si el global, $ super_admins ya está establecido.

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

    
respondido por el marfarma 19.05.2011 - 01:52

Lea otras preguntas en las etiquetas