aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library/UserManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/UserManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Library/UserManager.cs17
1 files changed, 15 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/UserManager.cs b/MediaBrowser.Server.Implementations/Library/UserManager.cs
index d81cd09a9..f9d7479ce 100644
--- a/MediaBrowser.Server.Implementations/Library/UserManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/UserManager.cs
@@ -5,8 +5,10 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Events;
using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Serialization;
using System;
using System.Collections.Generic;
using System.IO;
@@ -46,16 +48,19 @@ namespace MediaBrowser.Server.Implementations.Library
/// <value>The user repository.</value>
private IUserRepository UserRepository { get; set; }
+ private readonly IXmlSerializer _xmlSerializer;
+
/// <summary>
/// Initializes a new instance of the <see cref="UserManager" /> class.
/// </summary>
/// <param name="logger">The logger.</param>
/// <param name="configurationManager">The configuration manager.</param>
/// <param name="userRepository">The user repository.</param>
- public UserManager(ILogger logger, IServerConfigurationManager configurationManager, IUserRepository userRepository)
+ public UserManager(ILogger logger, IServerConfigurationManager configurationManager, IUserRepository userRepository, IXmlSerializer xmlSerializer)
{
_logger = logger;
UserRepository = userRepository;
+ _xmlSerializer = xmlSerializer;
ConfigurationManager = configurationManager;
Users = new List<User>();
}
@@ -65,7 +70,8 @@ namespace MediaBrowser.Server.Implementations.Library
/// Occurs when [user updated].
/// </summary>
public event EventHandler<GenericEventArgs<User>> UserUpdated;
-
+ public event EventHandler<GenericEventArgs<User>> UserConfigurationUpdated;
+
/// <summary>
/// Called when [user updated].
/// </summary>
@@ -408,6 +414,13 @@ namespace MediaBrowser.Server.Implementations.Library
};
}
+ public void UpdateConfiguration(User user, UserConfiguration newConfiguration)
+ {
+ var xmlPath = user.ConfigurationFilePath;
+ Directory.CreateDirectory(Path.GetDirectoryName(xmlPath));
+ _xmlSerializer.SerializeToFile(newConfiguration, xmlPath);
+ EventHelper.FireEventIfNotNull(UserConfigurationUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger);
+ }
}
}