From f93fb4650c2e79655222be6f3e81d360c75c8532 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 3 Jan 2014 21:59:20 -0500 Subject: [PATCH] display additional users in dashboard --- MediaBrowser.Api/SessionsService.cs | 2 +- MediaBrowser.Controller/Session/SessionInfo.cs | 10 ++++++++-- MediaBrowser.Model/Session/SessionInfoDto.cs | 4 ++-- .../Dto/DtoService.cs | 2 +- .../Session/SessionManager.cs | 12 ++++++------ 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/MediaBrowser.Api/SessionsService.cs b/MediaBrowser.Api/SessionsService.cs index 0e95239e27..8d5e9e0d7d 100644 --- a/MediaBrowser.Api/SessionsService.cs +++ b/MediaBrowser.Api/SessionsService.cs @@ -239,7 +239,7 @@ namespace MediaBrowser.Api if (!user.Configuration.EnableRemoteControlOfOtherUsers) { - result = result.Where(i => !i.UserId.HasValue || i.UserId.Value == request.ControllableByUserId.Value); + result = result.Where(i => !i.UserId.HasValue || i.ContainsUser(request.ControllableByUserId.Value)); } } diff --git a/MediaBrowser.Controller/Session/SessionInfo.cs b/MediaBrowser.Controller/Session/SessionInfo.cs index ce07f5dc47..b05a68a842 100644 --- a/MediaBrowser.Controller/Session/SessionInfo.cs +++ b/MediaBrowser.Controller/Session/SessionInfo.cs @@ -2,6 +2,7 @@ using MediaBrowser.Model.Session; using System; using System.Collections.Generic; +using System.Linq; namespace MediaBrowser.Controller.Session { @@ -14,10 +15,10 @@ namespace MediaBrowser.Controller.Session { QueueableMediaTypes = new List(); - AdditionalUsersPresent = new List(); + AdditionalUsers = new List(); } - public List AdditionalUsersPresent { get; set; } + public List AdditionalUsers { get; set; } /// /// Gets or sets the remote end point. @@ -172,5 +173,10 @@ namespace MediaBrowser.Controller.Session return false; } } + + public bool ContainsUser(Guid userId) + { + return (UserId ?? Guid.Empty) == UserId || AdditionalUsers.Any(i => userId == new Guid(i.UserId)); + } } } diff --git a/MediaBrowser.Model/Session/SessionInfoDto.cs b/MediaBrowser.Model/Session/SessionInfoDto.cs index f3980e2e4c..7116900227 100644 --- a/MediaBrowser.Model/Session/SessionInfoDto.cs +++ b/MediaBrowser.Model/Session/SessionInfoDto.cs @@ -47,7 +47,7 @@ namespace MediaBrowser.Model.Session /// Gets or sets the additional users present. /// /// The additional users present. - public List AdditionalUsersPresent { get; set; } + public List AdditionalUsers { get; set; } /// /// Gets or sets the application version. @@ -137,7 +137,7 @@ namespace MediaBrowser.Model.Session public SessionInfoDto() { - AdditionalUsersPresent = new List(); + AdditionalUsers = new List(); } } diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index c6c23ac2e5..0f6d680b12 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -245,7 +245,7 @@ namespace MediaBrowser.Server.Implementations.Dto CanSeek = session.CanSeek, QueueableMediaTypes = session.QueueableMediaTypes, RemoteEndPoint = session.RemoteEndPoint, - AdditionalUsersPresent = session.AdditionalUsersPresent + AdditionalUsers = session.AdditionalUsers }; if (session.NowPlayingItem != null) diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs index 7a253b89b6..6440a1242d 100644 --- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs +++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs @@ -236,7 +236,7 @@ namespace MediaBrowser.Server.Implementations.Session if (!userId.HasValue) { - connection.AdditionalUsersPresent.Clear(); + connection.AdditionalUsers.Clear(); } if (connection.SessionController == null) @@ -264,7 +264,7 @@ namespace MediaBrowser.Server.Implementations.Session users.Add(user); - var additionalUsers = session.AdditionalUsersPresent + var additionalUsers = session.AdditionalUsers .Select(i => _userManager.GetUserById(new Guid(i.UserId))) .Where(i => i != null); @@ -753,11 +753,11 @@ namespace MediaBrowser.Server.Implementations.Session throw new ArgumentException("The requested user is already the primary user of the session."); } - if (session.AdditionalUsersPresent.All(i => new Guid(i.UserId) != userId)) + if (session.AdditionalUsers.All(i => new Guid(i.UserId) != userId)) { var user = _userManager.GetUserById(userId); - session.AdditionalUsersPresent.Add(new SessionUserInfo + session.AdditionalUsers.Add(new SessionUserInfo { UserId = userId.ToString("N"), UserName = user.Name @@ -786,11 +786,11 @@ namespace MediaBrowser.Server.Implementations.Session throw new ArgumentException("The requested user is already the primary user of the session."); } - var user = session.AdditionalUsersPresent.FirstOrDefault(i => new Guid(i.UserId) == userId); + var user = session.AdditionalUsers.FirstOrDefault(i => new Guid(i.UserId) == userId); if (user != null) { - session.AdditionalUsersPresent.Remove(user); + session.AdditionalUsers.Remove(user); } } }