ユーザーポイントに基づいて権限を割り当てる方法は?


7

ユーザーにSOと同様の権限が与えられているサイトを構築しています。2つのモデルで作業しています。

最初のモデルは、ポイントに基づいてユーザーにロールを割り当てます。おそらくルールを使用するか、そのためのモジュールをビルドできます。これの良いところは、Drupalのビルド許可システムを使用できることです。欠点は、おそらく+10​​の役割を設定し、新しい権限を付与する場合はさらに追加する必要があることです。

2番目のモデルは、カスタムビルドモジュール(ビルドではない)に基づいており、ユーザーが意図することをすべて実行できるかどうかを確認します。このようにすれば、すべての役割を回避できますが、Drupalの許可システムを使用しないため、少し不快になります。一方、多くの役割は必要ありません。

では、多くの役割を持つことでパフォーマンスへの影響はありますか?その他の問題?

これについて何か考えはありますか?ユーザーポイントに基づいてユーザーにアクセス許可を与える他のアプローチは?


回答:


5

ロールを使用します。

10個以上のロールの唯一の問題は、権限テーブルが巨大になることですが、ロールごとに制限することでこれを解決でき(ロールリストのリンクを参照)、より高速な権限のようなモジュールを使用できます。

ロールのロードは、カスタムチェックを実行するよりもはるかに高速です。また、このようなことをすると、たとえばモジュールの既存の権限チェックを回避しようとするときなど、問題が発生します。許可システムは、Drupalのコア要素の1つです。それを使用して、それと戦うことを試みないでください。それはうまくいきません。

http://drupal.org/project/userpoints_contribにはUserpoints Roleモジュールがあり、ユーザーが特定のロールに必要なポイント数を構成して、それが機能するようにする必要があります。そこには今でもいくつかのテストがあります。現在、ユーザーに十分なポイントがあるすべての権限が付与されていることに注意してください。これは期待したことではないかもしれませんが、各ロールが持つ追加のアクセス許可を指定するだけで十分であるという利点があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.