|
|
|
|
@ -1,9 +1,11 @@
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Microsoft.AspNetCore.Identity;
|
|
|
|
|
using Shouldly;
|
|
|
|
|
using Volo.Abp.Castle.DynamicProxy;
|
|
|
|
|
using Volo.Abp.Uow;
|
|
|
|
|
using Xunit;
|
|
|
|
|
|
|
|
|
|
@ -43,7 +45,9 @@ namespace Volo.Abp.Identity
|
|
|
|
|
using (var uow = _unitOfWorkManager.Begin())
|
|
|
|
|
{
|
|
|
|
|
var user = await _identityUserRepository.FindByNormalizedUserNameAsync(
|
|
|
|
|
_lookupNormalizer.NormalizeName("david"));
|
|
|
|
|
_lookupNormalizer.NormalizeName("david")
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
user.ShouldNotBeNull();
|
|
|
|
|
|
|
|
|
|
var identityResult = await _identityUserManager.SetRolesAsync(user, new List<string>()
|
|
|
|
|
@ -83,5 +87,88 @@ namespace Volo.Abp.Identity
|
|
|
|
|
await uow.CompleteAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task AddDefaultRolesAsync_In_Same_Uow()
|
|
|
|
|
{
|
|
|
|
|
await CreateRandomDefaultRoleAsync();
|
|
|
|
|
|
|
|
|
|
using (var uow = _unitOfWorkManager.Begin())
|
|
|
|
|
{
|
|
|
|
|
var user = CreateRandomUser();
|
|
|
|
|
|
|
|
|
|
(await _identityUserManager.CreateAsync(user)).CheckErrors();
|
|
|
|
|
|
|
|
|
|
user.Roles.Count.ShouldBe(0);
|
|
|
|
|
|
|
|
|
|
await _identityUserManager.AddDefaultRolesAsync(user);
|
|
|
|
|
|
|
|
|
|
user.Roles.Count.ShouldBeGreaterThan(0);
|
|
|
|
|
|
|
|
|
|
foreach (var roleId in user.Roles.Select(r => r.RoleId))
|
|
|
|
|
{
|
|
|
|
|
var role = await _identityRoleRepository.GetAsync(roleId);
|
|
|
|
|
role.IsDefault.ShouldBe(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await uow.CompleteAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task AddDefaultRolesAsync_In_Different_Uow()
|
|
|
|
|
{
|
|
|
|
|
await CreateRandomDefaultRoleAsync();
|
|
|
|
|
|
|
|
|
|
Guid userId;
|
|
|
|
|
|
|
|
|
|
using (var uow = _unitOfWorkManager.Begin())
|
|
|
|
|
{
|
|
|
|
|
var user = CreateRandomUser();
|
|
|
|
|
userId = user.Id;
|
|
|
|
|
|
|
|
|
|
(await _identityUserManager.CreateAsync(user)).CheckErrors();
|
|
|
|
|
user.Roles.Count.ShouldBe(0);
|
|
|
|
|
await uow.CompleteAsync();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using (var uow = _unitOfWorkManager.Begin())
|
|
|
|
|
{
|
|
|
|
|
var user = await _identityUserManager.GetByIdAsync(userId);
|
|
|
|
|
|
|
|
|
|
await _identityUserManager.AddDefaultRolesAsync(user);
|
|
|
|
|
user.Roles.Count.ShouldBeGreaterThan(0);
|
|
|
|
|
|
|
|
|
|
foreach (var roleId in user.Roles.Select(r => r.RoleId))
|
|
|
|
|
{
|
|
|
|
|
var role = await _identityRoleRepository.GetAsync(roleId);
|
|
|
|
|
role.IsDefault.ShouldBe(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await uow.CompleteAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task CreateRandomDefaultRoleAsync()
|
|
|
|
|
{
|
|
|
|
|
await _identityRoleRepository.InsertAsync(
|
|
|
|
|
new IdentityRole(
|
|
|
|
|
Guid.NewGuid(),
|
|
|
|
|
Guid.NewGuid().ToString()
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
IsDefault = true
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static IdentityUser CreateRandomUser()
|
|
|
|
|
{
|
|
|
|
|
return new IdentityUser(
|
|
|
|
|
Guid.NewGuid(),
|
|
|
|
|
Guid.NewGuid().ToString(),
|
|
|
|
|
Guid.NewGuid().ToString() + "@abp.io"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|