Fixed issue with users when disabling then setting admin

Concurrency issue; moved user update from controller to service
This commit is contained in:
rustywave
2022-06-06 18:42:59 -07:00
committed by Andrew Camilleri
parent fcbe1dd8eb
commit 2ad2ce6c3b
2 changed files with 43 additions and 6 deletions

View File

@@ -109,12 +109,15 @@ namespace BTCPayServer.Controllers
if (viewModel.IsAdmin != wasAdmin)
{
if (viewModel.IsAdmin)
await _UserManager.AddToRoleAsync(user, Roles.ServerAdmin);
var success = await _userService.SetAdminUser(user.Id, viewModel.IsAdmin);
if (success)
{
TempData[WellKnownTempData.SuccessMessage] = "User successfully updated";
}
else
await _UserManager.RemoveFromRoleAsync(user, Roles.ServerAdmin);
TempData[WellKnownTempData.SuccessMessage] = "User successfully updated";
{
TempData[WellKnownTempData.ErrorMessage] = "Error updating user";
}
}
return RedirectToAction(nameof(User), new { userId = userId });