Browse Source

Fix ProductDetail permission check.

pull/143/head
gdlcf88 5 years ago
parent
commit
192cbeb8df
  1. 15
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductDetails/ProductDetailAppService.cs

15
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductDetails/ProductDetailAppService.cs

@ -19,14 +19,11 @@ namespace EasyAbp.EShop.Products.ProductDetails
protected override string GetPolicyName { get; set; } = null; protected override string GetPolicyName { get; set; } = null;
protected override string GetListPolicyName { get; set; } = ProductsPermissions.Products.Default; protected override string GetListPolicyName { get; set; } = ProductsPermissions.Products.Default;
private readonly IProductRepository _productRepository;
private readonly IProductDetailRepository _repository; private readonly IProductDetailRepository _repository;
public ProductDetailAppService( public ProductDetailAppService(
IProductRepository productRepository,
IProductDetailRepository repository) : base(repository) IProductDetailRepository repository) : base(repository)
{ {
_productRepository = productRepository;
_repository = repository; _repository = repository;
} }
@ -75,19 +72,17 @@ namespace EasyAbp.EShop.Products.ProductDetails
{ {
await CheckUpdatePolicyAsync(); await CheckUpdatePolicyAsync();
var product = await _productRepository.GetAsync(x => x.ProductDetailId == id); var detail = await GetEntityByIdAsync(id);
await AuthorizationService.CheckMultiStorePolicyAsync(product.StoreId, UpdatePolicyName, await AuthorizationService.CheckMultiStorePolicyAsync(detail.StoreId, UpdatePolicyName,
ProductsPermissions.Products.CrossStore); ProductsPermissions.Products.CrossStore);
if (input.StoreId != product.StoreId) if (input.StoreId != detail.StoreId)
{ {
await AuthorizationService.CheckMultiStorePolicyAsync(input.StoreId, UpdatePolicyName, await AuthorizationService.CheckMultiStorePolicyAsync(input.StoreId, UpdatePolicyName,
ProductsPermissions.Products.CrossStore); ProductsPermissions.Products.CrossStore);
} }
var detail = await GetEntityByIdAsync(id);
MapToEntity(input, detail); MapToEntity(input, detail);
await Repository.UpdateAsync(detail, autoSave: true); await Repository.UpdateAsync(detail, autoSave: true);
@ -99,9 +94,9 @@ namespace EasyAbp.EShop.Products.ProductDetails
{ {
await CheckDeletePolicyAsync(); await CheckDeletePolicyAsync();
var product = await _productRepository.GetAsync(x => x.ProductDetailId == id); var detail = await GetEntityByIdAsync(id);
await AuthorizationService.CheckMultiStorePolicyAsync(product.StoreId, DeletePolicyName, await AuthorizationService.CheckMultiStorePolicyAsync(detail.StoreId, DeletePolicyName,
ProductsPermissions.Products.CrossStore); ProductsPermissions.Products.CrossStore);
await Repository.DeleteAsync(id); await Repository.DeleteAsync(id);

Loading…
Cancel
Save