Merge pull request #4766 from barronpm/usermanager-async

Convert DeleteUser to async
This commit is contained in:
Bond-009 2020-12-11 21:29:20 +01:00 committed by GitHub
commit 04ba59ab40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 7 deletions

View File

@ -133,11 +133,11 @@ namespace Jellyfin.Api.Controllers
[Authorize(Policy = Policies.RequiresElevation)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult DeleteUser([FromRoute, Required] Guid userId)
public async Task<ActionResult> DeleteUser([FromRoute, Required] Guid userId)
{
var user = _userManager.GetUserById(userId);
_sessionManager.RevokeUserTokens(user.Id, null);
_userManager.DeleteUser(userId);
await _userManager.DeleteUserAsync(userId).ConfigureAwait(false);
return NoContent();
}

View File

@ -220,7 +220,7 @@ namespace Jellyfin.Server.Implementations.Users
}
/// <inheritdoc/>
public void DeleteUser(Guid userId)
public async Task DeleteUserAsync(Guid userId)
{
if (!_users.TryGetValue(userId, out var user))
{
@ -246,7 +246,7 @@ namespace Jellyfin.Server.Implementations.Users
nameof(userId));
}
using var dbContext = _dbProvider.CreateContext();
await using var dbContext = _dbProvider.CreateContext();
// Clear all entities related to the user from the database.
if (user.ProfileImage != null)
@ -258,10 +258,10 @@ namespace Jellyfin.Server.Implementations.Users
dbContext.RemoveRange(user.Preferences);
dbContext.RemoveRange(user.AccessSchedules);
dbContext.Users.Remove(user);
dbContext.SaveChanges();
await dbContext.SaveChangesAsync().ConfigureAwait(false);
_users.Remove(userId);
_eventManager.Publish(new UserDeletedEventArgs(user));
await _eventManager.PublishAsync(new UserDeletedEventArgs(user)).ConfigureAwait(false);
}
/// <inheritdoc/>

View File

@ -93,7 +93,8 @@ namespace MediaBrowser.Controller.Library
/// Deletes the specified user.
/// </summary>
/// <param name="userId">The id of the user to be deleted.</param>
void DeleteUser(Guid userId);
/// <returns>A task representing the deletion of the user.</returns>
Task DeleteUserAsync(Guid userId);
/// <summary>
/// Resets the password.