Zend\Permissions\Acl
Zend の ACL ( ) を、静的ロール (のみ) に基づくだけでなく、(可変) ユーザー ポイントにも基づいて使用したいと考えています。
私のアプリケーションでは、すべてのユーザーがポイントを持っています。リソースには、それを表示するために必要な最小限のポイントがあります。リソースへのアクセスは、ユーザーが現在持っているポイント数に基づいている必要があります。
例
資力:
- リソース 1: 20 ポイント
- リソース 2: 100 ポイント
- リソース 3: 150 ポイント
ユーザー:
- ユーザー 1: 70 ポイント => リソース 1 へのアクセス
- ユーザー 2: 135 ポイント => リソース 1、2 へのアクセス
- ユーザー 3: 170 ポイント => リソース 1、2、3 へのアクセス
これを行う最良の方法は何ですか?
これまでの私の考え
- 現在ログインしているユーザーのポイントに基づいて動的に ACL オブジェクトを作成します (ポイントに
$acl->allow()
基づいてそれぞれ設定)。これはきれいではありません。 - 汎用 ACL を作成し、何らかの方法でユーザーのポイントを渡します (私はアサーションでそれを行うことができました。以下の私の回答を参照してください。)
- ここで提案されているいくつかの(おそらくより簡単でクリーンな)方法...
正しい方向にプッシュしていただければ幸いです:)