Администратор сайта в сетевой установке не может редактировать пользователей?


Для блогов сообщества Stack Exchange у нас есть сетевая установка, которую мы настроили. Мне говорят, что роль администратора сайта не позволяет пользователю редактировать. На странице пользователей сайта при наведении указателя мыши на пользователя есть только опция для delete, а не для edit.

Единственный вариант, связанный с разрешениями пользователей, заключается в следующем, но не совсем в том, что я здесь собираюсь...

add new users

Как я могу включить администратора сайта чтобы иметь полный контроль над пользователями на этом конкретном сайте?

Author: Rebecca Chernoff, 2011-05-17

5 answers

Как объясняется в описании экрана Пользователи сетевого администратора , при сетевой установке (многоузловой режим) пользователями являются

Добавляется на глобальной основе ко всей сети, затем назначается определенным сайтам

Обычным администраторам не разрешается изменять эти глобальные профили, поскольку их привилегии распространяются только на данный сайт. Эта задача зарезервирована для суперадминистраторов, которые имеют полный контроль над всей сетью.

В предыдущем версии WordPress, когда многоузловые установки опирались на отдельную поддержку WordPress MU, вы могли бы определить EDIT_ANY_USER, чтобы быть верным в вашем wp-config.php файл. Однако, поскольку поддержка нескольких сайтов была изначально интегрирована, я считаю, что это было удалено.

Для управления пользователями сети с экрана "Пользователи администратора сети" пользователь должен принадлежать к роли, которая имеет как минимум разрешения manage_network_users и edit_users. Вы могли бы попробовать создать пользовательскую роль, которая включала бы эти и стандартные разрешения администратора, но я не уверен, насколько это было бы эффективно. Лично я бы просто постарался не обходить эти ограничения.

 9
Author: Tim Stone, 2011-05-18 00:16:35

Wordpress multisite 3.0 не позволяет администраторам сайтов редактировать пользователей. http://wordpress.org/support/topic/administrators-cant-edit-users

 3
Author: NW Tech, 2011-05-17 23:57:35
 2
Author: JonnyPlow, 2011-09-27 01:40:00

Возможно, этот плагин может помочь: http://wordpress.org/extend/plugins/extended-super-admins / в сочетании с жестким кодированием глобальной переменной $super_admins, специфичной для каждого сайта.

Его можно будет установить в виде крючка при загрузке меню администратора сайта - пока не совсем уверен, как это сделать. Это кажется многообещающим решением проблемы, с которой мне вскоре придется разобраться самому.

См.: http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.php и обратите внимание на возврат, если глобальный параметр $super_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;
}

 0
Author: marfarma, 2011-05-18 23:52:14

Если вы перейдете в раздел "Настройки сети" в качестве суперадминистратора, вы увидите опцию

Добавить нового пользователя: Разрешить администраторам сайта добавлять новых пользователей на свой сайт через страницу "Пользователи → Добавить нового"

Просто отметьте эту опцию.

Это позволит обычным администраторам подсайтов, не являющимся супер, добавлять новых пользователей.

 0
Author: Xarcell, 2019-02-16 20:43:23