From 1898c1ac93c4adec0cca6162212d2f7a39ef2ae3 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Wed, 29 Apr 2020 19:17:35 +0800 Subject: [PATCH] Get/GetList permission requirement adjustment, close #13 --- .../Products/Categories/CategoryAppService.cs | 16 ++++++++++++++-- .../ProductDetails/ProductDetailAppService.cs | 2 +- .../Products/Products/ProductAppService.cs | 18 +++++++++++++++--- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Categories/CategoryAppService.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Categories/CategoryAppService.cs index 1ad87a72..da8e5c97 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Categories/CategoryAppService.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Categories/CategoryAppService.cs @@ -1,7 +1,9 @@ using System; using System.Linq; +using System.Threading.Tasks; using EasyAbp.EShop.Products.Authorization; using EasyAbp.EShop.Products.Categories.Dtos; +using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; @@ -13,8 +15,8 @@ namespace EasyAbp.EShop.Products.Categories protected override string CreatePolicyName { get; set; } = ProductsPermissions.Categories.Create; protected override string DeletePolicyName { get; set; } = ProductsPermissions.Categories.Delete; protected override string UpdatePolicyName { get; set; } = ProductsPermissions.Categories.Update; - protected override string GetPolicyName { get; set; } = ProductsPermissions.Categories.Default; - protected override string GetListPolicyName { get; set; } = ProductsPermissions.Categories.Default; + protected override string GetPolicyName { get; set; } = null; + protected override string GetListPolicyName { get; set; } = null; private readonly ICategoryRepository _repository; @@ -29,5 +31,15 @@ namespace EasyAbp.EShop.Products.Categories return input.ShowHidden ? query : query.Where(x => !x.IsHidden); } + + public override Task> GetListAsync(GetCategoryListDto input) + { + if (input.ShowHidden) + { + AuthorizationService.CheckAsync(ProductsPermissions.Products.Default); + } + + return base.GetListAsync(input); + } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductDetails/ProductDetailAppService.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductDetails/ProductDetailAppService.cs index 7cffc59a..47818280 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductDetails/ProductDetailAppService.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductDetails/ProductDetailAppService.cs @@ -16,7 +16,7 @@ namespace EasyAbp.EShop.Products.ProductDetails protected override string CreatePolicyName { get; set; } = ProductsPermissions.Products.Create; protected override string DeletePolicyName { get; set; } = ProductsPermissions.Products.Delete; protected override string UpdatePolicyName { get; set; } = ProductsPermissions.Products.Update; - protected override string GetPolicyName { get; set; } = ProductsPermissions.Products.Default; + protected override string GetPolicyName { get; set; } = null; protected override string GetListPolicyName { get; set; } = ProductsPermissions.Products.Default; private readonly IProductRepository _productRepository; diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs index 9be04f1c..84332a1b 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs @@ -7,7 +7,9 @@ using EasyAbp.EShop.Products.ProductCategories; using EasyAbp.EShop.Products.ProductDetails; using EasyAbp.EShop.Products.Products.Dtos; using EasyAbp.EShop.Products.ProductStores; +using Microsoft.AspNetCore.Authorization; using Volo.Abp; +using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Entities; @@ -19,8 +21,8 @@ namespace EasyAbp.EShop.Products.Products protected override string CreatePolicyName { get; set; } = ProductsPermissions.Products.Create; protected override string DeletePolicyName { get; set; } = ProductsPermissions.Products.Delete; protected override string UpdatePolicyName { get; set; } = ProductsPermissions.Products.Update; - protected override string GetPolicyName { get; set; } = ProductsPermissions.Products.Default; - protected override string GetListPolicyName { get; set; } = ProductsPermissions.Products.Default; + protected override string GetPolicyName { get; set; } = null; + protected override string GetListPolicyName { get; set; } = null; private readonly ISerializedAttributeOptionIdsFormatter _serializedAttributeOptionIdsFormatter; private readonly IProductStoreRepository _productStoreRepository; @@ -175,7 +177,17 @@ namespace EasyAbp.EShop.Products.Products return dto; } - + + public override Task> GetListAsync(GetProductListDto input) + { + if (input.ShowHidden) + { + AuthorizationService.CheckAsync(ProductsPermissions.Products.Default); + } + + return base.GetListAsync(input); + } + public async Task DeleteAsync(Guid id, Guid storeId) { await CheckDeletePolicyAsync();