From ca7601e218f8d41f399c20e87d10920493f994f4 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Sat, 20 Jun 2026 23:23:29 -0500 Subject: [PATCH] Mutate user from UserManager queries Fixes #412 --- LANCommander.Server.Services/UserService.cs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/LANCommander.Server.Services/UserService.cs b/LANCommander.Server.Services/UserService.cs index 2ee0919e..630d62cb 100644 --- a/LANCommander.Server.Services/UserService.cs +++ b/LANCommander.Server.Services/UserService.cs @@ -168,17 +168,15 @@ namespace LANCommander.Server.Services public async Task AddToRoleAsync(string userName, string roleName) { - var user = await GetAsync(userName); - using var identityContext = await _identityContextFactory.CreateAsync(); + var user = await identityContext.UserManager.FindByNameAsync(userName); await identityContext.UserManager.AddToRoleAsync(user, roleName); } public async Task AddToRolesAsync(string userName, IEnumerable roleNames) { - var user = await GetAsync(userName); - using var identityContext = await _identityContextFactory.CreateAsync(); + var user = await identityContext.UserManager.FindByNameAsync(userName); var result = await identityContext.UserManager.AddToRolesAsync(user, roleNames); await Cache.RemoveByTagAsync(["User/Security", "User/Roles", $"User/{user.Id}", $"Library/{user.Id}"]); @@ -189,17 +187,15 @@ namespace LANCommander.Server.Services public async Task RemoveFromRole(string userName, string roleName) { - var user = await GetAsync(userName); - using var identityContext = await _identityContextFactory.CreateAsync(); + var user = await identityContext.UserManager.FindByNameAsync(userName); await identityContext.UserManager.RemoveFromRoleAsync(user, roleName); } public async Task CheckPassword(string userName, string password) { - var user = await GetAsync(userName); - using var identityContext = await _identityContextFactory.CreateAsync(); + var user = await identityContext.UserManager.FindByNameAsync(userName); return await identityContext.UserManager.CheckPasswordAsync(user, password); } @@ -235,9 +231,8 @@ namespace LANCommander.Server.Services public async Task ChangePassword(string userName, string currentPassword, string newPassword) { - var user = await GetAsync(userName); - using var identityContext = await _identityContextFactory.CreateAsync(); + var user = await identityContext.UserManager.FindByNameAsync(userName); var result = await identityContext.UserManager.ChangePasswordAsync(user, currentPassword, newPassword); return result; @@ -251,9 +246,9 @@ namespace LANCommander.Server.Services public async Task ChangePassword(string userName, string newPassword, bool bypassPolicy) { IdentityResult result; - var user = await GetAsync(userName); using var identityContext = await _identityContextFactory.CreateAsync(); + var user = await identityContext.UserManager.FindByNameAsync(userName); if (bypassPolicy && identityContext.UserManager.PasswordValidators.Any()) {