59 lines
2.8 KiB
C#
59 lines
2.8 KiB
C#
namespace Wishlist.Data;
|
|
|
|
public static class ProjectRoles
|
|
{
|
|
public static ProjectRole UserRole => new("User", "USER", "User Role");
|
|
public static ProjectRole AdminRole => new("Admin", "ADMIN", "Admin Role");
|
|
|
|
public static ProjectRole[] Roles => [UserRole, AdminRole];
|
|
}
|
|
|
|
public static class ProjectPolicies
|
|
{
|
|
public static ProjectPolicy BlogPostCreateClaimPolicy => new(nameof(BlogPostCreateClaimPolicy), [ProjectClaims.BlogPostCreate]);
|
|
public static ProjectPolicy BlogPostReadClaimPolicy => new(nameof(BlogPostReadClaimPolicy), [ProjectClaims.BlogPostRead]);
|
|
public static ProjectPolicy BlogPostUpdateClaimPolicy => new(nameof(BlogPostUpdateClaimPolicy), [ProjectClaims.BlogPostUpdate]);
|
|
public static ProjectPolicy BlogPostDeleteClaimPolicy => new(nameof(BlogPostDeleteClaimPolicy), [ProjectClaims.BlogPostDelete]);
|
|
|
|
public static ProjectPolicy WishlistViewPolicy => new(nameof(WishlistViewPolicy), [ProjectClaims.WishlistView]);
|
|
public static ProjectPolicy WishlistCreatePolicy => new(nameof(WishlistCreatePolicy), [ProjectClaims.WishlistCreate]);
|
|
public static ProjectPolicy WishlistMarkAsBuyingPolicy => new(nameof(WishlistMarkAsBuyingPolicy), [ProjectClaims.WishlistMarkAsBuying]);
|
|
}
|
|
|
|
public static class ProjectClaims
|
|
{
|
|
public static ProjectClaim BlogPostCreate => new("BlogPost", "Create");
|
|
public static ProjectClaim BlogPostRead => new("BlogPost", "Read");
|
|
public static ProjectClaim BlogPostUpdate => new("BlogPost", "Update");
|
|
public static ProjectClaim BlogPostDelete => new("BlogPost", "Delete");
|
|
|
|
public static ProjectClaim WishlistView => new("Wishlist", "View");
|
|
public static ProjectClaim WishlistCreate => new("Wishlist", "Create");
|
|
public static ProjectClaim WishlistMarkAsBuying => new("Wishlist", "MarkAsBuying");
|
|
|
|
public static List<ProjectClaim> GetBlogPostClaims => [BlogPostCreate, BlogPostRead, BlogPostUpdate, BlogPostDelete];
|
|
|
|
public static List<ProjectClaim> GetWishlistClaims => [WishlistView, WishlistCreate, WishlistMarkAsBuying];
|
|
|
|
public static List<List<ProjectClaim>> GetAllClaims = [GetBlogPostClaims, GetWishlistClaims];
|
|
}
|
|
|
|
public class ProjectPolicy(string name, ProjectClaim[] requiredClaims)
|
|
{
|
|
public string Name { get; set; } = name;
|
|
public ProjectClaim[] RequiredClaims { get; set; } = requiredClaims;
|
|
public ProjectRole[] RequiredRoles { get; set; } = [];
|
|
}
|
|
|
|
public class ProjectClaim(string type, string value)
|
|
{
|
|
public string Type { get; set; } = type;
|
|
public string Value { get; set; } = value;
|
|
}
|
|
|
|
public class ProjectRole(string roleName, string normalizedName, string description)
|
|
{
|
|
public string RoleName { get; set; } = roleName;
|
|
public string NormalizedName { get; set; } = normalizedName;
|
|
public string Description { get; set; } = description;
|
|
} |