バックグラウンド:
WPF アプリケーション (MVVM-Light を使用した .NET 4.5) を作成しています
WPF アプリのユーザーにロールが割り当てられている WPF アプリケーションをサポートするデータベースにユーザー ロールを作成しました (つまり、ユーザー、マネージャー、所有者、管理者) 。
私が欲しいもの:
私のクライアントは、役割に基づいて、ユーザーに表示されるものとユーザーができることを制限できるようにしたいと考えています。すべてのユーザーに表示されるビューがいくつかあります。そのため、ユーザーの役割に応じて、一部の視覚要素 (グリッド、ボタンなど) を非表示または無効にする必要があります。
私が持っているもの:
すべてのビューモデルに挿入される IUserService を作成しました。私が作成したロールには、セキュリティ レベル (単純に 1 ~ 5 の整数) を示すフィールドがあります。この数に基づいて視覚要素の可視性を制限できるようにしたいと考えています。
たとえば、私の計画では、要素の可視性をビューモデル (Level1、Level2 など) のブール値プロパティ (boolToVisibility コンバーターを使用) にバインドし、ユーザーのレベルがプロパティと一致するかそれより大きい場合、そのプロパティは true を返します。レベル。
私の懸念:
私の懸念は、これをすべてのビューモデルと必要なすべての視覚要素に実装するのは大変な作業だということです。また、他のビジネス ロジックの影響を受けるいくつかのビジュアル要素が既にあります。
質問:
ユーザーの役割戦略に基づいて、視覚要素を「表示」するユーザーの能力を制限する効率的な方法は何ですか?
この作業を開始する準備はできていますが、ユーザー ロール ベースのセキュリティを WPF アプリケーションに実装する方法について、コミュニティから他のアイデアを聞きたいと思っています。