3

えろー

データベース設定を介していくつかのアクションとコントローラーの制限を制御したい、または制御する必要がありますが、そのような仕事を行うための最良の方法はどれですか?

私の目標は何ですか:多くのユーザーグループ(DBに保存)があり、それらが完全に動的になる(管理パネルから作成および削除される)ソリューションを作成する必要があります。パーミッションはサブグループに継承される必要があるため、ユーザーが役割EditorsChiefを持っている場合、すべてのユーザーに許可されたアクションを実行することもできますEditor。アクション/コントローラーが存在しないため、アクション/コントローラーに注釈を付けることはできませ@Restrict({"EditorsChief", "Editor"})ん(管理パネルでその場で作成されるはずです)。

私の最初の考えは、@Dynamicコントローラーを使用し、もちろんそれらのいくつかをハードコーディングする必要がある個別のハンドラーで制限をグループ化することです。それほど悪いことではありません - いくつかの注意を払えば、非常に優れたスキーマを設定することが可能です (つまり、慣習に従ってハンドラーに名前を付けることにより: 、...handlerControllerActionhandlerControllerOtherAction

あなたの考えは何ですか?私は良い方向に進んでいますか?

4

1 に答える 1

2

この IMO を実行する最善の方法は、動的アノテーションを使用して、それぞれにメソッドの機能を説明する個別の名前を付けることです。コード内の注釈付きメソッドの数は限られているため、これらの名前をデータベースに保存できます (上記で提案したように、パフォーマンスのためにキャッシュすることもできます)。

管理パネルでは、これらの名前をグループ、ロールなどに関連付けて、それに基づいて制御を実行できます。これは、DB での 1 対多の関係になると思います。

これをもっと完全に説明する必要があるかどうか教えてください。

スティーブ (デッドボルトの作者)

于 2012-05-31T07:07:57.563 に答える