mirror of https://github.com/abpframework/abp
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.
97 lines
3.7 KiB
97 lines
3.7 KiB
using Volo.Abp.Authorization.Permissions;
|
|
using Volo.Abp.DependencyInjection;
|
|
using Volo.Abp.Guids;
|
|
using Volo.Abp.Permissions;
|
|
|
|
namespace Volo.Abp.Identity
|
|
{
|
|
public class AbpIdentityTestDataBuilder : ITransientDependency
|
|
{
|
|
private readonly IGuidGenerator _guidGenerator;
|
|
private readonly IIdentityUserRepository _userRepository;
|
|
private readonly IIdentityRoleRepository _roleRepository;
|
|
private readonly IPermissionGrantRepository _permissionGrantRepository;
|
|
|
|
private IdentityRole _adminRole;
|
|
private IdentityRole _moderator;
|
|
private IdentityRole _supporterRole;
|
|
private IdentityUser _adminUser;
|
|
private IdentityUser _john;
|
|
private IdentityUser _david;
|
|
|
|
public AbpIdentityTestDataBuilder(
|
|
IGuidGenerator guidGenerator,
|
|
IIdentityUserRepository userRepository,
|
|
IIdentityRoleRepository roleRepository,
|
|
IPermissionGrantRepository permissionGrantRepository)
|
|
{
|
|
_guidGenerator = guidGenerator;
|
|
_userRepository = userRepository;
|
|
_roleRepository = roleRepository;
|
|
_permissionGrantRepository = permissionGrantRepository;
|
|
}
|
|
|
|
public void Build()
|
|
{
|
|
AddRoles();
|
|
AddRolePermissions();
|
|
AddUsers();
|
|
AddUserPermissions();
|
|
}
|
|
|
|
private void AddRoles()
|
|
{
|
|
_adminRole = new IdentityRole(_guidGenerator.Create(), "admin");
|
|
_moderator = new IdentityRole(_guidGenerator.Create(), "moderator");
|
|
_supporterRole = new IdentityRole(_guidGenerator.Create(), "supporter");
|
|
|
|
_roleRepository.Insert(_adminRole);
|
|
_roleRepository.Insert(_moderator);
|
|
_roleRepository.Insert(_supporterRole);
|
|
}
|
|
|
|
private void AddRolePermissions()
|
|
{
|
|
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, _adminRole.Name);
|
|
AddPermission(TestPermissionNames.MyPermission2, RolePermissionValueProvider.ProviderName, _adminRole.Name);
|
|
AddPermission(TestPermissionNames.MyPermission2_ChildPermission1, RolePermissionValueProvider.ProviderName, _adminRole.Name);
|
|
|
|
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, _moderator.Name);
|
|
AddPermission(TestPermissionNames.MyPermission2, RolePermissionValueProvider.ProviderName, _moderator.Name);
|
|
|
|
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, _supporterRole.Name);
|
|
}
|
|
|
|
private void AddUsers()
|
|
{
|
|
_adminUser = new IdentityUser(_guidGenerator.Create(), "administrator");
|
|
_adminUser.AddRole(_adminRole.Id);
|
|
_userRepository.Insert(_adminUser);
|
|
|
|
_john = new IdentityUser(_guidGenerator.Create(), "john.nash");
|
|
_john.AddRole(_moderator.Id);
|
|
_john.AddRole(_supporterRole.Id);
|
|
_userRepository.Insert(_john);
|
|
|
|
_david = new IdentityUser(_guidGenerator.Create(), "david");
|
|
_userRepository.Insert(_david);
|
|
}
|
|
|
|
private void AddUserPermissions()
|
|
{
|
|
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
|
|
)
|
|
);
|
|
}
|
|
}
|
|
} |