0

アーキテクチャの問題に直面しています。

一部のリソースで阻止と承認を行っているユーザーの権利を管理する必要があります。

リソースに実際に適用される権利を取得する方法が必要です(禁止は承認よりも優先されます)。

get_rights(user)メソッドを持つRightsManagerクラスを使用するか、get_rights()メソッドを使用するUserクラスを使用する方がよいでしょうか。

2番目のソリューションはパラメーターが少ないので優れていると思いますが、モデルUserクラスに権利管理があるのは奇妙です。クラスRightsManagerに含めるのがより論理的ではありませんか?

私のプログラムはPythonですが、それは問題ではないと思います。

4

1 に答える 1

0

ユーザーエンティティは権限なしで存在する可能性があるため、ユーザーと権限を結合しない方がよいでしょう。ユーザーとは別に権限を維持し、get_rightsを呼び出すときにユーザーをパラメーターとして渡します。これが冗長であることが判明した場合は、RightsManagerをUserRightsManagerのようなものに拡張できます。この場合、初期化中にユーザーを渡すことができ、ユーザーは権限を照会するときに内部で使用できます。

私はパスでZend_Aclを非常に広範囲に使用し、それらのアーキテクチャが非常に直感的で効果的であることがわかりました。おそらく、さらに進む前にそれをチェックしたいかもしれませんhttp://framework.zend.com/manual/1.12/en/zend.acl.advanced.html

于 2013-02-05T08:31:01.580 に答える