it-swarm.com.de

Site-Administrator in einer Netzwerkinstallation kann Benutzer nicht bearbeiten?

Für die Stack Exchange-Community-Blogs haben wir eine Netzwerkinstallation eingerichtet. Mir wurde mitgeteilt, dass die Site-Administratorrolle keine Option für die Bearbeitung durch Benutzer zulässt. Auf der Benutzerseite der Site gibt es beim Bewegen des Mauszeigers über einen Benutzer nur eine Option für delete, keine für edit.

Die einzige Option im Zusammenhang mit Benutzerberechtigungen ist die folgende, aber nicht wirklich das, was ich hier anstrebe ...

add new users

Wie kann ich dem Site-Administrator die vollständige Kontrolle über die Benutzer auf dieser bestimmten Site ermöglichen?

15

Wie in der Beschreibung des Bildschirms Network Admin Users (Netzwerkadministrator-Benutzer) erläutert, werden bei einer Netzwerkinstallation (Multisite-Modus) Benutzer

wird global zum gesamten Netzwerk hinzugefügt und dann bestimmten Standorten zugewiesen

Normale Administratoren dürfen diese globalen Profile nicht ändern, da sich ihre Berechtigungen nur auf die angegebene Site erstrecken. Diese Aufgabe ist Superadministratoren vorbehalten, die die volle Kontrolle über das gesamte Netzwerk haben.

In früheren Versionen von WordPress konnten Sie EDIT_ANY_USER so definieren, dass er in Ihrer wp-config.php-Datei wahr ist, wenn für Installationen an mehreren Standorten separate WordPress MU -Unterstützung erforderlich war. Da jedoch die Unterstützung für mehrere Standorte nativ integriert wurde, glaube ich, dass dies beseitigt wurde.

Um Netzwerkbenutzer über den Bildschirm "Netzwerkadministrator-Benutzer" zu verwalten, muss ein Benutzer einer Rolle angehören, die mindestens über die Berechtigungen "manage_network_users" und "edit_users" verfügt. Sie könnten versuchen, eine benutzerdefinierte Rolle zu erstellen, die diese und die Standardadministratorberechtigungen enthält, aber ich bin nicht überzeugt, wie effektiv dies sein würde. Ich persönlich würde nur versuchen, diese Einschränkungen nicht zu umgehen.

7
Tim Stone

Mit Wordpress Multisite 3.0 können Site-Administratoren keine Benutzer bearbeiten. http://wordpress.org/support/topic/administrators-cant-edit-users

3
NW Tech
2
JonnyPlow

Vielleicht kann dieses Plugin helfen: http://wordpress.org/extend/plugins/extended-super-admins/ in Kombination mit der harten Codierung der globalen Variablen $ super_admins, die für jede Site spezifisch ist.

Es sollte in der Lage sein, in einem Hook gesetzt zu werden, während das Site-Admin-Menü geladen wird - nicht ganz sicher, wie man das noch erzwingt. Es scheint eine vielversprechende Lösung für ein Problem zu sein, mit dem ich mich in Kürze befassen muss.

Siehe: http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.php und beachten Sie die Rückgabe, wenn das globale $ super_admins bereits festgelegt ist.

/** 
 * Erteilt Super-Administratorrechte. 
 * 
 * @Since 3.0.0 
 * @Param int $ user_id 
 */
 Funktion grant_super_admin ($ user_id) {
 global $ super_admins; 
 
 // Wenn global super_admins override definiert ist, gibt es hier nichts zu tun . 
 if (isset ($ super_admins)) 
 return false; 
 
 do_action ('grant_super_admin', $ user_id); 
 
 // Rufe Site_Admins direkt ab, anstatt 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 (' grant_super_admin ', $ user_id); 
 return true; 
} 
 return false; 
} 
 
/** 
 * Widerruft Super-Administratorrechte. 
 * 
 * @Since 3.0.0 
 * @Param int $ user_id 
 */
 Funktion revoke_super_admin ($ user_id) {
 global $ super_admins; 
 
 // Wenn das Überschreiben globaler super_admins definiert ist, gibt es hier nichts zu tun. 
 if (isset ($ super_admins) ) 
 false zurückgeben; 
 
 do_action ('revoke_super_admin', $ user_id); 
 
 // Site_admins direkt abrufen, anstatt get_super_admins () zu verwenden 
 $ super_admins = get_site_option ('site_admins', array ('admin')); 
 
 $ user = neuer 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
marfarma

Wenn Sie als Superadministrator zu "Netzwerkeinstellungen" wechseln, wird eine Option angezeigt

Neuen Benutzer hinzufügen: Ermöglichen Sie Site-Administratoren das Hinzufügen neuer Benutzer zu ihrer Site über die Seite "Benutzer → Neu hinzufügen"

Aktivieren Sie einfach diese Option.

Auf diese Weise können normale Administratoren von Nicht-Super-Untersites neue Benutzer hinzufügen.

0
Xarcell