combined usermanager and userdata manager

This commit is contained in:
LukePulverenti
2013-02-27 15:25:45 -05:00
parent 1c9eb1911a
commit ff4ee7ab9c
33 changed files with 705 additions and 520 deletions

View File

@@ -1,8 +1,5 @@
using MediaBrowser.Common.Kernel;
using MediaBrowser.Common.Plugins;
using MediaBrowser.Common.ScheduledTasks;
using MediaBrowser.Common.Security;
using MediaBrowser.Common.Updates;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;
@@ -51,12 +48,6 @@ namespace MediaBrowser.Controller
/// <value>The image manager.</value>
public ImageManager ImageManager { get; private set; }
/// <summary>
/// Gets the user manager.
/// </summary>
/// <value>The user manager.</value>
public UserManager UserManager { get; private set; }
/// <summary>
/// Gets the FFMPEG controller.
/// </summary>
@@ -81,47 +72,6 @@ namespace MediaBrowser.Controller
/// <value>The provider manager.</value>
public ProviderManager ProviderManager { get; private set; }
/// <summary>
/// Gets the user data manager.
/// </summary>
/// <value>The user data manager.</value>
public UserDataManager UserDataManager { get; private set; }
/// <summary>
/// The _users
/// </summary>
private IEnumerable<User> _users;
/// <summary>
/// The _user lock
/// </summary>
private object _usersSyncLock = new object();
/// <summary>
/// The _users initialized
/// </summary>
private bool _usersInitialized;
/// <summary>
/// Gets the users.
/// </summary>
/// <value>The users.</value>
public IEnumerable<User> Users
{
get
{
// Call ToList to exhaust the stream because we'll be iterating over this multiple times
LazyInitializer.EnsureInitialized(ref _users, ref _usersInitialized, ref _usersSyncLock, UserManager.LoadUsers);
return _users;
}
internal set
{
_users = value;
if (value == null)
{
_usersInitialized = false;
}
}
}
/// <summary>
/// The _root folder
/// </summary>
@@ -304,13 +254,14 @@ namespace MediaBrowser.Controller
/// </summary>
protected override void FindParts()
{
// For now there's no real way to inject this properly
User.UserManager = ApplicationHost.Resolve<IUserManager>();
InstallationManager = (InstallationManager)ApplicationHost.CreateInstance(typeof(InstallationManager));
FFMpegManager = (FFMpegManager)ApplicationHost.CreateInstance(typeof(FFMpegManager));
LibraryManager = (LibraryManager)ApplicationHost.CreateInstance(typeof(LibraryManager));
UserManager = (UserManager)ApplicationHost.CreateInstance(typeof(UserManager));
ImageManager = (ImageManager)ApplicationHost.CreateInstance(typeof(ImageManager));
ProviderManager = (ProviderManager)ApplicationHost.CreateInstance(typeof(ProviderManager));
UserDataManager = (UserDataManager)ApplicationHost.CreateInstance(typeof(UserDataManager));
SecurityManager = (PluginSecurityManager)ApplicationHost.CreateInstance(typeof(PluginSecurityManager));
base.FindParts();
@@ -337,7 +288,6 @@ namespace MediaBrowser.Controller
protected override async Task ReloadInternal()
{
// Reset these so that they can be lazy loaded again
Users = null;
RootFolder = null;
await base.ReloadInternal().ConfigureAwait(false);
@@ -346,7 +296,7 @@ namespace MediaBrowser.Controller
ReloadFileSystemManager();
await UserManager.RefreshUsersMetadata(CancellationToken.None).ConfigureAwait(false);
await ApplicationHost.Resolve<IUserManager>().RefreshUsersMetadata(CancellationToken.None).ConfigureAwait(false);
}
/// <summary>
@@ -453,30 +403,15 @@ namespace MediaBrowser.Controller
FileSystemManager.StartWatchers();
}
/// <summary>
/// Gets a User by Id
/// </summary>
/// <param name="id">The id.</param>
/// <returns>User.</returns>
/// <exception cref="System.ArgumentNullException"></exception>
public User GetUserById(Guid id)
{
if (id == Guid.Empty)
{
throw new ArgumentNullException();
}
return Users.FirstOrDefault(u => u.Id == id);
}
/// <summary>
/// Finds a library item by Id and UserId.
/// </summary>
/// <param name="id">The id.</param>
/// <param name="userId">The user id.</param>
/// <param name="userManager">The user manager.</param>
/// <returns>BaseItem.</returns>
/// <exception cref="System.ArgumentNullException">id</exception>
public BaseItem GetItemById(Guid id, Guid userId)
public BaseItem GetItemById(Guid id, Guid userId, IUserManager userManager)
{
if (id == Guid.Empty)
{
@@ -488,7 +423,7 @@ namespace MediaBrowser.Controller
throw new ArgumentNullException("userId");
}
var user = GetUserById(userId);
var user = userManager.GetUserById(userId);
var userRoot = user.RootFolder;
return userRoot.FindItemById(id, user);