私はいくつかのACL要件を持つWebアプリケーションを作成しています。ユーザはいくつかのアイテムを変更できます。いくつかのアイテムはいくつかのユーザが編集可能で、管理者は何かを編集でき、マネージャは組織内のすべてを編集することができます。承認はモデルまたはコントローラの一部であるべきですか?
私はプレイを使用しています!フレームワークであり、Secure
モジュールの外観では、認可の懸念を置く場所がコントローラにあるようです。ただし、認可の問題はビジネスロジックの一部であるため、モデルに含める必要があります。さらに、私はリファクタリングする必要があるコントローラーで重複したロジックが見え始めています。
一方、モデルに権限を追加すると、モデル内から現在のユーザーを取得する方法が必要になることを意味しますが、これは正しくないようです。代わりに、私はすべてのモデルメソッドに "current_user"パラメータを追加することができますが、それはさらに悪いようです。
だから、よくあることは何ですか?モデルに認証コードを入れることができますか、それともコントローラに保持することはできますか?
だから、それは、グレーの領域、または絶対に正しいですか? :) – itsadok
私の意見では、それは絶対に正しいと思う、しかし、それは灰色の領域であり、したがって解釈に開放されています。したがって、あなたが私の解釈に同意しているかどうかによって異なります。o) – Codemwnci