1096 次
1 に答える
1
これは、属性ベースのアクセス制御の良い例です。ただし、PHP の実装を見ても構わない場合は、Zend Framework には、アサーションを使用してより特殊なケースを解決する役割ベースのアクセス制御があります。
http://framework.zend.com/manual/en/zend.acl.advanced.html
標準ルールでは、ロールがリソースに対してアクションを実行できます。4 番目のパラメーターを使用すると、特定の条件が満たされた場合にのみルールを適用できます。擬似コード:
allow(member, view, page) // standard
allow(member, view, page, userLivesInMoscow) // assertion used
アサーションは、ユーザーに渡されるオブジェクトです。アサーションが満たされているかどうかを確認するメソッドがあります。
interface Assertion
bool public function assert()
class UserLivesIn implements Assertion
public function UserLivesIn(User, City) ...
// implementation of assert method comes here
これは、必要なものを実装する方法です。
于 2010-05-15T14:46:48.580 に答える