コース作成者を登録者リストに非表示にしたい

コース作成者を登録者リストに非表示にしたい

- Mikio Ikeda の投稿
返信数: 22

最近、Moodle の Version を 1.6.2 から 1.7.1+ にアップグレードしたのですが、全てのコースに「コース作成者」の権限を持った人が登録者として表示されてしまいます。

コース作成者の権限をなるべく減らさずに、登録者リストに表示されないようにするにはどうしたらよいでしょうか?
Site Administration メニュー内の Role の定義画面には適切と思われる項目が見当たりません。
Mikio Ikeda への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
プログラムを少々修正する必要があります。
下記の修正をお試しください。ウインク

修正対象プログラム: user/index.php
修正対象箇所: 264行目あたり

[変更前]
// Otherwise they appear in every participant list

$sitecontext = get_context_instance(CONTEXT_SYSTEM);
$doanythingroles = get_roles_with_capability('moodle/site:doanything', CAP_ALLOW, $sitecontext);

[変更後]
// Otherwise they appear in every participant list

$sitecontext = get_context_instance(CONTEXT_SYSTEM);
$site_doanything = get_roles_with_capability('moodle/site:doanything',CAP_ALLOW, $sitecontext);
$legacy_coursecreator = get_roles_with_capability('moodle/legacy:coursecreator', CAP_ALLOW, $sitecontext);
$doanythingroles = $site_doanything + $legacy_coursecreator;

# 上記修正を行った後、コース内の「管理 >> ロールの割り当て」で、 非表示のコース作成者 (Course Creator) に
# 教師のロールを割り当ててください。

Mitsuhiro Yoshida への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mikio Ikeda の投稿
ありがとうございます。この修正でうまくいきました。
Mikio Ikeda への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
どういたしまして。
Mitsuhiro Yoshida への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mikio Ikeda の投稿

capability の書式が分かれば、もっと良い方法があるのではないかと思います。

このままでは site ワイドの権限を持った role の人やコースカテゴリワイドの権限を持った role の人は、全体またはコースカテゴリの全てのコースに参加者として表示されてしまうのではないでしょうか?
このあたりのドキュメントがどこにあるか見当が付くかたはいませんか?
Mikio Ikeda への返信

Re: コース作成者を登録者リストに非表示にしたい

- Katsunori Mizuno の投稿

上記の現象以外にも、コースカテゴリで、コースの一覧を表示すると、コース毎にコース作成者が全員表示されてしまうのですが、これを表示しないようにすることは出来ないでしょうか?

Katsunori Mizuno への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
>上記の現象以外にも、コースカテゴリで、コースの一覧を表示すると、コース毎にコース作成者が全員表示されてしまうのですが、これを表示しないようにすることは出来ないでしょうか?

「それぞれのコース >> 管理 >> ロールの割り当て」で、ユーザに「コース作成者」ロールと「教師」ロールを割り当てると、コース一覧を表示するときに、そのユーザが「教師」として表示されてしまいます。

もし、このような割り当てをされているのでしたら、そのユーザから「教師」ロールを解除してください。「コース作成者」ロールのみが割り当てられたユーザは、コース一覧に教師として表示されることはありません。

Mitsuhiro Yoshida への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mikio Ikeda の投稿
デフォルトでは、「教師」よりも「コース作成者」の role が優先されて表示されるようです。
site administration -> Users -> Permissions -> Define Roles で、「教師」の role を「コース作成者」よりも上位にすることによって、「教師」として表示されるようになりました。
Mikio Ikeda への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
>site administration -> Users -> Permissions -> Define Roles で、「教師」の role を「コース作成者」よりも上位にすることによって、「教師」として表示されるようになりました。

池田先生

ご指摘ありがとうございます!

添付 role.gif
Mitsuhiro Yoshida への返信

Re: コース作成者を登録者リストに非表示にしたい

- Katsunori Mizuno の投稿

ロールの優先順位の変更で、コース内で教師のロールを割り当てたアカウントは、教師として表示されるようになりましたが、相変わらず、コースに登録されていない、まったく関係の無い「コース作成者」が表示されてしまいます。

管理メニューの「ロールの割り当て」で「コース作成者」に割り当てているアカウントが全て表示されてしまいます。

添付 ScreenShot005.png
Katsunori Mizuno への返信

Re: コース作成者を登録者リストに非表示にしたい

- Tatsuya Shirai の投稿

これは私も全く同じ事象に悩みました.
これは仕様です.

http://moodle.org/help.php?file=contexts.html

  1. サイト(システム)
  2. コースカテゴリ
  3. コースサブカテゴリ
  4. コース
  5. ブロックおよび活動
の順でロールが継承されます.[サイト管理]のところにある[ユーザ]-[ロールの割り当て]は,コースカテゴリ,サブカテゴリ,コース,ブロックなど,下位のコンテキストでも有効となってしまいます.とはいえ,各コースやコースカテゴリのロール割り当てのメニューには名前が現れないのでなかなか気付きません.

[サイト管理]メニューにあるロールの割付は,全てのコースにおいて「教師」や「コース作成者」である者のみを指定します.もし特定のコースのみで「コース作成者」であるならば,そのコースの[管理]にある[ロールの割り当て]で割り当てて下さい.

その際に,[サイト管理]でロールを「コース作成者」に割り当ててしまったユーザーは全て[割り当て済みユーザ]から[潜在的なユーザ]に戻すのをお忘れなく.

これは上記の1,2,3,4,5の順で,全て当てはまることです.あるコースカテゴリのロールの割り当てで[管理者]に割り当てられたユーザは,そのコースカテゴリ中の全てのコースの[管理者]である,という意味です.

最初はこの概念が理解できていなくて悩みました(ロール割り当てのメニューが右にあったり左にあったりするのも混乱の素).
Tatsuya Shirai への返信

Re: コース作成者を登録者リストに非表示にしたい

- Katsunori Mizuno の投稿

仕様ですか...困りました。

LDAP サーバ認証で、ldap_creators に教員グループを割り当てているのですが、コース毎に、コース作成者が50人とか並んでしまうと使い物になりません。

教員を ldap_creators にするのをあきらめるか、1.6.4+ を使うしかないのかなぁ。

Katsunori Mizuno への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mikio Ikeda の投稿
いろいろ見てようやく分かってきました。

この表示は、course/lib.php 内の print_course メソッドで実行されていて、moodle/course:update「コース設定を更新する」の権限を持っているユーザーが、表示されるようです。ですから、コース作成者の権限から「コース設定を更新する」を「抑制」すればよいようです。

capability のストリングは、ちゃんと User->Permissions->define roles から manage roles のなかにちゃんと入っていました。

いままで、大幅に手を入れることを考えてなかったのですが、表示されているソースをてがかりに moodle のソースを読むこつもすこしずつ分かってきました。

Mikio Ikeda への返信

Re: コース作成者を登録者リストに非表示にしたい

- Katsunori Mizuno の投稿
この問題は、1.8+ では発生しなくなったようです。

Katsunori Mizuno への返信

Re: コース作成者を登録者リストに非表示にしたい

- Hiroto Kagotani の投稿
私も確認しました。
1.8正式版が出て、1.6.2から直接アップグレードしてみましたが、1.7や1.8betaにあったロールがらみの不具合がほとんど解消しているように見えます。
Hiroto Kagotani への返信

Re: コース作成者を登録者リストに非表示にしたい

- Haruhiko Okumura の投稿
三重大学は1.6→1.9にアップデートしたのですが,「コースの検索」の結果の画面で各コースに全コース作成者がリストされてしまうという問題に気づきました。

皆様のところで1.8以降で生じていないのであれば,1.8を経由しないで1.6→1.9と更新したためにユーザのロールのアップデートがうまくいっていないのかとも思ったりしています。

何かヒントになる情報があればお教えいただければ幸いです。

余談ですが,ほかにもロール関係で悩んだことは,小テストでグローバルなカテゴリに作っておられた問題がすべてアクセスできなくなったことです(管理者ならできるのですが一般の教師ではできないようでした)。これはコース内では教師だと思って教師のパーミッションだけ見て悩んでいたのですが,コース作成者のパーミッションを直すことで,直りました(具体的には「新しい問題を追加する」から始まる「問題」関係のブロックを全部「許可」にしてしまったと思います)。まだこのあたりがよく理解できていません。

Haruhiko Okumura への返信

Re: コース作成者を登録者リストに非表示にしたい

- Minoru Kawano の投稿

ヒントにもなっていないどころか、ただの報告になってしまいますが…

三重大のMoodleを拝見しましたが、たしかにコースの検索の結果に、そのコースの教師だけでなく全コース作成者まで表示されてしまっていますね。

うちのMoodleは、奥村先生と同じで、三重大版1.6→三重大版1.9に直接アップデートしたのですが、今確認したところ、そのような現象はおきませんでした。小テストの方の問題は、あまり使っていなかったため、ちょっと確認できていません。

ちなみにロール関係の設定ははとく触っていません。コースに、担当教員のユーザを「教師」として割り当てているくらいです。

Minoru Kawano への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mikio Ikeda の投稿
特定のコースカテゴリー内(たとえば「新規コース」というような名前の)だけでコース作成の権限を持たせることによって、そのコースカテゴリー以外ではコース作成者が表示されないようにすることができます。四日市大学では、管理者が作成後、適宜適切なカテゴリーに移動させて解決していました。(1.8の場合)ところが、つい最近、1.9にバージョンアップしたら表示されなくなっていました。
1.7の場合は、コース作成後、教師がコースカテゴリーを自由に変更できたのですが、現在はできなくなっています。便利だったのですが、本来、一般教師のRoleで可能であるべきことではないと思います。
Mikio Ikeda への返信

Re: コース作成者を登録者リストに非表示にしたい

- Haruhiko Okumura の投稿
どうもありがとうございます。
Kawano先生のところとIkeda先生のところで結果が違うということですので,コードの問題ではなくデータの問題っぽいですね。試行錯誤してみます。

Mikio Ikeda への返信

Re: コース作成者を登録者リストに非表示にしたい

- Mikio Ikeda の投稿
実は 1.9 にアップデートしたばかりなので、よく見ていなかったのですが、コース作成者という Role 自体がなくなっています。カテゴリーの教師として登録すると、コース作成権限が生じるようです。
Mikio Ikeda への返信

Re: コース作成者を登録者リストに非表示にしたい

- Haruhiko Okumura の投稿
三重大学の場合は,たった今解決しました。^^;

アピアランス→コース管理者のところの設定を「教師」だけチェックにすれば,本来の教師だけが表示されました。

単純なことでした。お騒がせしました。m(__)m

Haruhiko Okumura への返信

Re: コース作成者を登録者リストに非表示にしたい

- Minoru Kawano の投稿

そういえば、そんな設定がありましたね。私もすっかり忘れていました。解決して良かったです。

うちのMoodleでは、「編集権限のない教師」に、TAやSA(スチューデント・アシスタント)のような、院生や学生を授業のスタッフとして登録して、コース説明に表示するように設定していました。思い出せば、たしか昨年くらいからです。

Haruhiko Okumura への返信

Re: コース作成者を登録者リストに非表示にしたい

- Haruhiko Okumura の投稿
たまたまさきほど某Moodleで「教員の名前がコースの外から見えないようにしたい」という要望が出て,設定個所が見つからずググったところ,5年前の自分の書き込みが見つかりました!

ちなみに,Moodle 2.6.2では
サイト管理→アピアランス→コース→コース管理者の「教師」にチェックが付いていたのを外す
でした。