Open Source Web Application Framework for ASP.NET Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

64 lines
2.5 KiB

using Microsoft.AspNetCore.Identity;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;
using Volo.Abp.PermissionManagement;
namespace Volo.Abp.Identity
{
public class TestPermissionDataBuilder : ITransientDependency
{
private readonly IGuidGenerator _guidGenerator;
private readonly IIdentityUserRepository _userRepository;
private readonly IPermissionGrantRepository _permissionGrantRepository;
private readonly ILookupNormalizer _lookupNormalizer;
public TestPermissionDataBuilder(
IGuidGenerator guidGenerator,
IIdentityUserRepository userRepository,
IPermissionGrantRepository permissionGrantRepository,
ILookupNormalizer lookupNormalizer)
{
_guidGenerator = guidGenerator;
_userRepository = userRepository;
_permissionGrantRepository = permissionGrantRepository;
_lookupNormalizer = lookupNormalizer;
}
public void Build()
{
AddRolePermissions();
AddUserPermissions();
}
private void AddRolePermissions()
{
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, "admin");
AddPermission(TestPermissionNames.MyPermission2, RolePermissionValueProvider.ProviderName, "admin");
AddPermission(TestPermissionNames.MyPermission2_ChildPermission1, RolePermissionValueProvider.ProviderName, "admin");
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, "moderator");
AddPermission(TestPermissionNames.MyPermission2, RolePermissionValueProvider.ProviderName, "moderator");
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, "supporter");
}
private void AddUserPermissions()
{
var david = _userRepository.FindByNormalizedUserName(_lookupNormalizer.Normalize("david"));
AddPermission(TestPermissionNames.MyPermission1, UserPermissionValueProvider.ProviderName, david.Id.ToString());
}
private void AddPermission(string permissionName, string providerName, string providerKey)
{
_permissionGrantRepository.Insert(
new PermissionGrant(
_guidGenerator.Create(),
permissionName,
providerName,
providerKey
)
);
}
}
}