diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs
index 09eb1ea414..727ee6fbcc 100644
--- a/MediaBrowser.Api/BaseApiService.cs
+++ b/MediaBrowser.Api/BaseApiService.cs
@@ -125,7 +125,7 @@ namespace MediaBrowser.Api
return ResultFactory.GetStaticFileResult(Request, path);
}
- private readonly char[] _dashReplaceChars = new[] { '?', '/' };
+ private readonly char[] _dashReplaceChars = { '?', '/' };
private const char SlugChar = '-';
protected MusicArtist GetArtist(string name, ILibraryManager libraryManager)
@@ -168,6 +168,11 @@ namespace MediaBrowser.Api
{
var user = userManager.GetUserById(userId.Value);
+ if (user == null)
+ {
+ throw new ArgumentException("User not found");
+ }
+
return folder.GetRecursiveChildren(user);
}
@@ -177,6 +182,11 @@ namespace MediaBrowser.Api
{
var user = userManager.GetUserById(userId.Value);
+ if (user == null)
+ {
+ throw new ArgumentException("User not found");
+ }
+
return userManager.GetUserById(userId.Value).RootFolder.GetRecursiveChildren(user);
}
diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs
index df4bc06bab..b7a43c2373 100644
--- a/MediaBrowser.Api/UserService.cs
+++ b/MediaBrowser.Api/UserService.cs
@@ -357,6 +357,23 @@ namespace MediaBrowser.Api
{
var auth = AuthorizationContext.GetAuthorizationInfo(Request);
+ if (string.IsNullOrWhiteSpace(auth.Client))
+ {
+ auth.Client = "Unknown app";
+ }
+ if (string.IsNullOrWhiteSpace(auth.Device))
+ {
+ auth.Device = "Unknown device";
+ }
+ if (string.IsNullOrWhiteSpace(auth.Version))
+ {
+ auth.Version = "Unknown version";
+ }
+ if (string.IsNullOrWhiteSpace(auth.DeviceId))
+ {
+ auth.DeviceId = "Unknown device id";
+ }
+
var result = _sessionMananger.AuthenticateNewSession(request.Username, request.Password, auth.Client, auth.Version,
auth.DeviceId, auth.Device, Request.RemoteIp, Request.IsLocal).Result;
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index b886cef193..12afe26b63 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -21,12 +21,13 @@ namespace MediaBrowser.Controller.Entities
///
/// Class Folder
///
- public class Folder : BaseItem, IHasThemeMedia
+ public class Folder : BaseItem, IHasThemeMedia, IHasTags
{
public static IUserManager UserManager { get; set; }
public List ThemeSongIds { get; set; }
public List ThemeVideoIds { get; set; }
+ public List Tags { get; set; }
public Folder()
{
@@ -34,6 +35,7 @@ namespace MediaBrowser.Controller.Entities
ThemeSongIds = new List();
ThemeVideoIds = new List();
+ Tags = new List();
}
///
diff --git a/MediaBrowser.Controller/Entities/Studio.cs b/MediaBrowser.Controller/Entities/Studio.cs
index 8271a3df20..0d934ad0a5 100644
--- a/MediaBrowser.Controller/Entities/Studio.cs
+++ b/MediaBrowser.Controller/Entities/Studio.cs
@@ -7,8 +7,15 @@ namespace MediaBrowser.Controller.Entities
///
/// Class Studio
///
- public class Studio : BaseItem, IItemByName
+ public class Studio : BaseItem, IItemByName, IHasTags
{
+ public List Tags { get; set; }
+
+ public Studio()
+ {
+ Tags = new List();
+ }
+
///
/// Gets the user data key.
///
diff --git a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
index 2d7c798ade..1933cc7164 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
@@ -66,6 +66,12 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
? null
: UserManager.GetUserById(new Guid(auth.UserId));
+ if (user == null & !string.IsNullOrWhiteSpace(auth.UserId))
+ {
+ // TODO: Re-enable
+ //throw new ArgumentException("User with Id " + auth.UserId + " not found");
+ }
+
if (user != null && user.Configuration.IsDisabled)
{
throw new UnauthorizedAccessException("User account has been disabled.");