Standing on the Shoulder of Linus

Home / 2014 / 9月 / 01 / WordPressでは、新規ユーザー登録を誰でも可に設定できる。新規ユーザーの権限を「管理者」にしてしまうことも可能

WordPressでは、新規ユーザー登録を誰でも可に設定できる。新規ユーザーの権限を「管理者」にしてしまうことも可能

WordPressでは、新規ユーザー登録を誰でもできるように設定できます。ログイン画面から、「登録」をクリックすると、下記のような画面にいけます。

register

新規ユーザーの権限は、管理画面で設定します。この時、通常は登録ユーザーの権限を制限すると思いますが、管理者や編集者といった、権限の豊富なユーザーも、管理画面の選択肢としては表示されます。もし、設定ミスなどで「管理者」にしてしまうと、新規ユーザー登録した人が「管理者」権限を持つ、ということになります。

標準インストール時の管理画面では、下記のように、管理者も選択可能です。
default_role

利便性とリスク

もちろん、ユーザー参加型サイトなら、誰でもユーザー登録を可能にすることがあるでしょう。しかし、このような重大な設定が、簡単にできると、設定は楽かもしれませんが、管理者が設定ミスした場合に、いたずらされてしまう、というリスクもあります。
とくに、「新規ユーザー登録時の権限に管理者が選べる」については、影響が大きいです。このような設定にすることはまず無いでしょう。

新規ユーザー登録時の権限を制限する

なので、新規ユーザー登録時の権限を制限するように設定してみます。こうすれば、間違えて「新規ユーザーの権限を豊富なものにする」ことが避けられます。 ※力技です。

// オプションから管理者、編集者、投稿者を消す
function remove_from_default_role() {
	?><script type="text/javascript">
		jQuery(document).ready(function($){
		  $("option[value='author'").remove();
		  $("option[value='editor'").remove();
		  $("option[value='administrator'").remove();
		});
	</script><?php }
add_action( 'admin_head-options-general.php', 'remove_from_default_role' );

// 寄稿者、購読者以外が設定されていたら、寄稿者に書き換える
function set_available_role( $data )
{
    $default = 'contributor';
    $allowed = array( 'contributor', 'subscriber' );
    if ( in_array( $data, $allowed )) {
        return $dta;
    } else {
        return $default;
    }
}
add_filter( 'option_default_role', 'set_available_role' );

remove_from_default_roleは、jQueryを使って、選択肢から管理者、編集者、投稿者を消しています。インラインでJavaScriptを書いていますが、きちんと書くなら別ファイルにスクリプトを書いたほうがよいかもしれません。

set_available_roleは、DBに保存されているオプション値をチェックします。もし寄稿者、購読者以外が設定されていた場合は、寄稿者に書き換えます。

選択できる権限を寄稿者、購読者に変えた画面です。

default_role_limit

新規ユーザーの権限の選択肢を寄稿者、購読者のみにすることができました。

関連

Posted in WordPress | Tagged cms, 権限
← Finger Board 電子教材作成ハンズオン体験会に参加しました。 書評: FuelPHP逆引きガイド →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 6年使ったイーモバイル(Y!mobile)を解約手続。店頭でSIM返却
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.