فهرست منبع

fixes #180 - Deleting users doesn't remove all associated data.

Luke Pulverenti 12 سال پیش
والد
کامیت
4c69edebe0
2فایلهای تغییر یافته به همراه28 افزوده شده و 2 حذف شده
  1. 1 1
      MediaBrowser.Controller/Entities/User.cs
  2. 27 1
      MediaBrowser.Server.Implementations/Library/UserManager.cs

+ 1 - 1
MediaBrowser.Controller/Entities/User.cs

@@ -312,7 +312,7 @@ namespace MediaBrowser.Controller.Entities
         /// Gets the path to the user's configuration file
         /// Gets the path to the user's configuration file
         /// </summary>
         /// </summary>
         /// <value>The configuration file path.</value>
         /// <value>The configuration file path.</value>
-        private string ConfigurationFilePath
+        public string ConfigurationFilePath
         {
         {
             get
             get
             {
             {

+ 27 - 1
MediaBrowser.Server.Implementations/Library/UserManager.cs

@@ -1,4 +1,5 @@
-using MediaBrowser.Common.Events;
+using System.IO;
+using MediaBrowser.Common.Events;
 using MediaBrowser.Common.Extensions;
 using MediaBrowser.Common.Extensions;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.Dto;
@@ -485,6 +486,31 @@ namespace MediaBrowser.Server.Implementations.Library
 
 
             await UserRepository.DeleteUser(user, CancellationToken.None).ConfigureAwait(false);
             await UserRepository.DeleteUser(user, CancellationToken.None).ConfigureAwait(false);
 
 
+            if (user.Configuration.UseCustomLibrary)
+            {
+                var path = user.RootFolderPath;
+
+                try
+                {
+                    Directory.Delete(path, true);
+                }
+                catch (IOException ex)
+                {
+                    _logger.ErrorException("Error deleting directory {0}", ex, path);
+                }
+
+                path = user.ConfigurationFilePath;
+
+                try
+                {
+                    File.Delete(path);
+                }
+                catch (IOException ex)
+                {
+                    _logger.ErrorException("Error deleting file {0}", ex, path);
+                }
+            }
+
             OnUserDeleted(user);
             OnUserDeleted(user);
 
 
             // Force this to be lazy loaded again
             // Force this to be lazy loaded again