Browse Source

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

gnattu 1 year ago
parent
commit
8c583bbe37

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

@@ -90,7 +90,7 @@ public class PlaystateController : BaseJellyfinApiController
             return NotFound();
             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);
         var dto = UpdatePlayedStatus(user, item, true, datePlayed);
         foreach (var additionalUserInfo in session.AdditionalUsers)
         foreach (var additionalUserInfo in session.AdditionalUsers)
@@ -155,7 +155,7 @@ public class PlaystateController : BaseJellyfinApiController
             return NotFound();
             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);
         var dto = UpdatePlayedStatus(user, item, false, null);
         foreach (var additionalUserInfo in session.AdditionalUsers)
         foreach (var additionalUserInfo in session.AdditionalUsers)

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

@@ -117,10 +117,10 @@ public static class RequestHelpers
         return user.EnableUserPreferenceAccess;
         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(
         var session = await sessionManager.LogSessionActivity(
             httpContext.User.GetClient(),
             httpContext.User.GetClient(),
             httpContext.User.GetVersion(),
             httpContext.User.GetVersion(),