ロール(Role)

ロールに関する思想がイマイチ理解できていないような気がします。

ロールに関する私の混乱

ブロック

管理画面で"ブロック"を選択すると、サイトを構成するブロックの位置や表示・非表示をコントロールすることができます。

そこで、ブロックごとに、表示するユーザロールを設定できるのですが、新設したロールのみを選択すると、そのロールにしか表示されなくなります。

私の感覚では、その選択によらず、管理者には表示されそうな気がしてしまいます。

ただ、このような思想によって、管理者がいちいち参照したくないブロックは、管理者への表示から除外することができます。

もし、管理者にも表示させたいときは、ユーザ管理画面から、管理者のユーザを選択し、新設したロールも合わせて割り当てれば、管理者にも表示されるようになります。

ユーザ管理(1)

ユーザ管理画面で、ユーザに割り当てられているロールを確認することができます。(もちろん、ロールの変更なども行うことができます。)

ここで、デフォルトの認証ユーザには、ロールの項目には何も表示されません。ユーザは何らかの認証を経ていることが前提なので、当たり前なのかもしれませんが、これが、ロールに対する様々な混乱の原因のような気がしています。(Drupal6で思想が変わった部分かもしれないと想像しています。)

提供されるモジュールによっては、この辺りで不具合を発生してしまってしまうことがあるのかもしれないと思います。

デフォルトの認証ユーザのロールではなく、自分自身が新たにロールを新設し、そのロールによって、様々なコントロールをすることを前提として考えた方が良いのだろうという感じがしています。

ユーザ管理(2)

私の感覚では、管理者なのだから、ロールの割り当てなど不要のような感じがするのですが、管理者に対しても、新規に作成したロールを割り当てることができます。

たぶん、ここがDrupalのロールに対する重要な思想なのだろうと思います。

まとめ

このまとめの内容は、通常の運用では特に意識しなくても良いと思います。

しかし、ブロックの表示をロールでコントロールしようとしたり、各種モジュールを追加したりするときは、次のことを意識しなければならない状況に直面することがあると思います。

  • モジュール動作のコントロールで、今までに私が引っかかったのは、"Invite"モジュールだけです
  • ブロックの表示をユーザロールでコントロールしようとしたときには意識する必要があります。

そんなときは、次のことを、ちょっと、思い出してみて下さい。

  • デフォルトの認証ユーザのロール以外に、自分自身が新たにロールを新設し、そのロールも合わせてユーザに割り当てる
  • 公開するコンテンツの表示コントロールは、基本的には、新設したロールで行う。(管理者の表示コントロールも例外ではない)
  • 管理者にも特定ユーザロールに限定したブロックを表示させたいときは、ユーザ画面から管理者にそのユーザロールも合わせて割り当てる
No votes yet

にほんブログ村 IT技術ブログへ人気ブログランキングへ