2011-12-14 6 views
3

私は新しいアプリケーションを構築しており、それに合わせて権限フレームワークが必要です。私たちは、ユーザーが唯一知っているかもしれないと言うのアクセスルールを設定することができるようにしたいリスティングリソースを許可する良いPHP権限フレームワークは何ですか?

user 
---- 
id 
role 
type 

resource 
---- 
id 
name 
type 

:データモデルで

: は、ここではそれをサポートするために必要なものの一つの簡単な例です管理者の役割を持たない限り、すべてのリソースを同じタイプのものと見なします(その場合、すべてを見ることができます)。そして、私たちは、 "このユーザーが知っているすべてのリソース"の検索可能な/ページング可能なリストを取得できるようにしたいと考えています。 (リソースが50万あるとしましょう)

私はZend_aclにこの問題を解決しようとしましたが、私はzend_aclですべてのルールを定義できると思っていますが、それはリソース単位であり、適切なサポートはありませんのリストをリソースから解放し、確かにメモリに優しい方法ではありません(10リソースを一度に表示し、ページングするなど)。

したがって、これらのようなリレーションシップベースのルール(リストとは対照的)をサポートする良いPHP権限フレームワークは何ですか?

+0

可能な複製http://stackoverflow.com/questions/370371/recommend-a-php-acl-class。 – cmbuckley

+0

私はACLが私のニーズを満たしていないと信じているので、私は反対します。私がそこで靴を履く方法を見逃していない限り、私は離散リストベースのシステムの代わりにルールベースのシステムが必要です。 私は、zend_aclのようなACL内で目標を達成する方法について提案しています。 :) – VexedPanda

答えて

3

あなたの目的に合わせて拡張することができれば、ACLを使用することができます。たとえば、Zend_Aclでは、リソースベースの動作を無効にするために使用できるwrite your own ACL assertionsを使用できます。 Zend_Aclを拡張して、そのユーザが利用できるすべてのリソースのリストを提供することもできます。

+0

目的は、ハードコードのアクセス許可ルールから離れ、代わりにDBなどのユーザー変更可能なシステムでそれらを定義することです。私は、ACLの許可に基づいて特定のハードコーディングされたチェックを実行したアサーションを使って何かを設計できると考えていますが、計画にかなりの余裕があるように思えます。 。 – VexedPanda

+0

申し訳ありませんが、クリスマスの休憩は私の気を散らしました。これを読んで、私はzend_aclが私の根本的な質問に答えるとは思わない。特定のアサーションを満たすリソースを_LIST_できますか?私は確かにすべてのリソースを読み込み、それぞれのACLチェックを実行してそのリストを構築するつもりはありません。あなたはZend_Aclの拡張について言及していますが、私はアプローチについてのヒントを見つけることができませんでしたので、私の質問には答えられません。 – VexedPanda

+0

この機能は、Zend_Aclの拡張機能にあります。 ACLはデータベースに保持されます。リスティングが必要な場合は、データベースに問い合わせます。私はこれがあなたの元の質問に答えることはできませんが、必要な機能を実装する必要がありました。 – cmbuckley

関連する問題