Administrator witryny w instalacji sieciowej nie może edytować użytkowników?

15

W przypadku blogów społecznościowych Stack Exchange mamy skonfigurowaną instalację sieciową. Powiedziano mi, że rola administratora witryny nie zezwala na edycję przez użytkownika. Na stronie użytkowników witryny po najechaniu kursorem na użytkownika dostępna jest tylko opcja „ deletenie” edit.

Jedyną opcją związaną z uprawnieniami użytkownika są następujące, ale nie tak naprawdę to, o co tu zamierzam ...

dodaj nowych użytkowników

Jak mogę umożliwić administratorowi witryny pełną kontrolę nad użytkownikami w tej konkretnej witrynie?

Rebecca Chernoff
źródło

Odpowiedzi:

8

Jak wyjaśniono w opisie ekranu Network Admin Users , użytkownicy instalacji sieciowej (tryb wielu witryn) to użytkownicy

dodawany globalnie do całej sieci, a następnie przypisywany do określonych witryn

Normalni administratorzy nie mogą modyfikować tych globalnych profili, ponieważ ich uprawnienia obejmują tylko ich witrynę. To zadanie jest zarezerwowane dla superadministratorów, którzy mają pełną kontrolę w całej sieci.

We wcześniejszych wersjach WordPress, gdy instalacje wielostanowiskowe korzystały z oddzielnej obsługi WordPress MU , można było zdefiniować, EDIT_ANY_USERże jest to prawda w pliku wp-config.php. Ponieważ jednak obsługa wielu lokalizacji została natywnie zintegrowana, uważam, że została usunięta.

Aby zarządzać użytkownikami sieci z ekranu Administratorzy sieci, użytkownik musi należeć do roli, która ma przynajmniej uprawnienia manage_network_usersi edit_usersuprawnienia. Państwo mogli spróbować utworzyć rolę niestandardową, które obejmowały te i standardowe uprawnienia administratora, ale Nie jestem przekonany, jak skuteczne byłoby. Osobiście staram się po prostu unikać obchodzenia tych ograniczeń.

Tim Stone
źródło
0

Być może ta wtyczka może pomóc: http://wordpress.org/extend/plugins/extended-super-admins/ w połączeniu z kodowaniem zmiennej globalnej $ super_admins, specyficznej dla każdej strony.

Powinno być możliwe ustawienie haka po załadowaniu menu administratora strony - jeszcze nie jestem pewien, jak to wymusić. Wydaje się to obiecującym rozwiązaniem problemu, z którym wkrótce muszę sobie poradzić.

Zobacz: http://svn.automattic.com/wordpress/trunk/wp-admin/include/ms.php i zwróć uwagę na zwrot, jeśli globalny $ super_admins jest już ustawiony.

/ **
 * Nadaje uprawnienia superadministratora.
 *
 * @ od 3.0.0
 * @param int $ user_id
 * /
funkcja grant_super_admin ($ user_id) {
    globalne $ super_admins;

    // Jeśli zdefiniowane jest zastępowanie globalnych superadministratorów, nie ma tu nic do roboty.
    if (isset ($ super_admins))
        zwracać fałsz;

    do działań ('grant_super_admin', $ user_id);

    // Bezpośrednio pobierz site_admins zamiast get_super_admins ()
    $ super_admins = get_site_option ('site_admins', array ('admin'));

    $ user = nowy 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 działań („przyznane_administrator”, $ identyfikator_użytkownika);
        zwróć prawdę;
    }
    zwracać fałsz;
}

/ **
 * Cofa uprawnienia superadministratora.
 *
 * @ od 3.0.0
 * @param int $ user_id
 * /
funkcja revoke_super_admin ($ user_id) {
    globalne $ super_admins;

    // Jeśli zdefiniowane jest zastępowanie globalnych superadministratorów, nie ma tu nic do roboty.
    if (isset ($ super_admins))
        zwracać fałsz;

    do działań ('revoke_super_admin', $ user_id);

    // Bezpośrednio pobierz site_admins zamiast get_super_admins ()
    $ super_admins = get_site_option ('site_admins', array ('admin'));

    $ user = nowy 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 działań ('revoked_super_admin', $ user_id);
            zwróć prawdę;
        }
    }
    zwracać fałsz;
}

marfarma
źródło
0

Jeśli przejdziesz do „Ustawień sieciowych” jako superadministrator, zobaczysz opcję

Dodaj nowego użytkownika: Zezwól administratorom witryny na dodawanie nowych użytkowników do ich witryny za pośrednictwem strony „Użytkownicy → Dodaj nowego”

Po prostu sprawdź tę opcję.

Umożliwi to zwykłym administratorom podstrony dodawanie nowych użytkowników.

Xarcell
źródło