diff options
| author | Bond-009 <bond.009@outlook.com> | 2023-08-01 20:26:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-01 20:26:21 +0200 |
| commit | 07727e1d63dd4623dcb03cfa2fb2db2866c920f4 (patch) | |
| tree | 6099d4314da122c8929572c5cfbaf22b871e2b82 /Jellyfin.Api/WebSocketListeners/SessionInfoWebSocketListener.cs | |
| parent | 57b9e500c2842e02c284573dada057d6350611b3 (diff) | |
| parent | 4bb17039d70683e8a159db92823fed6d992e2fe4 (diff) | |
Merge pull request #9875 from Shadowghost/fixes
Diffstat (limited to 'Jellyfin.Api/WebSocketListeners/SessionInfoWebSocketListener.cs')
| -rw-r--r-- | Jellyfin.Api/WebSocketListeners/SessionInfoWebSocketListener.cs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Jellyfin.Api/WebSocketListeners/SessionInfoWebSocketListener.cs b/Jellyfin.Api/WebSocketListeners/SessionInfoWebSocketListener.cs index 0d8bf205c..b403ff46d 100644 --- a/Jellyfin.Api/WebSocketListeners/SessionInfoWebSocketListener.cs +++ b/Jellyfin.Api/WebSocketListeners/SessionInfoWebSocketListener.cs @@ -1,5 +1,7 @@ using System.Collections.Generic; using System.Threading.Tasks; +using Jellyfin.Data.Enums; +using MediaBrowser.Controller.Authentication; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Session; @@ -66,6 +68,20 @@ public class SessionInfoWebSocketListener : BasePeriodicWebSocketListener<IEnume base.Dispose(dispose); } + /// <summary> + /// Starts sending messages over a session info web socket. + /// </summary> + /// <param name="message">The message.</param> + protected override void Start(WebSocketMessageInfo message) + { + if (!message.Connection.AuthorizationInfo.User.HasPermission(PermissionKind.IsAdministrator)) + { + throw new AuthenticationException("Only admin users can subscribe to session information."); + } + + base.Start(message); + } + private async void OnSessionManagerSessionActivity(object? sender, SessionEventArgs e) { await SendData(false).ConfigureAwait(false); |
