web-dev-qa-db-ja.com

権限ページで特定のモジュール「グループ」にカスタム権限を追加します

カスタムモジュールを使用して、コア/コントリビュートモジュールをハッキングせずに、アクセス許可ページでコア/コントリビュートモジュールの「グループ」にアクセス許可を追加するにはどうすればよいですか?

例:
Add custom permission to core module

1
Laxman13

すでに述べたように、モジュールによって実装された許可を別のモジュールによって実装された許可と一緒にリストすることは良い考えではありません。 user.moduleによって実装されたものと一緒にリストされている場合、custom_module.moduleなどによって実装された権限をユーザーが見つけるのは困難です。

アクセス許可の一覧に使用する順序を本当に変更する必要がある場合(しかし、それが本当に必要な場合)、アクセス許可の一覧の表示方法を変更することをお勧めします。それを実装するモジュールに基づいて一覧を表示する代わりに、異なる基準に基づいてそれらをリストします。
これを行うには、次のことを行う必要があります。

やってみる価値はありますか?それはあなたの顧客によって異なります。
Drupal 7の最初の公式リリースがリリースされ、Drupal 7のコードが変更されることを考えると、顧客が管理ページにリストされているアクセス許可の順序を変更したい理由を理解し、それを変更することが悪い考えである理由を説明しようと思います。顧客がコードを実装する必要があると主張した場合独自の目的であれば、サイトがDrupal 7にパスしたときにコードを書き換える必要があることを理解させ、そのような変更に時間を費やす価値はありますが、本当に必要なものを実装するのと同時に。

3
kiamlaluno

Hook_perm_alterはなく、これらのアクセス許可はモジュールごとにグループ化されているため、これらのフォームでhook_form_alterを使用する方法が考えられます(メインのフォームと一緒に役割ごとのアクセス許可フォームがあります。同じform_idを使用しているかどうかは不明です) )。

それでも、yourmodule_permを介してパーミッションを定義する必要があります。これにより、他のユーザーがパーミッションの存在を知ることができます。

個人的には、私はそれに対して助言しました。 「このモジュールをインストールして、権限を見つけることができません!ああ、なぜ別のモジュールの権限だったのですか?!!」ということはないので、許可を与えてください。

2
hefox

あなたが求めるものを達成するための2つの方法があります。

hook_form_alterまたはフォームのテーマ関数をオーバーライドする:theme_user_admin_perm

標準のcontribモジュールの場合、モジュールの名前を参照してモジュールの許可を探す傾向があるため、これは良い考えではありません。モジュールが標準のユーザー権限フローにいくつかの変更を加える場合、ユーザーモジュールからのデフォルトの権限とともに追加された権限を表示することは悪い考えではないかもしれません。

1
googletorp