L'amministratore del sito in un'installazione di rete non può modificare gli utenti?


15

Per i blog della community di Stack Exchange, abbiamo installato un'installazione di rete. Mi è stato detto che il ruolo di amministratore del sito non consente un'opzione per la modifica dell'utente. Nella pagina degli utenti del sito quando si passa con il mouse sopra un utente, c'è solo un'opzione per delete, non una per edit.

L'unica opzione relativa alle autorizzazioni utente è la seguente, ma non è quello che sto per fare qui ...

aggiungi nuovi utenti

Come posso consentire all'amministratore del sito di avere il pieno controllo degli utenti su quel sito specifico?

Risposte:


8

Come spiegato nella descrizione della schermata Utenti amministratore di rete , in una installazione di rete (modalità multisito) gli utenti lo sono

aggiunto su base globale all'intera rete, quindi assegnato a siti specifici

Gli amministratori normali non sono autorizzati a modificare questi profili globali, poiché i loro privilegi si estendono solo al sito specificato. Questa attività è riservata ai super amministratori, che hanno il pieno controllo su tutta la rete.

Nelle versioni precedenti di WordPress, quando le installazioni multisito si basavano su un supporto MU WordPress separato , potresti definire EDIT_ANY_USERvero nel tuo file wp-config.php. Tuttavia, poiché il supporto multisito è stato integrato in modo nativo, credo che sia stato rimosso.

Per gestire gli utenti della rete dalla schermata Utenti amministratore di rete, un utente deve appartenere a un ruolo che ha almeno le autorizzazioni manage_network_userse edit_users. Si potrebbe provare a creare un ruolo personalizzato che includeva queste e le autorizzazioni di amministratore standard, ma io non sono convinto quanto efficace che sarebbe. Personalmente, proverei solo ad evitare di eludere queste restrizioni.




0

Forse questo plugin può essere d'aiuto: http://wordpress.org/extend/plugins/extended-super-admins/ in combinazione con l'hard-coding della variabile globale, $ super_admins, specifica per ogni sito.

Dovrebbe essere in grado di essere impostato in modo agganciato quando viene caricato il menu di amministrazione del sito - non sono ancora sicuro di come applicarlo. Sembra una soluzione promettente a un problema che dovrò affrontare da solo, a breve.

Vedi: http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.php e nota il ritorno se il globale, $ super_admins è già impostato.

/ **
 * Concede i privilegi di super amministratore.
 *
 * @since 3.0.0
 * @param int $ user_id
 * /
funzione grant_super_admin ($ user_id) {
    $ super_admins globali;

    // Se viene definito l'override globale di super_admins, non c'è nulla da fare qui.
    if (isset ($ super_admins))
        restituire false;

    do_action ('grant_super_admin', $ user_id);

    // Recupera direttamente site_admins invece di utilizzare 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);
        ritorno vero;
    }
    restituire false;
}

/ **
 * Revoca i privilegi di super amministratore.
 *
 * @since 3.0.0
 * @param int $ user_id
 * /
funzione revoke_super_admin ($ user_id) {
    $ super_admins globali;

    // Se viene definito l'override globale di super_admins, non c'è nulla da fare qui.
    if (isset ($ super_admins))
        restituire false;

    do_action ('revoke_super_admin', $ user_id);

    // Recupera direttamente site_admins invece di utilizzare 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);
            ritorno vero;
        }
    }
    restituire false;
}


0

Se vai su "Impostazioni di rete" come super amministratore, vedrai un'opzione

Aggiungi nuovo utente: consente agli amministratori del sito di aggiungere nuovi utenti al loro sito tramite la pagina "Utenti → Aggiungi nuovo"

Seleziona questa opzione.

Ciò consentirà ai normali amministratori di siti secondari non super di aggiungere nuovi utenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.