ListItem(Sharepoint)がありますが、単純なクラス/エンティティと考えてみましょう。これで、このエンティティのプロパティ名はStatusおよびその他のプロパティになります。
プロパティ/ロール/ステータスごとの承認を実装する必要があります。
例: ロール=マネージャー、フィールド= RequestName、ステータス= 01権限:読み取り、更新
ロール=マネージャー、フィールド= RequestName、ステータス= 05権限:読み取り
ご覧のとおり、承認は基本的に3つの変数に基づいています:役割、ステータス、プロパティ
今、私はUIで、ユーザーがそれを表示または編集できるという事実に基づいて、いくつかのコントロールを無効/非表示にする必要があります。これは、いくつかのSQLテーブルといくつかの結合を使用して簡単に実行できます。
エンティティが30〜100のプロパティを持つ可能性があることを考えると、UIでコントロールを無効/非表示にするときはいつでも知る必要があります。
それが最善のアプローチだと思いますか:
データベースに30回クエリを実行し、ユーザーが特定のプロパティを読み取れるかどうかを確認します
ロールとステータスを指定してすべてのフィールドのアクセス許可をロードし、コレクションをメモリ内でループして、現在のフィールドのアクセス許可を取得します。
パフォーマンス/メモリバランスに興味があります。また、3つの変数(役割/ステータス/プロパティ)が権限を決定することを許可する他の承認アルゴリズムにも門戸を開いています。
ありがとうございました