たとえば、ユーザーが使用する権利の対象となるモデルはありますが、ビジネスロジックで使用されるモデルはありません。 exempleについてはMVCソフトウェアアーキテクチャーに権利管理ロジックを配置する場所
:1の項目Aを作成すると 、それがautomaticaly彼がものを作成したい場合
ユーザーがAまたはBを作成する権限を持っている必要があります項目Bを作成します。 しかし、AからBを作成する際のビジネスロジックには、いかなる権利も必要ありません。
私はビジネスロジックに適切なシステムを置くと、セッションに強い依存関係を持つクラスを取得し、ログインしたユーザーには権利がない場合、AはBを作成できません。
権利管理をコントローラーに置くと、プログラマーがアイテムを作成する前に権利をテストするのを忘れる可能性があるため、ビジネスロジックが安全でないように感じられます。また、コントローラが2つあればコードの重複もあります。何らかの理由でアイテムを更新する。
あなたはどこに権利管理を入れますか?
私は、コントローラによって使用されるすべてのオブジェクトの継承を作成し、権利制限を実装しますが、ビジネスロジックはオブジェクト自体にアクセスします。コントローラはUserA、UserBを作成し、オブジェクトAはBオブジェクトを直接作成します。 しかし、私はコントローラーで使用する必要があるすべての単一のビジネスロジックオブジェクトを複製(継承)しなければならないように思えます。ここで
あなたはあなたのクラスの具体的な例を置く必要があるようなことがあります。 Aはユーザーモデルですか? –
ミドルウェアはありますか?サービスを使用してコードを共有することもできます – Farkie