Преглед изворни кода

Merge remote-tracking branch 'origin/authenticationdb-efcore' into authenticationdb-efcore

Patrick Barron пре 3 година
родитељ
комит
06d682c296

+ 1 - 1
Emby.Server.Implementations/Session/SessionManager.cs

@@ -293,7 +293,7 @@ namespace Emby.Server.Implementations.Session
                     try
                     {
                         user.LastActivityDate = activityDate;
-                        await _userManager.UpdateUserAsync(user);
+                        await _userManager.UpdateUserAsync(user).ConfigureAwait(false);
                     }
                     catch (DbUpdateConcurrencyException e)
                     {

+ 1 - 0
Jellyfin.Server.Implementations/Devices/DeviceManager.cs

@@ -170,6 +170,7 @@ namespace Jellyfin.Server.Implementations.Devices
         {
             await using var dbContext = _dbProvider.CreateContext();
             var sessions = dbContext.Devices
+                .Include(d => d.User)
                 .AsQueryable()
                 .OrderBy(d => d.DeviceId)
                 .ThenByDescending(d => d.DateLastActivity)

+ 26 - 2
Jellyfin.Server/Migrations/Routines/MigrateAuthenticationDb.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 using System.IO;
 using Emby.Server.Implementations.Data;
 using Jellyfin.Data.Entities.Security;
@@ -53,9 +54,9 @@ namespace Jellyfin.Server.Migrations.Routines
             {
                 using var dbContext = _dbProvider.CreateContext();
 
-                var queryResult = connection.Query("SELECT * FROM Tokens");
+                var authenticatedDevices = connection.Query("SELECT * FROM Tokens");
 
-                foreach (var row in queryResult)
+                foreach (var row in authenticatedDevices)
                 {
                     if (row[6].IsDbNull())
                     {
@@ -83,6 +84,29 @@ namespace Jellyfin.Server.Migrations.Routines
                     }
                 }
 
+                var deviceOptions = connection.Query("SELECT * FROM Devices");
+                var deviceIds = new HashSet<string>();
+                foreach (var row in deviceOptions)
+                {
+                    if (row[2].IsDbNull())
+                    {
+                        continue;
+                    }
+
+                    var deviceId = row[2].ToString();
+                    if (deviceIds.Contains(deviceId))
+                    {
+                        continue;
+                    }
+
+                    deviceIds.Add(deviceId);
+
+                    dbContext.DeviceOptions.Add(new DeviceOptions(deviceId)
+                    {
+                        CustomName = row[1].IsDbNull() ? null : row[1].ToString()
+                    });
+                }
+
                 dbContext.SaveChanges();
             }