概要

Drupalのカスタムモジュールで、カスタム権限を使用する機会がありましたので、備忘録です。

背景

以下の記事で、DrupalからGitHubのActionsを実行するモジュールを紹介しました。

ただし、権限をadminister site configurationに設定しており、管理者権限のユーザしか実行することができませんでした。

この点に対応したコミットは以下です。

https://github.com/nakamura196/Drupal-module-github_webhook/commit/c3b6f57bebfeda0556c929c8ed8ed62a0eb0a5c4

方法

以下、ChatGPT 4oの回答結果を共有します。


Drupalの_permissionには、特定のアクセス権限を設定するための値を設定できます。これによって、特定の役割を持つユーザーが、そのルートにアクセスできるかどうかを制御します。

_permissionに設定できる主な値は以下のようなものです:

一般的な権限

Drupalには、いくつかの標準的な権限が用意されています。以下は一般的に使用される権限の例です:

  1. administer site configuration - サイト全体の設定を管理できる権限
  2. access content - コンテンツへのアクセス権限
  3. administer users - ユーザーを管理できる権限
  4. create content - コンテンツを作成できる権限
  5. edit any content - 任意のコンテンツを編集できる権限
  6. delete any content - 任意のコンテンツを削除できる権限
  7. view user profiles - ユーザープロフィールを閲覧できる権限
  8. administer permissions - 権限を管理できる権限
  9. access administration pages - 管理者ページへのアクセス権限
  10. administer taxonomy - タクソノミーを管理できる権限

カスタム権限

モジュール固有の権限を作成することもできます。例えば、github_webhookモジュールに独自の権限を作成し、_permissionで使用することも可能です。

カスタム権限を作成する場合は、github_webhook.permissions.ymlに以下のように権限を定義します:

acctdreieestssslcterrg:iiipct'tthAiucoabcnce:cwsees'sbAshGl:oilotoTkHwRusUsbEeutWsteeibrnhsgosot:koSaectcteisnsgsa'ndmodifyGitHubWebhooksettings'

そして、routing.ymlでこのカスタム権限を設定します:

gitpdrhaeeutf__q_bhaftup_:uoiiewlrtrretmlemb/s:emiha::esodnsom\'tikiDGso.nri:ns/ut:ecpHtoau'tnlbaif\cnigWcggiees/tbs:ghhsiuotbogh_kiuwtbeSh_beuwhtbeotboiwhkneo\gboFshko'o'romk\SseettttiinnggssF'orm'

まとめ

_permissionには、標準的なDrupalの権限(administer site configurationなど)を設定できます。また、カスタム権限を定義して、そのモジュールや機能専用のアクセス権限を作成することも可能です。

設定

結果、以下のような権限が追加され、特定の役割に対するアクセスを許可することができました。

まとめ

Drupalのカスタムモジュールの構築および利用にあたり、参考になりましたら幸いです。