Skip to content

Commit 82a7420

Browse files
committed
Refine user uniqueness validation logic
1 parent 03d0d78 commit 82a7420

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityUserValidator.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,18 +109,27 @@ protected virtual async Task<IdentityResult> ValidateSharedUserAsync(UserManager
109109
{
110110
using (TenantFilter.Disable())
111111
{
112+
var owner = await manager.FindByIdAsync(user.Id.ToString());
112113
var normalizedUserName = manager.NormalizeName(user.UserName);
113114
var normalizedEmail = manager.NormalizeEmail(user.Email);
114115
var users = await UserRepository.GetUsersByNormalizedUserNamesAsync([normalizedUserName!, normalizedEmail], true);
115-
users.RemoveAll(x => x.Id == user.Id || x.NormalizedUserName == user.NormalizedUserName || x.NormalizedEmail == user.NormalizedEmail);
116+
users.RemoveAll(x => x.Id == user.Id);
117+
if (owner != null)
118+
{
119+
users.RemoveAll(x => x.NormalizedUserName == user.NormalizedUserName || x.NormalizedEmail == user.NormalizedEmail);
120+
}
116121
if (users.Any())
117122
{
118123
var userNames = users.Select(u => u.UserName).ToList();
119124
errors.Add(userNames.Contains(user.UserName) ? ErrorDescriber.DuplicateUserName(user.UserName!) : ErrorDescriber.DuplicateEmail(user.Email!));
120125
}
121126

122127
users = await UserRepository.GetUsersByNormalizedEmailsAsync([normalizedUserName!, normalizedEmail], true);
123-
users.RemoveAll(x => x.Id == user.Id || x.NormalizedUserName == user.NormalizedUserName || x.NormalizedEmail == user.NormalizedEmail);
128+
users.RemoveAll(x => x.Id == user.Id);
129+
if (owner != null)
130+
{
131+
users.RemoveAll(x => x.NormalizedUserName == user.NormalizedUserName || x.NormalizedEmail == user.NormalizedEmail);
132+
}
124133
if (users.Any())
125134
{
126135
var emails = users.Select(u => u.Email).ToList();

0 commit comments

Comments
 (0)