From a1c5886263b9e37d68dbb866fa4b8ceb4bf2095f Mon Sep 17 00:00:00 2001 From: Mateusz Drab Date: Thu, 27 Mar 2025 21:05:35 +0000 Subject: [PATCH] Add public user listing option to networking settings --- src/apps/dashboard/controllers/networking.html | 9 +++++++++ src/apps/dashboard/controllers/networking.js | 3 +++ src/strings/en-us.json | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/src/apps/dashboard/controllers/networking.html b/src/apps/dashboard/controllers/networking.html index 54793ff444..b71981baac 100644 --- a/src/apps/dashboard/controllers/networking.html +++ b/src/apps/dashboard/controllers/networking.html @@ -47,6 +47,15 @@
${KnownProxiesHelp}
+ +
+ +
${LabelPublicUserListingHelp}
+
diff --git a/src/apps/dashboard/controllers/networking.js b/src/apps/dashboard/controllers/networking.js index 04c206dd76..9000e1bc05 100644 --- a/src/apps/dashboard/controllers/networking.js +++ b/src/apps/dashboard/controllers/networking.js @@ -55,6 +55,8 @@ function onSubmit(e) { config.RequireHttps = form.querySelector('#chkRequireHttps').checked; config.BaseUrl = form.querySelector('#txtBaseUrl').value; config.EnableRemoteAccess = form.querySelector('#chkRemoteAccess').checked; + config.PublicUserListing = form.querySelector('#selectPublicUserListing').value === 'always' || form.querySelector('#selectPublicUserListing').value === 'local'; + config.PublicUserListingLocalOnly = form.querySelector('#selectPublicUserListing').value === 'local'; config.CertificatePath = form.querySelector('#txtCertificatePath').value || null; config.CertificatePassword = form.querySelector('#txtCertPassword').value || null; config.AutoDiscovery = form.querySelector('#chkAutodiscovery').checked; @@ -142,6 +144,7 @@ export default function (view) { page.querySelector('#chkEnableIP6').checked = config.EnableIPv6; page.querySelector('#chkEnableIP4').checked = config.EnableIPv4; page.querySelector('#txtPublishedServer').value = (config.PublishedServerUriBySubnet || []).join(', '); + page.querySelector('#selectPublicUserListing').value = config.PublicUserListingLocalOnly && config.PublicUserListing ? 'local' : config.PublicUserListing ? 'always' : 'never'; loading.hide(); } diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 0204b9817d..f16483a35e 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -34,6 +34,7 @@ "AllowStreamSharingHelp": "Allow Jellyfin to duplicate the mpegts stream from tuner and share this duplicated stream to its clients. This is useful when the tuner has total stream count limit but may also cause playback issues.", "Alternate" : "Alternate", "AlternateDVD" : "Alternate DVD", + "Always": "Always", "AlwaysBurnInSubtitleWhenTranscoding": "Always burn in subtitle when transcoding", "AlwaysBurnInSubtitleWhenTranscodingHelp": "Burn in all subtitles when transcoding is triggered. This ensures subtitle synchronization after transcoding at the cost of reduced transcoding speed.", "LabelThrottleDelaySeconds": "Throttle after", @@ -851,6 +852,8 @@ "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local HTTP port.", "LabelPublicHttpsPort": "Public HTTPS port number", "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local HTTPS port.", + "LabelPublicUserListing": "Public user listing", + "LabelPublicUserListingHelp": "If set to Never all users will be hidden from the login screen when accessing Jellyfin. If set to Always or Local, make sure to disable 'hide this user from login screens' for user accounts that need to be listed. For Local to work correctly, 'LAN networks' and 'Known proxies' should be configured to allow Jellyfin to properly distinguish local and remote/external clients. Listing users publicly is a security risk.", "LabelPublishedServerUri": "Published Server URIs", "LabelPublishedServerUriHelp": "Override the URI used by Jellyfin, based on the interface, or client IP address. For example: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, or all=https://jellyfin.example.com", "LabelQsvDevice": "QSV Device", @@ -1030,6 +1033,7 @@ "Live": "Live", "LiveBroadcasts": "Live broadcasts", "LiveTV": "Live TV", + "Local": "Local", "Localization": "Localization", "LogLevel.Trace": "Trace", "LogLevel.Debug": "Debug",