| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Threading.Tasks;
 
- using Jellyfin.Database.Implementations;
 
- using Jellyfin.Database.Implementations.Entities.Security;
 
- using MediaBrowser.Controller.Security;
 
- using Microsoft.EntityFrameworkCore;
 
- namespace Jellyfin.Server.Implementations.Security
 
- {
 
-     /// <inheritdoc />
 
-     public class AuthenticationManager : IAuthenticationManager
 
-     {
 
-         private readonly IDbContextFactory<JellyfinDbContext> _dbProvider;
 
-         /// <summary>
 
-         /// Initializes a new instance of the <see cref="AuthenticationManager"/> class.
 
-         /// </summary>
 
-         /// <param name="dbProvider">The database provider.</param>
 
-         public AuthenticationManager(IDbContextFactory<JellyfinDbContext> dbProvider)
 
-         {
 
-             _dbProvider = dbProvider;
 
-         }
 
-         /// <inheritdoc />
 
-         public async Task CreateApiKey(string name)
 
-         {
 
-             var dbContext = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
 
-             await using (dbContext.ConfigureAwait(false))
 
-             {
 
-                 dbContext.ApiKeys.Add(new ApiKey(name));
 
-                 await dbContext.SaveChangesAsync().ConfigureAwait(false);
 
-             }
 
-         }
 
-         /// <inheritdoc />
 
-         public async Task<IReadOnlyList<AuthenticationInfo>> GetApiKeys()
 
-         {
 
-             var dbContext = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
 
-             await using (dbContext.ConfigureAwait(false))
 
-             {
 
-                 return await dbContext.ApiKeys
 
-                     .Select(key => new AuthenticationInfo
 
-                     {
 
-                         AppName = key.Name,
 
-                         AccessToken = key.AccessToken,
 
-                         DateCreated = key.DateCreated,
 
-                         DeviceId = string.Empty,
 
-                         DeviceName = string.Empty,
 
-                         AppVersion = string.Empty
 
-                     }).ToListAsync().ConfigureAwait(false);
 
-             }
 
-         }
 
-         /// <inheritdoc />
 
-         public async Task DeleteApiKey(string accessToken)
 
-         {
 
-             var dbContext = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
 
-             await using (dbContext.ConfigureAwait(false))
 
-             {
 
-                 await dbContext.ApiKeys
 
-                     .Where(apiKey => apiKey.AccessToken == accessToken)
 
-                     .ExecuteDeleteAsync()
 
-                     .ConfigureAwait(false);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |