aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/SessionsService.cs
diff options
context:
space:
mode:
authorSven Van den brande <sven.vandenbrande@outlook.com>2013-10-31 21:46:03 +0100
committerSven Van den brande <sven.vandenbrande@outlook.com>2013-10-31 21:46:03 +0100
commite8f8d6651c86b3fd3350a5afae1d759fbbad06bd (patch)
tree6496b1525f0dfc448f0250f4fddaa634296ae94b /MediaBrowser.Api/SessionsService.cs
parent28ab28768a307d1cac60ebe79163b98291068cde (diff)
parent882d0681e68c5e0ae663cca75752e4df765c8dd5 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Api/SessionsService.cs')
-rw-r--r--MediaBrowser.Api/SessionsService.cs15
1 files changed, 14 insertions, 1 deletions
diff --git a/MediaBrowser.Api/SessionsService.cs b/MediaBrowser.Api/SessionsService.cs
index 5888d9fba..a3f7e3037 100644
--- a/MediaBrowser.Api/SessionsService.cs
+++ b/MediaBrowser.Api/SessionsService.cs
@@ -1,4 +1,5 @@
using MediaBrowser.Controller.Dto;
+using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
using ServiceStack.ServiceHost;
@@ -182,16 +183,18 @@ namespace MediaBrowser.Api
private readonly ISessionManager _sessionManager;
private readonly IDtoService _dtoService;
+ private readonly IUserManager _userManager;
/// <summary>
/// Initializes a new instance of the <see cref="SessionsService" /> class.
/// </summary>
/// <param name="sessionManager">The session manager.</param>
/// <param name="dtoService">The dto service.</param>
- public SessionsService(ISessionManager sessionManager, IDtoService dtoService)
+ public SessionsService(ISessionManager sessionManager, IDtoService dtoService, IUserManager userManager)
{
_sessionManager = sessionManager;
_dtoService = dtoService;
+ _userManager = userManager;
}
/// <summary>
@@ -208,6 +211,16 @@ namespace MediaBrowser.Api
result = result.Where(i => i.SupportsRemoteControl == request.SupportsRemoteControl.Value);
}
+ if (request.ControllableByUserId.HasValue)
+ {
+ var user = _userManager.GetUserById(request.ControllableByUserId.Value);
+
+ if (!user.Configuration.EnableRemoteControlOfOtherUsers)
+ {
+ result = result.Where(i => i.User == null || i.User.Id == request.ControllableByUserId.Value);
+ }
+ }
+
return ToOptimizedResult(result.Select(_dtoService.GetSessionInfoDto).ToList());
}