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)] [Authorize(Policy = Policies.RequiresElevation)]
[ProducesResponseType(StatusCodes.Status204NoContent)] [ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult DeleteUser([FromRoute, Required] Guid userId) public async Task<ActionResult> DeleteUser([FromRoute, Required] Guid userId)
{ {
var user = _userManager.GetUserById(userId); var user = _userManager.GetUserById(userId);
_sessionManager.RevokeUserTokens(user.Id, null); _sessionManager.RevokeUserTokens(user.Id, null);
_userManager.DeleteUser(userId); await _userManager.DeleteUserAsync(userId).ConfigureAwait(false);
return NoContent(); return NoContent();
} }

View File

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

View File

@ -93,7 +93,8 @@ namespace MediaBrowser.Controller.Library
/// Deletes the specified user. /// Deletes the specified user.
/// </summary> /// </summary>
/// <param name="userId">The id of the user to be deleted.</param> /// <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> /// <summary>
/// Resets the password. /// Resets the password.