「マイページ」での「オンラインユーザ」ブロック

「マイページ」での「オンラインユーザ」ブロック

- T N の投稿
返信数: 3

2.1.2 (Build: 20111010)の「コース」で「オンラインユーザ」ブロックを使用しています。さらに、ロールの定義で、学生の「オンラインユーザリストを表示する」を禁止に設定して、学生の見る「オンラインユーザ」ブロックでは、人数しか表示されないようにしています。ところが、学生が「マイホーム」を開くと、オンラインユーザの氏名まで表示されてしまいます。しかも、学生は自由に「オンラインユーザ」ブロックを追加したり削除したりできるようになっています。

 学生に対しては、「コース」だけではなく、「マイホーム」でも、「オンラインユーザ」ブロックでは人数しか表示されないようにするか、あるいは、「オンラインユーザ」ブロックそのものを追加できないようにしたいのですが、その方法がよく分かりません。

 以下の3つくらいが思いつくのですが、どれも目的を達するには至っていません。アドバイスをいただければ幸いです。

  1. 設定▶サイト管理▶プラグイン▶ブロック この先はよく分かりません。
  2. 設定▶サイト管理▶ユーザ▶パーミッション▶ロールの定義 あまりいじりたくはないですし、実際、どこをいじって良いかよく分かりません。
  3. ソースの壊変 同上

環境:Fedora 15, Apache 2.2.21, MySQL 5.5.14

T N への返信

Re: 「マイページ」での「オンラインユーザ」ブロック

- T N の投稿

ちょっとだけ分かってきたことを書き留めておきます。

my/index.html の60行目

$PAGE->set_blocks_editing_capability('moodle/my:manageblocks');

の manageblocks を manageownblocks または configsyspages に替えれば、学生は新たにブロックを追加することはできなくなる。そのかわり、現に表示されているブロックを削除することもできなくなる。 マイページでは、学生にはブロックを使わせないのも一案ですが、カレンダーくらいは自由に使わせたいとも思っています。

 

blocks/online_users/block_online_users.php の 102行目

if (!has_capability('block/online_users:viewlist', $this->page->context)) {

の $this->page->context には通常のコースとは異なる値がはいる(あたりまえか恥ずかしい)らしい。結局、サイト管理(上記1. と 2.)ではどうにもならないようです。

引き続き、アドバイスをよろしくお願いします。


環境:Moodle 2.2.2+ (Build: 20120315), Fedora 16, Apache 2.2.22, MySQL 5.5.20

T N への返信

Re: 「マイページ」での「オンラインユーザ」ブロック

- Hirohisa Kawase の投稿
承認済みユーザーとゲスト、学生の3つロールに対して、
「オンラインユーザーリストを表示する」パーミッションの許可をオフにしてはいかがでしょうか?
Hirohisa Kawase への返信

Re: 「マイページ」での「オンラインユーザ」ブロック

- T N の投稿

ありがとうございます。すばらしいヒントでした満面の笑顔

  1. 承認済みユーザー驚きの「オンラインユーザリストを表示する」を“設定なし”
  2. 学生の「 〃 」を“禁止”
  3. 教師の「 〃 」を“許可”

にすることで目的が達せられました。ゲストは元々使えないようにしているので、省略しました。