Skip to content

Add public user listing option to networking settings #6672

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions src/apps/dashboard/controllers/networking.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,15 @@ <h2 class="sectionTitle">${TabNetworking}</h2>
<input is="emby-input" type="text" id="txtKnownProxies" label="${LabelKnownProxies}" />
<div class="fieldDescription">${KnownProxiesHelp}</div>
</div>

<div class="selectContainer">
<select is="emby-select" id="selectPublicUserListing" label="${LabelPublicUserListing}">
<option value="never">${Never}</option>
<option value="always">${Always}</option>
<option value="local">${Local}</option>
</select>
<div class="fieldDescription">${LabelPublicUserListingHelp}</div>
</div>
</fieldset>

<fieldset class='verticalSection verticalSection-extrabottompadding'>
Expand Down
15 changes: 15 additions & 0 deletions src/apps/dashboard/controllers/networking.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ function onSubmit(e) {
return s.length > 0;
});

const selectPublicUserListing = form.querySelector('#selectPublicUserListing');

config.IsRemoteIPFilterBlacklist = form.querySelector('#selectExternalAddressFilterMode').value === 'blacklist';
config.PublicHttpPort = form.querySelector('#txtPublicHttpPort').value;
config.PublicHttpsPort = form.querySelector('#txtPublicHttpsPort').value;
Expand All @@ -55,6 +57,8 @@ function onSubmit(e) {
config.RequireHttps = form.querySelector('#chkRequireHttps').checked;
config.BaseUrl = form.querySelector('#txtBaseUrl').value;
config.EnableRemoteAccess = form.querySelector('#chkRemoteAccess').checked;
config.PublicUserListing = selectPublicUserListing.value === 'always' || selectPublicUserListing.value === 'local';
config.PublicUserListingLocalOnly = selectPublicUserListing.value === 'local';
config.CertificatePath = form.querySelector('#txtCertificatePath').value || null;
config.CertificatePassword = form.querySelector('#txtCertPassword').value || null;
config.AutoDiscovery = form.querySelector('#chkAutodiscovery').checked;
Expand Down Expand Up @@ -142,6 +146,17 @@ export default function (view) {
page.querySelector('#chkEnableIP6').checked = config.EnableIPv6;
page.querySelector('#chkEnableIP4').checked = config.EnableIPv4;
page.querySelector('#txtPublishedServer').value = (config.PublishedServerUriBySubnet || []).join(', ');

const selectPublicUserListing = page.querySelector('#selectPublicUserListing');

if (config.PublicUserListingLocalOnly && config.PublicUserListing) {
selectPublicUserListing.value = 'local';
} else if (config.PublicUserListing) {
selectPublicUserListing.value = 'always';
} else {
selectPublicUserListing.value = 'never';
}

loading.hide();
}

Expand Down
4 changes: 4 additions & 0 deletions src/strings/en-us.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -1030,6 +1033,7 @@
"Live": "Live",
"LiveBroadcasts": "Live broadcasts",
"LiveTV": "Live TV",
"Local": "Local",
"Localization": "Localization",
"LogLevel.Trace": "Trace",
"LogLevel.Debug": "Debug",
Expand Down
Loading