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.");