2017-10-31 8 views
0

私は建築的な質問があります。特定の操作のユーザー権限はどこでチェックする必要がありますか?例えばWebサービスでアクセス許可をどこでチェックする必要がありますか?

1)コントローラで、Iビューからパラメータを取得し、中間モデルの処理を開始します。

2)中間モデルどのような方法で変換し、変換されるべきパラメータ決定及び変更またはだと思います

が適切な場所である

3)モデルは、データベースと直接通信

モデルを介してデータを作成しますその "アーキテクチャ"は、例えばデータベースにsthを保存する権限をチェックする?

enter image description here

答えて

1

コントローラが呼び出される前に、私は実際に(私は本当に古い記事を更新する必要があります)hereを説明ちょっとのように、認可チェックを入れます。コントローラインスタンスの周りのデコレータとして、ユーザが何か操作を許可されているかどうかをきめ細かく制御できることが好ましいでしょう。コントローラ+メソッドペアに基づいています。

また、関連する操作を実行できないユーザーからUI要素を表示または非表示にする必要があるため、テンプレートで使用する「承認ルックアップ」ヘルパー機能を考えることもできます。 コントローラ+メソッドチェックは実行前に実際の安全対策として機能しますが、それは生活の質を向上させる傾向があります。それが今度はミスを引き起こす可能性がありますコピー&ペーストの過剰量を、促進する傾向があり、大きな問題となっているため

あなたは、各コントローラまたは(さらに悪い)モデル層の内部認証チェックを入れない必要がありますあなたの認証システムの仕組みを変更したいとき。

関連する問題