diff --git a/MediaBrowser.Api/ConnectService.cs b/MediaBrowser.Api/ConnectService.cs index dafb03976..102e2d45e 100644 --- a/MediaBrowser.Api/ConnectService.cs +++ b/MediaBrowser.Api/ConnectService.cs @@ -4,7 +4,6 @@ using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Net; using MediaBrowser.Model.Connect; using ServiceStack; -using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -133,10 +132,9 @@ namespace MediaBrowser.Api Task.WaitAll(task); } - public object Get(GetLocalUser request) + public async Task Get(GetLocalUser request) { - var user = _userManager.Users - .FirstOrDefault(i => string.Equals(i.ConnectUserId, request.ConnectUserId, StringComparison.OrdinalIgnoreCase)); + var user = await _connectManager.GetLocalUser(request.ConnectUserId).ConfigureAwait(false); if (user == null) { diff --git a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj index d71f2954b..5806a33d8 100644 --- a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj +++ b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj @@ -52,12 +52,13 @@ False ..\packages\NLog.3.1.0.0\lib\net45\NLog.dll - - ..\packages\SimpleInjector.2.6.0\lib\net45\SimpleInjector.dll - - + False - ..\packages\SimpleInjector.2.6.0\lib\net45\SimpleInjector.Diagnostics.dll + ..\packages\SimpleInjector.2.6.1\lib\net45\SimpleInjector.dll + + + False + ..\packages\SimpleInjector.2.6.1\lib\net45\SimpleInjector.Diagnostics.dll diff --git a/MediaBrowser.Common.Implementations/packages.config b/MediaBrowser.Common.Implementations/packages.config index 410f9f0c0..c57aea0b5 100644 --- a/MediaBrowser.Common.Implementations/packages.config +++ b/MediaBrowser.Common.Implementations/packages.config @@ -2,5 +2,5 @@ - + diff --git a/MediaBrowser.Controller/Connect/IConnectManager.cs b/MediaBrowser.Controller/Connect/IConnectManager.cs index 32a6c449e..a0ab1f9b6 100644 --- a/MediaBrowser.Controller/Connect/IConnectManager.cs +++ b/MediaBrowser.Controller/Connect/IConnectManager.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Connect; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Connect; using System.Collections.Generic; using System.Threading.Tasks; @@ -54,5 +55,19 @@ namespace MediaBrowser.Controller.Connect /// The password MD5. /// Task. Task Authenticate(string username, string passwordMd5); + + /// + /// Gets the local user. + /// + /// The connect user identifier. + /// Task<User>. + Task GetLocalUser(string connectUserId); + + /// + /// Determines whether [is authorization token valid] [the specified token]. + /// + /// The token. + /// true if [is authorization token valid] [the specified token]; otherwise, false. + bool IsAuthorizationTokenValid(string token); } } diff --git a/MediaBrowser.Model/ApiClient/IConnectionManager.cs b/MediaBrowser.Model/ApiClient/IConnectionManager.cs index e31900610..f234bb714 100644 --- a/MediaBrowser.Model/ApiClient/IConnectionManager.cs +++ b/MediaBrowser.Model/ApiClient/IConnectionManager.cs @@ -81,7 +81,7 @@ namespace MediaBrowser.Model.ApiClient /// Logouts this instance. /// /// Task<ConnectionResult>. - Task Logout(); + Task Logout(); /// /// Logins to connect. diff --git a/MediaBrowser.Server.Implementations/Connect/ConnectData.cs b/MediaBrowser.Server.Implementations/Connect/ConnectData.cs index 87d59f356..5ec0bea22 100644 --- a/MediaBrowser.Server.Implementations/Connect/ConnectData.cs +++ b/MediaBrowser.Server.Implementations/Connect/ConnectData.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Model.Connect; -using System; +using System; using System.Collections.Generic; namespace MediaBrowser.Server.Implementations.Connect @@ -21,7 +20,7 @@ namespace MediaBrowser.Server.Implementations.Connect /// Gets or sets the authorizations. /// /// The authorizations. - public List PendingAuthorizations { get; set; } + public List PendingAuthorizations { get; set; } /// /// Gets or sets the last authorizations refresh. @@ -31,7 +30,7 @@ namespace MediaBrowser.Server.Implementations.Connect public ConnectData() { - PendingAuthorizations = new List(); + PendingAuthorizations = new List(); } } } diff --git a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs index 6f8f5e85b..9bf15e43a 100644 --- a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs +++ b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs @@ -498,7 +498,7 @@ namespace MediaBrowser.Server.Implementations.Connect result.IsPending = string.Equals(response.AcceptStatus, "waiting", StringComparison.OrdinalIgnoreCase); - _data.PendingAuthorizations.Add(new ConnectAuthorization + _data.PendingAuthorizations.Add(new ConnectAuthorizationInternal { ConnectUserId = response.UserId, Id = response.Id, @@ -506,7 +506,8 @@ namespace MediaBrowser.Server.Implementations.Connect UserName = response.UserName, ExcludedLibraries = request.ExcludedLibraries, ExcludedChannels = request.ExcludedChannels, - EnableLiveTv = request.EnableLiveTv + EnableLiveTv = request.EnableLiveTv, + AccessToken = accessToken }); CacheData(); @@ -704,7 +705,7 @@ namespace MediaBrowser.Server.Implementations.Connect } var currentPendingList = _data.PendingAuthorizations.ToList(); - var newPendingList = new List(); + var newPendingList = new List(); foreach (var connectEntry in list) { @@ -749,12 +750,13 @@ namespace MediaBrowser.Server.Implementations.Connect } else if (string.Equals(connectEntry.AcceptStatus, "waiting", StringComparison.OrdinalIgnoreCase)) { - currentPendingEntry = currentPendingEntry ?? new ConnectAuthorization(); + currentPendingEntry = currentPendingEntry ?? new ConnectAuthorizationInternal(); currentPendingEntry.ConnectUserId = connectEntry.UserId; currentPendingEntry.ImageUrl = connectEntry.UserImageUrl; currentPendingEntry.UserName = connectEntry.UserName; currentPendingEntry.Id = connectEntry.Id; + currentPendingEntry.AccessToken = connectEntry.AccessToken; newPendingList.Add(currentPendingEntry); } @@ -860,7 +862,17 @@ namespace MediaBrowser.Server.Implementations.Connect } } - return _data.PendingAuthorizations.ToList(); + return _data.PendingAuthorizations.Select(i => new ConnectAuthorization + { + ConnectUserId = i.ConnectUserId, + EnableLiveTv = i.EnableLiveTv, + ExcludedChannels = i.ExcludedChannels, + ExcludedLibraries = i.ExcludedLibraries, + Id = i.Id, + ImageUrl = i.ImageUrl, + UserName = i.UserName + + }).ToList(); } public async Task CancelAuthorization(string id) @@ -951,7 +963,7 @@ namespace MediaBrowser.Server.Implementations.Connect { var user = e.Argument; - //await TryUploadUserPreferences(user, CancellationToken.None).ConfigureAwait(false); + await TryUploadUserPreferences(user, CancellationToken.None).ConfigureAwait(false); } private async Task TryUploadUserPreferences(User user, CancellationToken cancellationToken) @@ -999,5 +1011,30 @@ namespace MediaBrowser.Server.Implementations.Connect { } + + public async Task GetLocalUser(string connectUserId) + { + var user = _userManager.Users + .FirstOrDefault(i => string.Equals(i.ConnectUserId, connectUserId, StringComparison.OrdinalIgnoreCase)); + + if (user == null) + { + await RefreshAuthorizations(CancellationToken.None).ConfigureAwait(false); + } + + return _userManager.Users + .FirstOrDefault(i => string.Equals(i.ConnectUserId, connectUserId, StringComparison.OrdinalIgnoreCase)); + } + + public bool IsAuthorizationTokenValid(string token) + { + if (string.IsNullOrWhiteSpace(token)) + { + throw new ArgumentNullException("token"); + } + + return _userManager.Users.Any(u => string.Equals(token, u.ConnectAccessKey, StringComparison.OrdinalIgnoreCase)) || + _data.PendingAuthorizations.Select(i => i.AccessToken).Contains(token, StringComparer.OrdinalIgnoreCase); + } } } diff --git a/MediaBrowser.Server.Implementations/Connect/Responses.cs b/MediaBrowser.Server.Implementations/Connect/Responses.cs index ff2825d73..e7c3f8154 100644 --- a/MediaBrowser.Server.Implementations/Connect/Responses.cs +++ b/MediaBrowser.Server.Implementations/Connect/Responses.cs @@ -1,4 +1,5 @@ using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Connect; namespace MediaBrowser.Server.Implementations.Connect { @@ -77,4 +78,9 @@ namespace MediaBrowser.Server.Implementations.Connect { public T data { get; set; } } + + public class ConnectAuthorizationInternal : ConnectAuthorization + { + public string AccessToken { get; set; } + } } diff --git a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs index 76e625c05..20137af13 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs @@ -1,4 +1,5 @@ using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Connect; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Session; @@ -15,10 +16,11 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security { private readonly IServerConfigurationManager _config; - public AuthService(IUserManager userManager, ISessionManager sessionManager, IAuthorizationContext authorizationContext, IServerConfigurationManager config) + public AuthService(IUserManager userManager, ISessionManager sessionManager, IAuthorizationContext authorizationContext, IServerConfigurationManager config, IConnectManager connectManager) { AuthorizationContext = authorizationContext; _config = config; + ConnectManager = connectManager; SessionManager = sessionManager; UserManager = userManager; } @@ -26,6 +28,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security public IUserManager UserManager { get; private set; } public ISessionManager SessionManager { get; private set; } public IAuthorizationContext AuthorizationContext { get; private set; } + public IConnectManager ConnectManager { get; private set; } /// /// Restrict authentication to a specific . @@ -65,7 +68,9 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security if (!string.IsNullOrWhiteSpace(auth.Token) || !_config.Configuration.InsecureApps3.Contains(auth.Client ?? string.Empty, StringComparer.OrdinalIgnoreCase)) { - if (!IsValidConnectKey(auth.Token)) + var valid = IsValidConnectKey(auth.Token); + + if (!valid) { SessionManager.ValidateSecurityToken(auth.Token); } @@ -122,12 +127,12 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security private bool IsValidConnectKey(string token) { - if (!string.IsNullOrEmpty(token)) + if (string.IsNullOrEmpty(token)) { - return UserManager.Users.Any(u => string.Equals(token, u.ConnectAccessKey, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(u.ConnectAccessKey)); + return false; } - return false; + return ConnectManager.IsAuthorizationTokenValid(token); } protected bool DoHtmlRedirectIfConfigured(IRequest req, IResponse res, bool includeRedirectParam = false) diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json index 29862cca6..a263d960d 100644 --- a/MediaBrowser.Server.Implementations/Localization/Server/server.json +++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json @@ -889,7 +889,7 @@ "LabelProtocolInfoHelp": "The value that will be used when responding to GetProtocolInfo requests from the device.", "TabKodiMetadata": "Kodi", "HeaderKodiMetadataHelp": "Media Browser includes native support for Kodi Nfo metadata and images. To enable or disable Kodi metadata, use the Advanced tab to configure options for your media types.", - "LabelKodiMetadataUser": "Add user watch data to nfo's for:", + "LabelKodiMetadataUser": "Sync user watch data to nfo's for:", "LabelKodiMetadataUserHelp": "Enable this to keep watch data in sync between Media Browser and Kodi.", "LabelKodiMetadataDateFormat": "Release date format:", "LabelKodiMetadataDateFormatHelp": "All dates within nfo's will be read and written to using this format.", diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index 7eeb527ce..ecba39dd6 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -559,7 +559,7 @@ namespace MediaBrowser.ServerApplication var authContext = new AuthorizationContext(); RegisterSingleInstance(authContext); RegisterSingleInstance(new SessionContext(UserManager, authContext, SessionManager)); - RegisterSingleInstance(new AuthService(UserManager, SessionManager, authContext, ServerConfigurationManager)); + RegisterSingleInstance(new AuthService(UserManager, SessionManager, authContext, ServerConfigurationManager, ConnectManager)); RegisterSingleInstance(new SubtitleEncoder(LibraryManager, LogManager.GetLogger("SubtitleEncoder"), ApplicationPaths, FileSystemManager, MediaEncoder, JsonSerializer)); diff --git a/MediaBrowser.ServerApplication/EntryPoints/StartupWizard.cs b/MediaBrowser.ServerApplication/EntryPoints/StartupWizard.cs index ea346e1be..800eb9c11 100644 --- a/MediaBrowser.ServerApplication/EntryPoints/StartupWizard.cs +++ b/MediaBrowser.ServerApplication/EntryPoints/StartupWizard.cs @@ -1,10 +1,7 @@ using MediaBrowser.Controller; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Logging; using MediaBrowser.ServerApplication.Native; -using System.Linq; namespace MediaBrowser.ServerApplication.EntryPoints { @@ -20,22 +17,17 @@ namespace MediaBrowser.ServerApplication.EntryPoints /// /// The _user manager /// - private readonly IUserManager _userManager; private readonly ILogger _logger; - private readonly IServerConfigurationManager _configurationManager; - /// /// Initializes a new instance of the class. /// /// The app host. - /// The user manager. - public StartupWizard(IServerApplicationHost appHost, IUserManager userManager, IServerConfigurationManager configurationManager, ILogger logger) + /// The logger. + public StartupWizard(IServerApplicationHost appHost, ILogger logger) { _appHost = appHost; _logger = logger; - _userManager = userManager; - _configurationManager = configurationManager; } /// @@ -54,9 +46,7 @@ namespace MediaBrowser.ServerApplication.EntryPoints /// private void LaunchStartupWizard() { - var user = _userManager.Users.FirstOrDefault(u => u.Configuration.IsAdministrator); - - BrowserLauncher.OpenDashboardPage("wizardstart.html", user, _configurationManager, _appHost, _logger); + BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost, _logger); } /// diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index df6fd4746..c47dc2155 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -300,7 +300,7 @@ namespace MediaBrowser.ServerApplication { if (e.Reason == SessionSwitchReason.SessionLogon) { - BrowserLauncher.OpenDashboard(_appHost.UserManager, _appHost.ServerConfigurationManager, _appHost, _logger); + BrowserLauncher.OpenDashboard(_appHost, _logger); } } diff --git a/MediaBrowser.ServerApplication/Native/BrowserLauncher.cs b/MediaBrowser.ServerApplication/Native/BrowserLauncher.cs index 310592882..d4a85159d 100644 --- a/MediaBrowser.ServerApplication/Native/BrowserLauncher.cs +++ b/MediaBrowser.ServerApplication/Native/BrowserLauncher.cs @@ -1,11 +1,7 @@ using MediaBrowser.Controller; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; using MediaBrowser.Model.Logging; using System; using System.Diagnostics; -using System.Linq; namespace MediaBrowser.ServerApplication.Native { @@ -18,13 +14,11 @@ namespace MediaBrowser.ServerApplication.Native /// Opens the dashboard page. /// /// The page. - /// The logged in user. - /// The configuration manager. /// The app host. /// The logger. - public static void OpenDashboardPage(string page, User loggedInUser, IServerConfigurationManager configurationManager, IServerApplicationHost appHost, ILogger logger) + public static void OpenDashboardPage(string page, IServerApplicationHost appHost, ILogger logger) { - var url = "http://localhost:" + configurationManager.Configuration.HttpServerPortNumber + "/" + + var url = "http://localhost:" + appHost.HttpServerPort + "/" + appHost.WebApplicationName + "/web/" + page; OpenUrl(url, logger); @@ -51,38 +45,31 @@ namespace MediaBrowser.ServerApplication.Native /// /// Opens the web client. /// - /// The user manager. - /// The configuration manager. /// The app host. /// The logger. - public static void OpenWebClient(IUserManager userManager, IServerConfigurationManager configurationManager, IServerApplicationHost appHost, ILogger logger) + public static void OpenWebClient(IServerApplicationHost appHost, ILogger logger) { - var user = userManager.Users.FirstOrDefault(u => u.Configuration.IsAdministrator); - OpenDashboardPage("index.html", user, configurationManager, appHost, logger); + OpenDashboardPage("index.html", appHost, logger); } /// /// Opens the dashboard. /// - /// The user manager. - /// The configuration manager. /// The app host. /// The logger. - public static void OpenDashboard(IUserManager userManager, IServerConfigurationManager configurationManager, IServerApplicationHost appHost, ILogger logger) + public static void OpenDashboard(IServerApplicationHost appHost, ILogger logger) { - var user = userManager.Users.FirstOrDefault(u => u.Configuration.IsAdministrator); - OpenDashboardPage("dashboard.html", user, configurationManager, appHost, logger); + OpenDashboardPage("dashboard.html", appHost, logger); } /// /// Opens the swagger. /// - /// The configuration manager. /// The app host. /// The logger. - public static void OpenSwagger(IServerConfigurationManager configurationManager, IServerApplicationHost appHost, ILogger logger) + public static void OpenSwagger(IServerApplicationHost appHost, ILogger logger) { - OpenUrl("http://localhost:" + configurationManager.Configuration.HttpServerPortNumber + "/" + + OpenUrl("http://localhost:" + appHost.HttpServerPort + "/" + appHost.WebApplicationName + "/swagger-ui/index.html", logger); } diff --git a/MediaBrowser.ServerApplication/ServerNotifyIcon.cs b/MediaBrowser.ServerApplication/ServerNotifyIcon.cs index e86327a0d..585d6219a 100644 --- a/MediaBrowser.ServerApplication/ServerNotifyIcon.cs +++ b/MediaBrowser.ServerApplication/ServerNotifyIcon.cs @@ -107,7 +107,7 @@ namespace MediaBrowser.ServerApplication cmdRestart, toolStripSeparator1, cmdApiDocs, - cmdLogWindow, + //cmdLogWindow, cmdCommunity, cmdExit}); contextMenuStrip1.Name = "contextMenuStrip1"; @@ -286,7 +286,7 @@ namespace MediaBrowser.ServerApplication void cmdBrowse_Click(object sender, EventArgs e) { - BrowserLauncher.OpenWebClient(_userManager, _configurationManager, _appHost, _logger); + BrowserLauncher.OpenWebClient(_appHost, _logger); } void cmdCommunity_Click(object sender, EventArgs e) @@ -296,7 +296,7 @@ namespace MediaBrowser.ServerApplication void cmdConfigure_Click(object sender, EventArgs e) { - BrowserLauncher.OpenDashboard(_userManager, _configurationManager, _appHost, _logger); + BrowserLauncher.OpenDashboard(_appHost, _logger); } void cmdLogWindow_Click(object sender, EventArgs e) @@ -323,7 +323,7 @@ namespace MediaBrowser.ServerApplication void cmdSwagger_Click(object sender, EventArgs e) { - BrowserLauncher.OpenSwagger(_configurationManager, _appHost, _logger); + BrowserLauncher.OpenSwagger(_appHost, _logger); } ~ServerNotifyIcon() diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index 4919b9e6a..eb44f6d35 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -206,7 +206,7 @@ namespace MediaBrowser.WebDashboard.Api } } - path = path.Replace("scripts/jquery.mobile-1.4.4.min.map", "thirdparty/jquerymobile-1.4.4/jquery.mobile-1.4.4.min.map", StringComparison.OrdinalIgnoreCase); + path = path.Replace("scripts/jquery.mobile-1.4.5.min.map", "thirdparty/jquerymobile-1.4.5/jquery.mobile-1.4.5.min.map", StringComparison.OrdinalIgnoreCase); var localizationCulture = GetLocalizationCulture(); diff --git a/MediaBrowser.WebDashboard/Api/PackageCreator.cs b/MediaBrowser.WebDashboard/Api/PackageCreator.cs index 0a6e48ea9..41e588453 100644 --- a/MediaBrowser.WebDashboard/Api/PackageCreator.cs +++ b/MediaBrowser.WebDashboard/Api/PackageCreator.cs @@ -195,7 +195,7 @@ namespace MediaBrowser.WebDashboard.Api var files = new[] { - "thirdparty/jquerymobile-1.4.4/jquery.mobile-1.4.4.min.css", + "thirdparty/jquerymobile-1.4.5/jquery.mobile-1.4.5.min.css", "thirdparty/swipebox-master/css/swipebox.min.css" + versionString, "css/all.css" + versionString }; @@ -241,7 +241,7 @@ namespace MediaBrowser.WebDashboard.Api // jQuery + jQuery mobile await AppendResource(memoryStream, "thirdparty/jquery-2.1.1.min.js", newLineBytes).ConfigureAwait(false); - await AppendResource(memoryStream, "thirdparty/jquerymobile-1.4.4/jquery.mobile-1.4.4.min.js", newLineBytes).ConfigureAwait(false); + await AppendResource(memoryStream, "thirdparty/jquerymobile-1.4.5/jquery.mobile-1.4.5.min.js", newLineBytes).ConfigureAwait(false); await AppendResource(memoryStream, "thirdparty/jquery.unveil-custom.js", newLineBytes).ConfigureAwait(false); diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 688d442e3..a98593275 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -57,8 +57,9 @@ ..\ThirdParty\ServiceStack\ServiceStack.Interfaces.dll - - ..\packages\WebMarkupMin.Core.0.9.7\lib\net40\WebMarkupMin.Core.dll + + False + ..\packages\WebMarkupMin.Core.0.9.8\lib\net40\WebMarkupMin.Core.dll @@ -1562,6 +1563,615 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -2289,6 +2899,9 @@ PreserveNewest + + PreserveNewest + diff --git a/MediaBrowser.WebDashboard/app.config b/MediaBrowser.WebDashboard/app.config index d66f0b626..b158873ef 100644 --- a/MediaBrowser.WebDashboard/app.config +++ b/MediaBrowser.WebDashboard/app.config @@ -10,6 +10,7 @@ + diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config index 573abbdbd..37be290ee 100644 --- a/MediaBrowser.WebDashboard/packages.config +++ b/MediaBrowser.WebDashboard/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec index 2c6ba4bd3..ffc637586 100644 --- a/Nuget/MediaBrowser.Common.Internal.nuspec +++ b/Nuget/MediaBrowser.Common.Internal.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Common.Internal - 3.0.504 + 3.0.505 MediaBrowser.Common.Internal Luke ebr,Luke,scottisafool @@ -12,9 +12,9 @@ Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption. Copyright © Media Browser 2013 - + - + diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec index 1640c56dd..dbb1c0e26 100644 --- a/Nuget/MediaBrowser.Common.nuspec +++ b/Nuget/MediaBrowser.Common.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Common - 3.0.504 + 3.0.505 MediaBrowser.Common Media Browser Team ebr,Luke,scottisafool diff --git a/Nuget/MediaBrowser.Model.Signed.nuspec b/Nuget/MediaBrowser.Model.Signed.nuspec index 190ce4313..7addc9081 100644 --- a/Nuget/MediaBrowser.Model.Signed.nuspec +++ b/Nuget/MediaBrowser.Model.Signed.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Model.Signed - 3.0.504 + 3.0.505 MediaBrowser.Model - Signed Edition Media Browser Team ebr,Luke,scottisafool diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec index 264c31bca..b0ddcf68f 100644 --- a/Nuget/MediaBrowser.Server.Core.nuspec +++ b/Nuget/MediaBrowser.Server.Core.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Server.Core - 3.0.504 + 3.0.505 Media Browser.Server.Core Media Browser Team ebr,Luke,scottisafool @@ -12,7 +12,7 @@ Contains core components required to build plugins for Media Browser Server. Copyright © Media Browser 2013 - + diff --git a/SharedVersion.cs b/SharedVersion.cs index 2f809db5d..3eaf9ea1c 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -3,6 +3,6 @@ #if (DEBUG) [assembly: AssemblyVersion("3.0.*")] #else -//[assembly: AssemblyVersion("3.0.*")] -[assembly: AssemblyVersion("3.0.5416.0")] +[assembly: AssemblyVersion("3.0.*")] +//[assembly: AssemblyVersion("3.0.5416.0")] #endif