aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Attributes/DlnaEnabledAttribute.cs
blob: d3a6ac9c81ed23478bd6cd16aeb8a7d855a83f50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using Emby.Dlna;
using MediaBrowser.Controller.Configuration;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.DependencyInjection;

namespace Jellyfin.Api.Attributes;

/// <inheritdoc />
public sealed class DlnaEnabledAttribute : ActionFilterAttribute
{
    /// <inheritdoc />
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        var serverConfigurationManager = context.HttpContext.RequestServices.GetRequiredService<IServerConfigurationManager>();

        var enabled = serverConfigurationManager.GetDlnaConfiguration().EnableServer;

        if (!enabled)
        {
            context.Result = new StatusCodeResult(StatusCodes.Status503ServiceUnavailable);
        }
    }
}