web-dev-qa-db-ja.com

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

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

ユーザーのアクセス許可に関連する唯一のオプションは次のとおりですが、実際にはここで何をしようとしているのではありません...

add new users

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

15

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

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

通常の管理者はこれらのグローバルプロファイルを変更することを許可されていません。特権が与えられたサイトにしか及ばないためです。このタスクは、ネットワーク全体を完全に制御できるスーパー管理者のために予約されています。

以前のバージョンのWordPressでは、マルチサイトインストールが WordPress MU のサポートに依存していた場合は、wp-config.phpファイルでEDIT_ANY_USERをtrueに定義できます。しかし、マルチサイトサポートは元々統合されていたので、これは削除されたと思います。

Network Admin Users画面からネットワークユーザーを管理するには、ユーザーは少なくともmanage_network_usersおよびedit_users権限を持つ役割に属している必要があります。あなた 可能性はありますが これらと標準の管理者権限を含むカスタムロールを作成してみてください。個人的には、これらの制限を回避しないようにしてください。

7
Tim Stone

Wordpress multisite 3.0では、サイト管理者はユーザーを編集できません。 http://wordpress.org/support/topic/administrators-cant-edit-users

3
NW Tech
2
JonnyPlow

おそらくこのプラグインが役に立つでしょう: 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){
 global $ super_admins; 
 
 // global super_admins overrideが定義されている場合、ここでは何もしません。 。(.set($ super_admins))
 falseを返す; 
 
 do_action( 'grant_super_admin'、$ user_id); 
 [.____。 。] // get_super_admins()
を使用する代わりにsite_adminsを直接取得します。 ($ 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); 
 trueを返します; 
} 
 falseを返します
} 
 
/** 
 *スーパー管理者権限を取り消します。
 * 
 * @since 3.0.0 
 * @param int $ user_id 
 */
 function revoke_super_admin($ user_id){
 global $ super_admins; 
 
 // global super_adminsの上書きが定義されている場合、ここでは何もしません。
 if(isset($ super_admins) )
 falseを返す; 
 
 do_action( 'revoke_super_admin'、$ user_id); 
 
 // get_super_admins()を使わずにsite_adminを直接取得する
 $ super_admins = get_site_option( 'site_admins'、array( 'admin')); 
 
 $ user = new WP_User($ user_id); 
 if($ user-> user_email!= get_site_option( 'admin_email')){(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
marfarma

スーパー管理者として[ネットワーク設定]にアクセスすると、オプションが表示されます。

新しいユーザーを追加する:サイト管理者が "ユーザー→新規追加"ページで自分のサイトに新しいユーザーを追加することを許可します。

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

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

0
Xarcell