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/ActivityLogWebSocketListener.cs | |
| parent | 57b9e500c2842e02c284573dada057d6350611b3 (diff) | |
| parent | 4bb17039d70683e8a159db92823fed6d992e2fe4 (diff) | |
Merge pull request #9875 from Shadowghost/fixes
Diffstat (limited to 'Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs')
| -rw-r--r-- | Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs b/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs index 4a5e0ecd4..5b90d65d8 100644 --- a/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs +++ b/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs @@ -1,6 +1,8 @@ using System; using System.Threading.Tasks; +using Jellyfin.Data.Enums; using Jellyfin.Data.Events; +using MediaBrowser.Controller.Authentication; using MediaBrowser.Controller.Net; using MediaBrowser.Model.Activity; using MediaBrowser.Model.Session; @@ -9,7 +11,7 @@ using Microsoft.Extensions.Logging; namespace Jellyfin.Api.WebSocketListeners; /// <summary> -/// Class SessionInfoWebSocketListener. +/// Class ActivityLogWebSocketListener. /// </summary> public class ActivityLogWebSocketListener : BasePeriodicWebSocketListener<ActivityLogEntry[], WebSocketListenerState> { @@ -56,6 +58,20 @@ public class ActivityLogWebSocketListener : BasePeriodicWebSocketListener<Activi base.Dispose(dispose); } + /// <summary> + /// Starts sending messages over an activity log 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 retrieve the activity log."); + } + + base.Start(message); + } + private async void OnEntryCreated(object? sender, GenericEventArgs<ActivityLogEntry> e) { await SendData(true).ConfigureAwait(false); |
