Fix guest sign-in on Jellyfin 12 (#22)

The sign-in page stored the guest's server entry with LastConnectionMode 1
(Remote) but only a ManualAddress. jellyfin-web 12 builds its ApiClient from
that entry, gets no address, throws "Must supply a serverAddress" and never
leaves the splash screen. Store mode 2 (Manual), which is what jellyfin-web
itself writes after a normal sign-in.

Also hide the Modern layout header links, user menu and drawer toggle for
guests (Modern is the default in 12), and close the item action sheet on
desktop when ShareLink opens its popup. Escape only closes it in the TV
layout, a click on the dialog container works everywhere.

Bump to 1.0.6.0.
Cette révision appartient à :
Francois Coutau Bégarie
2026-09-18 11:55:48 +02:00
révisé par GitHub
Parent b48f977c22
révision 079a1de23e
5 fichiers modifiés avec 31 ajouts et 12 suppressions
+4 -1
Voir le fichier
@@ -280,6 +280,9 @@ public sealed class ShareLinkRedemptionService
var infoUrlJson = JsonSerializer.Serialize($"{pathBase}/System/Info/Public");
var pathBaseJson = JsonSerializer.Serialize(pathBase);
// jellyfin-web resolves the server address from LastConnectionMode; 2 (Manual) is
// what it stores after a normal sign-in. Jellyfin 12 builds its client straight from
// this entry, so Remote (1) with no RemoteAddress left the guest on the splash screen.
return $$"""
<!doctype html>
<html lang="en">
@@ -319,7 +322,7 @@ public sealed class ShareLinkRedemptionService
manualAddressOnly: true,
Name: info.ServerName || "Jellyfin",
Id: info.Id,
LastConnectionMode: 1,
LastConnectionMode: 2,
AccessToken: accessToken,
UserId: userId,
DateLastAccessed: Date.now()