diff options
| author | Patrick Barron <barronpm@gmail.com> | 2020-05-12 22:22:20 -0400 |
|---|---|---|
| committer | Patrick Barron <barronpm@gmail.com> | 2020-05-12 22:22:20 -0400 |
| commit | c1360a1dc312938e77e52a509eb9186300bcb40d (patch) | |
| tree | 492b4d717a12b20a4649b2fbc48050430ea72d50 /MediaBrowser.Api/UserService.cs | |
| parent | 9ad839c7766bd5d6121a10b2c306d6fef9666c52 (diff) | |
| parent | 32c118222647f121c0b17055c0ef158763c0b5d2 (diff) | |
Merge branch 'master' into userdb-efcore
# Conflicts:
# Emby.Server.Implementations/Data/SqliteUserDataRepository.cs
# Emby.Server.Implementations/Library/UserManager.cs
# Jellyfin.Data/Entities/User.cs
# Jellyfin.Data/ISavingChanges.cs
# Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj
# Jellyfin.Server.Implementations/JellyfinDb.cs
# Jellyfin.Server/Migrations/MigrationRunner.cs
# MediaBrowser.Model/Notifications/NotificationOptions.cs
# MediaBrowser.sln
Diffstat (limited to 'MediaBrowser.Api/UserService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserService.cs | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs index 7bf4f88f4..7cee23abe 100644 --- a/MediaBrowser.Api/UserService.cs +++ b/MediaBrowser.Api/UserService.cs @@ -36,7 +36,7 @@ namespace MediaBrowser.Api } [Route("/Users/Public", "GET", Summary = "Gets a list of publicly visible users for display on a login screen.")] - public class GetPublicUsers : IReturn<UserDto[]> + public class GetPublicUsers : IReturn<PublicUserDto[]> { } @@ -267,22 +267,38 @@ namespace MediaBrowser.Api _authContext = authContext; } + /// <summary> + /// Gets the public available Users information + /// </summary> + /// <param name="request">The request.</param> + /// <returns>System.Object.</returns> public object Get(GetPublicUsers request) { - // If the startup wizard hasn't been completed then just return all users - if (!ServerConfigurationManager.Configuration.IsStartupWizardCompleted) + var result = _userManager + .Users + .Where(item => !item.Policy.IsDisabled); + + if (ServerConfigurationManager.Configuration.IsStartupWizardCompleted) { - return Get(new GetUsers + var deviceId = _authContext.GetAuthorizationInfo(Request).DeviceId; + result = result.Where(item => !item.Policy.IsHidden); + + if (!string.IsNullOrWhiteSpace(deviceId)) { - IsDisabled = false - }); + result = result.Where(i => _deviceManager.CanAccessDevice(i, deviceId)); + } + + if (!_networkManager.IsInLocalNetwork(Request.RemoteIp)) + { + result = result.Where(i => i.Policy.EnableRemoteAccess); + } } - return Get(new GetUsers - { - IsHidden = false, - IsDisabled = false - }, true, true); + return ToOptimizedResult(result + .OrderBy(u => u.Name) + .Select(i => _userManager.GetPublicUserDto(i, Request.RemoteIp)) + .ToArray() + ); } /// <summary> |
