「パーミッションをいじれば、自分のやりたいことができそうだけどよくわからなくて怖い」

そのお気持ち、わかります。
パーミッションは設定が多すぎる上に、わかりにくい言葉も多く、迷いますよね。

この記事では、まず「何ができるのか」「どう使うのか」をわかりやすくお伝えします。

パーミッションとは何か?3つの言葉だけ覚えてください

Moodleのパーミッション(権限)は、次の3つの要素で成り立っています。

①ロール(Role)=「役割」 「教師」「学生」「管理者」のような、ユーザーの立場のことです。 Moodleには最初からいくつかのロールが用意されています。

②ケイパビリティ(Capability)=「できること」 ロールに紐づいた「具体的にできること」の一覧です。 たとえば「フォーラムに投稿できる」「成績を閲覧できる」「コースを削除できる」といった個々の機能がケイパビリティです。 Moodleには350以上のケイパビリティがあります。

③コンテキスト(Context)=「どこで有効か」 ロールが適用される「場所」のことです。 サイト全体・カテゴリ・コース・特定のアクティビティというように、どのレベルで権限を持つかが決まります。

この3つをまとめると、「誰が(ロール)・どこで(コンテキスト)・何をできるか(ケイパビリティ)」を設定するのがパーミッションです。

標準ロールの種類と特徴

Moodleには最初から以下のロールが用意されています。

ロール名主な特徴
サイト管理者すべての操作が可能。ロールに縛られない特別な存在
マネージャーサイト管理者に近い権限。コース管理が中心
コースクリエータ新しいコースを作成できる
教師(編集可)コースの編集・受講者管理ができる
教師(編集不可)コースの閲覧・採点ができるが編集はできない
学生コースを受講できる
ゲストログインなしで一部のコースを閲覧できる

これらはあくまでデフォルトです。各ロールのケイパビリティは管理者が変更できますし、新しいロールを独自に作ることもできます。

コンテキスト(適用範囲)の階層を知っておこう

Moodleのパーミッションは、上位のコンテキストから下位に引き継がれます。

サイト全体(システム)
  └ カテゴリ
      └ コース
          └ アクティビティ(フォーラム・課題など)

重要なルール:

  • 上位で設定した権限は、下位にも引き継がれます(コースで設定したパーミッションは、アクティビティに引き継がれます)
  • 下位のコンテキストで設定した内容は、上位より優先されます(たとえば、課題で設定したパーミッションは、コースのパーミッション設定よりも優先されます)
  • ただし「Prohibit(禁止)」だけは例外で、どこで設定してもすべての場所で有効になります

たとえばコースレベルで教師ロールを与えた場合、そのコース内のすべてのアクティビティでも教師として機能します。

許可(Allow)・抑制(Prevent)・禁止(Prohibit)の違い

設定できる値は3種類あります。ここが特に混乱しやすいポイントです。

許可-allow: そのケイパビリティを許可します。上位コンテキストで許可されていれば、下位でも引き継がれます。

抑制-prevent: そのケイパビリティを禁止します。ただし、上位のコンテキストで「許可」に設定されていれば上位が優先されます。同じコンテキストで「許可」と「抑制」が競合した場合は「許可」が勝ちます。

禁止-Prohibit: どのコンテキストの設定よりも優先されます。上位で「許可」に設定されていても、「禁止」が設定されていれば絶対に禁止されます。

使い分けの目安:

  • 通常の制限には 抑制を使う
  • 「絶対にこれだけは禁止」の場合に 禁止 を使う(使いすぎに注意)

設定例

ここからは具体的な設定例を紹介します。

ケース①:他の受講者の名前をコース参加者一覧に表示させたくない

設定場所: コース管理 > ユーザ > パーミッション
対象ケイパビリティ: moodle/course:viewparticipants
設定方法: 学生ロールのこのケイパビリティを「抑制」に変更します

これにより、学生は参加者一覧を見ることができなくなります。



ケース②:学生に、あるフォーラムだけ投稿させたくない

サイト全体や他のフォーラムは変えたくないが、特定のフォーラムだけ禁止したい場合です。

設定場所: 該当フォーラムのアクティビティページ > 参加者 > (登録済みユーザのプルダウンをクリック) > パーミッション
対象ケイパビリティ: mod/forum:replypost
設定方法: 学生ロールを「許可」から削除します(このフォーラムだけに適用されます)


パーミッションの確認方法

設定が正しく反映されているか確認する方法が2つあります。

ユーザーの権限を確認する(Check permissions)

特定のユーザーが「このコースで何をできるか」を確認できます。

  • コース:コース管理 > ユーザ > パーミッション > 権限を確認する
  • サイト全体:サイト管理 > ユーザ > パーミッション > システム権限を確認する

ケイパビリティの概要レポート(Capability overview)

あるケイパビリティが、各ロールにどう設定されているかを一覧で確認できます。 サイト管理 > ユーザ > パーミッション > ケイパビリティの概要 から確認できます。

設定を変更した後は、必ずこの機能で確認する習慣をつけましょう。

本番環境で操作する前に:テスト環境を用意しましょう

パーミッションの設定変更は、予期しない影響を与えることがあります。

よくある失敗例:

  • 全学生が急にコースにアクセスできなくなった
  • Prohibitを設定したら教師まで操作できなくなった
  • 管理者自身がある設定画面に入れなくなった

このようなリスクを避けるために、テスト用のMoodle環境を事前に用意することを強くおすすめします。

テスト環境の選択肢:

  • ローカル環境: 自分のPC上にMoodleをインストールして試す
  • ステージング環境: 本番とほぼ同じ構成でテストできる(規模の大きい組織向け)

設定を変更したら、必ず別のアカウントや別のブラウザでログインして、意図した通りに動作しているかを確認してください。

設定を変更するときのポイント

  • 小さく変えて、1つずつ確認する 複数の設定を一度に変えると、どの変更が影響したか特定が難しくなります。
  • 変更前にメモを取る 「変更前:抑制 → 変更後:許可」のように記録しておくと、元に戻す際に迷いません。
  • 禁止は最後の手段として使う 禁止は非常に強力で、他のどの設定よりも優先されます。使いすぎると予想外の問題が起きることがあります。
  • ロールをゼロから作るより、既存ロールをコピーして改変する 「教師の権限から一部だけ外したい」という場合、教師ロールを複製してから変更するのが効率的で安全です。

まとめ

Moodleのパーミッションは、最初は複雑に見えますが、基本となる概念は「ロール・ケイパビリティ・コンテキスト」の3つだけです。

「参加者一覧を見せたくない」「教師同士で登録できるようにしたい」といった具体的な目的から逆引きで設定を探すのが、最もわかりやすいアプローチです。

また、設定変更は必ずテスト環境で確認してから本番に適用することで、予期しないトラブルを防ぐことができます。

まずは「権限を確認する」機能を使って、現在の状態を把握することから始めてみてください。

Follow me!