次のような UserProfile モデルがあります。
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Position { get; set; }
public string Authority { get; set; }
public string Service { get; set; }
public string Area { get; set; }
public int IsWrite { get; set; }
}
テーブル データは次のようになります。
ユーザー ID | 使用名 | ポジション | 権限 | サービス | エリア | IsWrite
1 | ピーター | ピーター | HSKマネージャー | サービス Ar | HSK| わ | 0
2 | ドロシー | ドロシー 支店長| アー | すべて | EA |1
3 |マイク | HSK ディレクター | サービス | HSK| すべて | 0
4 | ロッデル | HSK データ入力 | サービス | HSK| すべて | 1
5 | スーザン| WA データ入力 |Ar | すべて | わ | 1
6 | ナンシー| 施設COO | すべて | すべて | すべて | 0
7 | アラン | アラン | フード ブランチ マネージャー | サービス Ar | FSD | FSD | EA | EA | 0
ユーザーにはさまざまな種類の権限範囲があります。たとえば、1 つは特定のサービスに対する権限を持ち、もう 1 つは特定の領域に対する権限を持ち、ユーザーはサービスと領域の両方に関するレコードを表示する権限を持つ場合があります。各 List コントローラー アクションのロジックを作成して、UserProfile 権限をチェックし、各ユーザーの権限の範囲を考慮してデータを一覧表示したいと考えています。
これは、データがプロジェクトと呼ばれるユーザーの権限に依存する別のモデルです。
public class Projects
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ProjectID { get; set; }
public string Service { get; set; }
public string Area { get; set; }
[Required]
[DisplayName("Project Name")]
public string ProjectName { get; set; }
[Required]
[DataType(DataType.Currency)]
[DisplayName("Contract Value")]
public double ContractValue { get; set; }
[Required]
[DisplayName ("Contract Total MP")]
public int ContractMP { get; set; }
[Editable(false)]
public int UserID { get; set; }
[DataType(DataType.DateTime )]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime EntryDateTime { get; set; }
}
プロジェクト コントローラの「インデックス」アクションの先頭にロジックを配置して、ユーザーの権限を検証したいと考えています。「Svr」の場合はサービスのデータのみを表示し、権限が「Ar」の場合はエリアのデータのみを表示し、権限が「Svr-Ar」の場合はサービスとエリアのデータのみを表示します彼の権限が「すべて」の場合、すべてのデータが表示されます。
これを行うために多くの方法を試しましたが、できませんでした。MVC は初めてです。私を助けてください。よろしく。