ASP.NET MVC の新機能。MVC に完全に固有ではない UI デザインのアイデアを探しています。おそらく正確な答えはありませんが、これが私が始めたことです。
3 つのタブがあるページが必要です。権限 | グループ | ユーザー
1) アクセス許可ビューでは、グリッド内のアクセス許可に対して CRUD 操作を実行できます。特定のアクセス許可の削除は、そのアクセス許可がどのグループでも使用されていない場合にのみ許可されます。
2) グループ ビューでは、グループに対する CRUD 操作がグリッドで許可されます。また、グループのアクセス許可のマッピング (追加/削除) を実行できるアクセス許可リンクも提供されます。グループの削除操作は、グループがユーザーによって使用されていない場合にのみ許可されます。
3) ユーザー ビューでは、システム内のすべての既存のユーザーが表示されます。グリッド ショーでは、ユーザー名、名または姓でユーザーを検索できます。クリックすると、ユーザーのグループをマッピング (追加/削除) できるようにするグループ リンクを各ユーザーに提供する必要があります。同じビューのこのマッピングの下に、IsGranted (true/false) で特定のアクセス許可を追加できるように、アクセス許可オーバーライドの別のセクションを提供する必要があります。
データベース設計の説明:
1) グループには権限が割り当てられます。ユーザーが属するグループに基づいて、ユーザーは権限を取得します。
2) UserPermissionOverrides は、次のシナリオを処理します - ユーザーに特定のアクセス許可を付与する必要がある場合 (ロールに関係なく)、または - ユーザーが特定のグループに属していても、特定のアクセス許可をユーザーから取り消す必要がある場合。これにより、特定のアクセス許可を追加または削除するという特別なシナリオを柔軟に処理できるようになります。
そのため、ユーザーがログインすると、1) 上記が使用されてユーザーのグループ権限が取得され、2) が実行されてオーバーライド (付与/取り消し) が取得されます。1) と 2) を組み合わせると、ユーザーの最終的なアクセス許可が得られ、これがフォーム認証 Cookie に格納されて、それ以上のデータベース ヒットが防止されます。