アクセス許可ページに特定のモジュール「グループ」にカスタム許可を追加する
質問
カスタムモジュールを使用して、Core/Contributedモジュールをハッキングせずに、[アクセス許可]ページのコア/貢献モジュール「グループ」に許可をどのように追加できますか?
例:
解決
すでに述べたように、別のモジュールによって実装されたアクセス許可を一緒にモジュールによって実装された許可をリストすることは良い考えではありません。ユーザーがcustom_module.moduleなどによって実装されたアクセス許可を見つけることは困難です。これは、user.moduleによって実装されたものと一緒にリストされている場合です。
許可をリストするために使用される順序を本当に変更する必要がある場合(しかし、それは本当に必要ですか)、私は許可のリストの表示方法を変更することをお勧めします:それらを実装するモジュールに基づいてリストする代わりに、あなたは異なる基準に基づいてそれらをリストします。
これを行うには、次のようにする必要があります。
- 埋め込む hook_theme_registry_alter() whenと呼ばれるテーマ関数を変更するには
theme('user_admin_perm')
呼び出されます。 - のコードを見てテーマ関数を実装します theme_user_admin_perm().
それをする価値はありますか?顧客に応じて、可能性があります。
Drupal 7の最初の公式リリースがリリースされ、Drupal 7のコードが変更されることを考慮すると、おそらくそれを行う価値はありません。顧客が管理ページにリストされている権限の順序を変更したい理由を理解し、それが悪い考えである理由を説明したいと思います。顧客が自分の目的のためにコードを実装する必要があると主張する場合、サイトがDrupal 7に渡されたときにコードを書き直す必要があることを理解させます。同じ時間を使用して、それが本当に必要なものを実装するために。
他のヒント
hook_perm_alterはなく、それらの権限はモジュールによってグループ化されているため、それらのフォームにfook_form_alterに到達する方法があります(主なフォームと一緒に役割の許可フォームがあります。同じform_idを使用しているかどうかはわかりません。 )。
他のすべてが許可を知ることができるように、YourModule_Permを介して許可を定義する必要があります。
個人的には、私はそれに対してアドバイスしました。 「このモジュールをインストールして許可を見つけることができない」という場所であなたの許可を与えましょう。
あなたが求めるものを達成するための2つの方法があります。
どちらか hook_form_alter
または、フォームのテーマ関数をオーバーライドすることにより: theme_user_admin_perm
.
標準のコントリブモジュールの場合、人々はその名前を閲覧することでモジュールの許可を探す傾向があるため、これは良い考えではありません。モジュールが標準のユーザー許可フローを変更した場合、ユーザーモジュールのデフォルトの許可とともに追加の許可を表示することは悪い考えではないかもしれません。