fixes #683 - Support disabling playback per user

This commit is contained in:
Luke Pulverenti 2014-01-22 21:19:04 -05:00
parent bd0a1b70d0
commit 4ce43ce019
3 changed files with 20 additions and 0 deletions

View File

@ -1007,6 +1007,13 @@ namespace MediaBrowser.Api.Playback
throw new InvalidOperationException("You asked for a debug error, you got one.");
}
var user = AuthorizationRequestFilterAttribute.GetCurrentUser(Request, UserManager);
if (user != null && !user.Configuration.EnableMediaPlayback)
{
throw new ArgumentException(string.Format("{0} is not allowed to play media.", user.Name));
}
var url = Request.PathInfo;
if (!request.AudioCodec.HasValue)

View File

@ -69,6 +69,8 @@ namespace MediaBrowser.Model.Configuration
public bool EnableLiveTvManagement { get; set; }
public bool EnableMediaPlayback { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="UserConfiguration" /> class.
/// </summary>
@ -79,6 +81,7 @@ namespace MediaBrowser.Model.Configuration
BlockNotRated = false;
EnableLiveTvManagement = true;
EnableMediaPlayback = true;
}
}
}

View File

@ -604,6 +604,16 @@ namespace MediaBrowser.Server.Implementations.Session
{
var session = GetSessionForRemoteControl(sessionId);
if (session.UserId.HasValue)
{
var user = _userManager.GetUserById(session.UserId.Value);
if (!user.Configuration.EnableMediaPlayback)
{
throw new ArgumentException(string.Format("{0} is not allowed to play media.", user.Name));
}
}
var items = command.ItemIds.Select(i => _libraryManager.GetItemById(new Guid(i)))
.ToList();