diff --git a/Jellyfin.Plugin.SRFPlay/Controllers/RecordingController.cs b/Jellyfin.Plugin.SRFPlay/Controllers/RecordingController.cs index 6c75811..00b182a 100644 --- a/Jellyfin.Plugin.SRFPlay/Controllers/RecordingController.cs +++ b/Jellyfin.Plugin.SRFPlay/Controllers/RecordingController.cs @@ -40,6 +40,7 @@ public class RecordingController : ControllerBase /// /// The recording manager HTML page. [HttpGet("Page")] + [AllowAnonymous] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] public IActionResult GetRecordingPage() diff --git a/Jellyfin.Plugin.SRFPlay/Plugin.cs b/Jellyfin.Plugin.SRFPlay/Plugin.cs index 33d3e87..58eb0ce 100644 --- a/Jellyfin.Plugin.SRFPlay/Plugin.cs +++ b/Jellyfin.Plugin.SRFPlay/Plugin.cs @@ -45,16 +45,13 @@ public class Plugin : BasePlugin, IHasWebPages { Name = Name, EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.configPage.html", GetType().Namespace) - }, - new PluginPageInfo - { - Name = "SRF Play Recordings", - DisplayName = "SRF Sport Recordings", - EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.recordingPage.html", GetType().Namespace), - EnableInMainMenu = true, - MenuSection = "Live TV", - MenuIcon = "fiber_smart_record" } + + // Note: the recordings manager is intentionally NOT registered as a plugin + // page. Plugin pages live under the admin Dashboard and are admin-gated, which + // both caused a redirect to the recordings page and made it inaccessible to + // normal users. Recordings are served as a standalone, user-accessible page at + // GET /Plugins/SRFPlay/Recording/Page (see RecordingController). ]; } }