Browse Source

microservice demo: added product permissions

pull/746/head
Yunus Emre Kalkan 7 years ago
parent
commit
46ad9fe360
  1. 7
      samples/MicroserviceDemo/modules/product/src/ProductManagement.Application.Contracts/MyCompanyName/ProductManagement/ProductManagementPermissionDefinitionProvider.cs
  2. 14
      samples/MicroserviceDemo/modules/product/src/ProductManagement.Application.Contracts/MyCompanyName/ProductManagement/ProductManagementPermissions.cs
  3. 5
      samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/MyCompanyName/ProductManagement/ProductAppService.cs

7
samples/MicroserviceDemo/modules/product/src/ProductManagement.Application.Contracts/MyCompanyName/ProductManagement/ProductManagementPermissionDefinitionProvider.cs

@ -8,7 +8,12 @@ namespace ProductManagement
{
public override void Define(IPermissionDefinitionContext context)
{
//var moduleGroup = context.AddGroup(ProductManagementPermissions.GroupName, L("Permission:ProductManagement"));
var productManagementGroup = context.AddGroup(ProductManagementPermissions.GroupName, L("Permission:ProductManagement"));
var products = productManagementGroup.AddPermission(ProductManagementPermissions.Products.Default, L("Permission:Products"));
products.AddChild(ProductManagementPermissions.Products.Update, L("Permission:Edit"));
products.AddChild(ProductManagementPermissions.Products.Delete, L("Permission:Delete"));
products.AddChild(ProductManagementPermissions.Products.Create, L("Permission:Create"));
}
private static LocalizableString L(string name)

14
samples/MicroserviceDemo/modules/product/src/ProductManagement.Application.Contracts/MyCompanyName/ProductManagement/ProductManagementPermissions.cs

@ -4,11 +4,23 @@
{
public const string GroupName = "ProductManagement";
public static class Products
{
public const string Default = GroupName + ".Product";
public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update";
public const string Create = Default + ".Create";
}
public static string[] GetAll()
{
return new[]
{
GroupName
GroupName,
Products.Default,
Products.Delete,
Products.Update,
Products.Create
};
}
}

5
samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/MyCompanyName/ProductManagement/ProductAppService.cs

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using ProductManagement;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
@ -8,6 +9,7 @@ using Volo.Abp.Domain.Repositories;
namespace ProductManagement
{
[Authorize(ProductManagementPermissions.Products.Default)]
public class ProductAppService : ApplicationService, IProductAppService
{
private readonly ProductManager _productManager;
@ -46,6 +48,7 @@ namespace ProductManagement
return ObjectMapper.Map<Product, ProductDto>(product);
}
[Authorize(ProductManagementPermissions.Products.Create)]
public async Task<ProductDto> CreateAsync(CreateProductDto input)
{
var product = await _productManager.CreateAsync(input.Code, input.Name, input.Price, input.StockCount);
@ -53,6 +56,7 @@ namespace ProductManagement
return ObjectMapper.Map<Product, ProductDto>(product);
}
[Authorize(ProductManagementPermissions.Products.Update)]
public async Task<ProductDto> UpdateAsync(Guid id, UpdateProductDto input)
{
var product = await _productRepository.GetAsync(id);
@ -64,6 +68,7 @@ namespace ProductManagement
return ObjectMapper.Map<Product, ProductDto>(product);
}
[Authorize(ProductManagementPermissions.Products.Delete)]
public async Task DeleteAsync(Guid id)
{
await _productRepository.DeleteAsync(id);

Loading…
Cancel
Save