From 7cd41a6ed62c46006307add9de92e0b329bd0edc Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 21 Feb 2014 00:04:11 -0500 Subject: easier user library setup --- MediaBrowser.Controller/Entities/Folder.cs | 27 +++++-- MediaBrowser.Controller/Entities/User.cs | 84 +--------------------- MediaBrowser.Controller/Entities/UserRootFolder.cs | 2 +- MediaBrowser.Controller/Library/ILibraryManager.cs | 3 +- 4 files changed, 24 insertions(+), 92 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index b9b6dd5179..6472b988a2 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -277,6 +277,19 @@ namespace MediaBrowser.Controller.Entities get { return GetRecursiveChildren(); } } + public override bool IsVisible(User user) + { + if (this is ICollectionFolder) + { + if (user.Configuration.BlockedMediaFolders.Contains(Name, StringComparer.OrdinalIgnoreCase)) + { + return false; + } + } + + return base.IsVisible(user); + } + private List LoadChildrenInternal() { return LoadChildren().ToList(); @@ -762,15 +775,15 @@ namespace MediaBrowser.Controller.Entities { list.Add(child); } - } - - if (recursive && child.IsFolder) - { - var folder = (Folder)child; - if (folder.AddChildrenToList(user, includeLinkedChildren, list, true, filter)) + if (recursive && child.IsFolder) { - hasLinkedChildren = true; + var folder = (Folder)child; + + if (folder.AddChildrenToList(user, includeLinkedChildren, list, true, filter)) + { + hasLinkedChildren = true; + } } } } diff --git a/MediaBrowser.Controller/Entities/User.cs b/MediaBrowser.Controller/Entities/User.cs index 66ef8c7dc7..d5fc3172cf 100644 --- a/MediaBrowser.Controller/Entities/User.cs +++ b/MediaBrowser.Controller/Entities/User.cs @@ -19,35 +19,6 @@ namespace MediaBrowser.Controller.Entities public static IUserManager UserManager { get; set; } public static IXmlSerializer XmlSerializer { get; set; } - /// - /// Gets the root folder path. - /// - /// The root folder path. - [IgnoreDataMember] - public string RootFolderPath - { - get - { - var path = Configuration.UseCustomLibrary ? GetRootFolderPath(Name) : ConfigurationManager.ApplicationPaths.DefaultUserViewsPath; - - Directory.CreateDirectory(path); - - return path; - } - } - - /// - /// Gets the root folder path based on a given username - /// - /// The username. - /// System.String. - private string GetRootFolderPath(string username) - { - var safeFolderName = FileSystem.GetValidFilename(username); - - return System.IO.Path.Combine(ConfigurationManager.ApplicationPaths.RootFolderPath, safeFolderName); - } - /// /// Gets or sets the password. /// @@ -97,24 +68,16 @@ namespace MediaBrowser.Controller.Entities } } - /// - /// The _root folder - /// - private UserRootFolder _rootFolder; /// /// Gets the root folder. /// /// The root folder. [IgnoreDataMember] - public UserRootFolder RootFolder + public Folder RootFolder { get { - return _rootFolder ?? (LibraryManager.GetUserRootFolder(RootFolderPath)); - } - private set - { - _rootFolder = value; + return LibraryManager.GetUserRootFolder(); } } @@ -165,22 +128,6 @@ namespace MediaBrowser.Controller.Entities } } - /// - /// Reloads the root media folder - /// - /// The cancellation token. - /// The progress. - /// Task. - public async Task ValidateMediaLibrary(IProgress progress, CancellationToken cancellationToken) - { - Logger.Info("Validating media library for {0}", Name); - await RootFolder.RefreshMetadata(cancellationToken).ConfigureAwait(false); - - cancellationToken.ThrowIfCancellationRequested(); - - await RootFolder.ValidateChildren(progress, cancellationToken).ConfigureAwait(false); - } - /// /// Renames the user. /// @@ -215,29 +162,10 @@ namespace MediaBrowser.Controller.Entities { Directory.CreateDirectory(newConfigDirectory); } - - var customLibraryPath = GetRootFolderPath(Name); - - // Move the root folder path if using a custom library - if (Directory.Exists(customLibraryPath)) - { - var newRootFolderPath = GetRootFolderPath(newName); - if (Directory.Exists(newRootFolderPath)) - { - Directory.Delete(newRootFolderPath, true); - } - Directory.Move(customLibraryPath, newRootFolderPath); - } } Name = newName; - // Force these to be lazy loaded again - RootFolder = null; - - // Kick off a task to validate the media library - Task.Run(() => ValidateMediaLibrary(new Progress(), CancellationToken.None)); - return RefreshMetadata(new MetadataRefreshOptions { ReplaceAllMetadata = true, @@ -318,16 +246,8 @@ namespace MediaBrowser.Controller.Entities throw new ArgumentNullException("config"); } - var customLibraryChanged = config.UseCustomLibrary != Configuration.UseCustomLibrary; - Configuration = config; SaveConfiguration(serializer); - - // Force these to be lazy loaded again - if (customLibraryChanged) - { - RootFolder = null; - } } } } diff --git a/MediaBrowser.Controller/Entities/UserRootFolder.cs b/MediaBrowser.Controller/Entities/UserRootFolder.cs index 9a8d3e7f4d..1829e10c72 100644 --- a/MediaBrowser.Controller/Entities/UserRootFolder.cs +++ b/MediaBrowser.Controller/Entities/UserRootFolder.cs @@ -25,7 +25,7 @@ namespace MediaBrowser.Controller.Entities if (string.Equals("default", Name, System.StringComparison.OrdinalIgnoreCase)) { - Name = "Default Media Library"; + Name = "Media Folders"; hasChanges = true; } diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index 0b1ac91371..747ae48ad4 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -202,9 +202,8 @@ namespace MediaBrowser.Controller.Library /// /// Gets the user root folder. /// - /// The user root path. /// UserRootFolder. - UserRootFolder GetUserRootFolder(string userRootPath); + Folder GetUserRootFolder(); /// /// Creates the item. -- cgit v1.2.3