管理画面のクライアント用アカウント:本当に必要な権限とは
クライアントがテキストを更新できるようにしたい。最も手っ取り早いのは管理者アカウントですが、最も高くつく方法でもあります。誰かが悪意を持って何かをするからではありません。プラグインの画面での1回の誤クリックが、きちんとしたロールを作るのに必要だった10分よりも大きな代償になるからです。
WordPress に標準で備わっているもの
| ロール | できること | 向いている相手 |
|---|---|---|
| 寄稿者 | 自分の投稿を作成できるが、公開はできない | ゲスト著者 |
| 投稿者 | 自分の投稿を作成・公開できる | 個々の執筆者 |
| 編集者 | すべての投稿と固定ページ、他人のものも含む | ほとんどのクライアント |
| 管理者 | すべて、プラグインとユーザーを含む | あなた自身 |
ほとんどの場合、正しい答えは編集者です。コンテンツを完全にカバーし、技術的な部分には触れさせません。
それでも編集者では足りない点
編集者には、よく足りなくなるものが3つあります。そしてそのどれにも、「それなら管理者で」よりも良い答えがあります。
- メニューの編集:通常は管理者が持つ権限が必要だが、狙いを絞って付与できる
- ページビルダーの利用:多くのビルダーは独自の権限を持ち込み、個別に割り当てられる
- フォームやショップの管理:該当するプラグインが、そのための独自の権限を定義している
方法は常に同じです。ロールを変えるのではなく、足りない権限を1つ追加します。まさにそのために権限マトリクスがあります。
ロックよりも整理が大切
12個のメニュー項目のうち10個がロックされている管理画面は、安全なのではなく、わかりにくいだけです。クライアントは探し回り、違うところをクリックし、電話をかけてきます。権限は何をしてよいかを決めますが、同じくらい重要なのは、そもそも何が見えるかです。
- 管理メニューを必要なものだけに絞り込む
- 複数のクライアントが同じインストールを使う場合は、メディアライブラリを自分のファイルに限定する
- 関係のないウィジェットやナビゲーションメニューは非表示にする
- ログイン後は、5つもお知らせボックスが並ぶダッシュボードではなく、作業を始める画面にリダイレクトする
1分で済むテスト
権限は、それを設定する画面では判断できません。ロールごとにテストユーザーを作成し、そのユーザーとしてログインしてください。自分のアカウントをログインしたままにしておけるよう、別のブラウザで行います。
保護されたコンテンツには、もう1つテストがあります。ログアウトして、保護された投稿に含まれる単語を付けて /wp-json/wp/v2/posts?search= にアクセスします。レスポンスにその内容が含まれていれば、あなたのルールは表示を変えているだけで、データは公開されたままです。
このテストは、どの権限管理プラグインにも当てはまります。「非表示」と「ロック」は別物で、実効性があるのはそのうち1つだけです。
複数の担当者がいる場合の2つの落とし穴
1つ目:権限を付与できる人は、自分自身にもより多くの権限を与えられます。WordPress にはそのためのチェック機構 get_editable_roles() があり、それを無視するプラグインは、塞ぐべき道をまさに開いてしまいます。
2つ目はマルチサイトのネットワークに関するものです。そこではロールの一部がネットワーク全体で共有されています。サブサイトからそれを上書きすると、すべてのサイトで変更されます。自分の管理下にないサイトも含めてです。
アカウントを終了するとき
- アカウントはすぐに削除せず、無効にします。そうしないと、投稿の作成者が失われます。
- 削除する前に、投稿を別のアカウントに移します。
- そのアカウントのアプリケーションパスワードを取り消します。パスワードを変更しても、アプリケーションパスワードは有効なまま残ります。
- 進行中のセッションを終了します。
- いつ、なぜ行ったかを変更履歴に記録します。