Browse Source

microservice demo: added product permissions

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

Loading…
Cancel
Save