コンテンツリストに自分の記事だけ表示したい

こんにちは。
ぴころじーの竹川です。

Drupalにログイン後、管理画面からコンテンツリストを見ると、デフォルトの状態では全ユーザーの記事を見ることができます。個人で運営していたり、会社等の団体で運営している場合はこれでよいのです。

ただ、今回の要件は、会員サイトの構築で、他のユーザーが投稿した記事を表示しないようにするということです。

Drupalは細かい権限管理をすることができるのですが、先にも述べた通り、デフォルトの状態では、すべての記事が表示されます。

コンテンツリストの正体

Drupalでは、機能の多く(特にリストを表示させるもの)でViewsを使っています。コンテンツリストももれなくViewsが使われており、管理画面のビューから確認することができます。

コンテンツビューを操作する

まず、管理画面からビューをクリックします。

こちらが、コンテンツリストを構成、表示するためのビューです。

内容を確認してみましょう。弄り倒してしまうと、後で大変なことになるかもしれないので、ここは見るだけにとどめます。慣れてくれば、色々とカスタマイズの幅が広がりますよ!

そして、画面左下のフィルターを追加します。追加する項目は「現在」です。こちらを追加すると、表示内容を現在ログインしているユーザーに絞ることができます。(弊害もあるのでそれは後述します。)

たったこれだけで、コンテンツリストにはログインしているユーザーが作成したコンテンツのみが表示されるようになります。

ただ、先述の弊害が一つだけあり、管理者でログインした場合でも、管理者が作成したコンテンツのみしか見ることができないということなんですね。除外できるようにできないのかな?できそうだけど・・・。挙動としては正しいんですけれどね!

他の方法

他の方法がないわけではありません。これは私が結構前に使っていた手法です。

Workbenchモジュールを使う方法があります。このモジュールは、3種類の表示方法を切り替えできる便利なものですが、使う側、特にユーザーからみて、少し煩雑になってしまうため、私は使うことがなくなったものなんです。結局、ユーザーって自分の記事が見れればよいのです。・・・とそこに行き着きました。

興味のある方はお試しくださいね。