Преглед на файлове

Allow explicitly set userId for RequestHelpers.GetSession (#11505)

gnattu преди 1 година
родител
ревизия
8c583bbe37
променени са 2 файла, в които са добавени 5 реда и са изтрити 5 реда
  1. 2 2
      Jellyfin.Api/Controllers/PlaystateController.cs
  2. 3 3
      Jellyfin.Api/Helpers/RequestHelpers.cs

+ 2 - 2
Jellyfin.Api/Controllers/PlaystateController.cs

@@ -90,7 +90,7 @@ public class PlaystateController : BaseJellyfinApiController
             return NotFound();
         }
 
-        var session = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext).ConfigureAwait(false);
+        var session = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext, userId).ConfigureAwait(false);
 
         var dto = UpdatePlayedStatus(user, item, true, datePlayed);
         foreach (var additionalUserInfo in session.AdditionalUsers)
@@ -155,7 +155,7 @@ public class PlaystateController : BaseJellyfinApiController
             return NotFound();
         }
 
-        var session = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext).ConfigureAwait(false);
+        var session = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext, userId).ConfigureAwait(false);
 
         var dto = UpdatePlayedStatus(user, item, false, null);
         foreach (var additionalUserInfo in session.AdditionalUsers)

+ 3 - 3
Jellyfin.Api/Helpers/RequestHelpers.cs

@@ -117,10 +117,10 @@ public static class RequestHelpers
         return user.EnableUserPreferenceAccess;
     }
 
-    internal static async Task<SessionInfo> GetSession(ISessionManager sessionManager, IUserManager userManager, HttpContext httpContext)
+    internal static async Task<SessionInfo> GetSession(ISessionManager sessionManager, IUserManager userManager, HttpContext httpContext, Guid? userId = null)
     {
-        var userId = httpContext.User.GetUserId();
-        var user = userManager.GetUserById(userId);
+        userId ??= httpContext.User.GetUserId();
+        var user = userManager.GetUserById(userId.Value);
         var session = await sessionManager.LogSessionActivity(
             httpContext.User.GetClient(),
             httpContext.User.GetVersion(),