ネットワークインストールのサイト管理者はユーザーを編集できませんか?


15

Stack Exchange Community Blogsには、セットアップしたネットワークインストールがあります。サイト管理者の役割がユーザー編集のオプションを許可していないと言われています。ユーザーの上にマウスを移動したときのサイトのユーザーページには、のオプションのみがあり、のオプションはdeleteありませんedit

ユーザー権限に関連する唯一のオプションは次のとおりですが、実際に私がここで行っていることではありません...

新しいユーザーを追加する

サイト管理者が特定のサイトのユーザーを完全に制御できるようにするにはどうすればよいですか?

回答:


8

Network Admin Users画面の説明で説明したように、ネットワークインストール(マルチサイトモード)では、ユーザーは

ネットワーク全体にグローバルに追加され、特定のサイトに割り当てられます

通常の管理者は、これらのグローバルプロファイルを変更することはできません。これは、それらの特権が特定のサイトにのみ及ぶためです。このタスクは、ネットワーク全体を完全に制御できるスーパー管理者専用です。

以前のバージョンのWordPressでは、マルチサイトインストールが別のWordPress MUサポートに依存していた場合EDIT_ANY_USER、wp-config.phpファイルでtrueと定義できました。ただし、マルチサイトサポートはネイティブに統合されているため、これは削除されたと考えています。

[ネットワーク管理者ユーザー]画面からネットワークユーザーを管理するには、ユーザーは少なくともmanage_network_usersand edit_users権限を持つロールに属している必要があります。これらの権限と標準の管理者権限を含むカスタムロールを作成してみることもできます、それがどれほど効果的であるか確信が持てません。個人的には、これらの制限を回避することを避けたいと思います。




0

おそらく、このプラグインが役立つ可能性があります。http://wordpress.org/extend/plugins/extended-super-admins/と、各サイトに固有のグローバル変数$ super_adminsのハードコーディングとの組み合わせ。

サイト管理メニューが読み込まれるときにフックに設定できるはずです-まだそれを実施する方法がよくわかりません。これは、まもなく対処しなければならない問題の有望な解決策のようです。

http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.phpを参照し、グローバルな$ super_adminsが既に設定されている場合の戻り値に注意してください

/ **
 *スーパー管理者権限を付与します。
 *
 * @since 3.0.0
 * @param int $ user_id
 * /
function grant_super_admin($ user_id){
    グローバル$ super_admins;

    //グローバルsuper_adminsオーバーライドが定義されている場合、ここで行うことはありません。
    if(isset($ super_admins))
        falseを返します。

    do_action( 'grant_super_admin'、$ user_id);

    // get_super_admins()を使用する代わりに直接site_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);
        trueを返します。
    }
    falseを返します。
}

/ **
 *スーパー管理者権限を取り消します。
 *
 * @since 3.0.0
 * @param int $ user_id
 * /
関数revoke_super_admin($ user_id){
    グローバル$ super_admins;

    //グローバルsuper_adminsオーバーライドが定義されている場合、ここで行うことはありません。
    if(isset($ super_admins))
        falseを返します。

    do_action( 'revoke_super_admin'、$ user_id);

    // get_super_admins()を使用する代わりに直接site_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);
            trueを返します。
        }
    }
    falseを返します。
}


0

スーパー管理者として「ネットワーク設定」に移動すると、オプションが表示されます

新規ユーザーの追加:サイト管理者が「ユーザー→新規追加」ページからサイトに新規ユーザーを追加できるようにします

このオプションをチェックしてください。

これにより、通常の非スーパーサブサイト管理者が新しいユーザーを追加できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.