Browse Source
Merge pull request #20663 from abpframework/auto-merge/rel-8-3/2953
Merge branch dev with rel-8.3
pull/20672/head
maliming
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
33 additions and
0 deletions
-
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityUserValidator.cs
-
modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/AbpIdentityUserValidator_Tests.cs
|
|
|
@ -41,6 +41,24 @@ namespace Volo.Abp.Identity |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var email = await manager.GetEmailAsync(user); |
|
|
|
if (email == null) |
|
|
|
{ |
|
|
|
errors.Add(describer.InvalidEmail(null)); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
var owner = await manager.FindByNameAsync(email); |
|
|
|
if (owner != null && !string.Equals(await manager.GetUserIdAsync(owner), await manager.GetUserIdAsync(user))) |
|
|
|
{ |
|
|
|
errors.Add(new IdentityError |
|
|
|
{ |
|
|
|
Code = "InvalidEmail", |
|
|
|
Description = Localizer["Volo.Abp.Identity:InvalidEmail", email] |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return errors.Count > 0 ? IdentityResult.Failed(errors.ToArray()) : IdentityResult.Success; |
|
|
|
} |
|
|
|
|
|
|
|
@ -33,4 +33,19 @@ public class AbpIdentityUserValidator_Tests : AbpIdentityAspNetCoreTestBase |
|
|
|
identityResult.Errors.First().Code.ShouldBe("InvalidUserName"); |
|
|
|
identityResult.Errors.First().Description.ShouldBe(Localizer["InvalidUserName", "user1@volosoft.com"]); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task Can_Not_Use_Another_Users_Name_As_Your_Email_Test() |
|
|
|
{ |
|
|
|
var user1 = new IdentityUser(Guid.NewGuid(), "user1@volosoft.com", "user@volosoft.com"); |
|
|
|
var identityResult = await _identityUserManager.CreateAsync(user1); |
|
|
|
identityResult.Succeeded.ShouldBeTrue(); |
|
|
|
|
|
|
|
var user2 = new IdentityUser(Guid.NewGuid(), "user2", "user1@volosoft.com"); |
|
|
|
identityResult = await _identityUserManager.CreateAsync(user2); |
|
|
|
identityResult.Succeeded.ShouldBeFalse(); |
|
|
|
identityResult.Errors.Count().ShouldBe(1); |
|
|
|
identityResult.Errors.First().Code.ShouldBe("InvalidEmail"); |
|
|
|
identityResult.Errors.First().Description.ShouldBe(Localizer["Volo.Abp.Identity:InvalidEmail", "user1@volosoft.com"]); |
|
|
|
} |
|
|
|
} |
|
|
|
|