From b69d14da5e330f0695519746556d9c05f7593328 Mon Sep 17 00:00:00 2001 From: Carole Rennie Logan Date: Tue, 19 Nov 2019 23:15:11 +0000 Subject: [PATCH] IUmbracoVersion updates --- src/Umbraco.Web/Editors/BackOfficeController.cs | 5 ++--- .../Editors/BackOfficeServerVariables.cs | 11 +++++------ src/Umbraco.Web/Editors/DashboardController.cs | 6 ++++-- .../Editors/PackageInstallController.cs | 14 +++++++++----- src/Umbraco.Web/Editors/UpdateCheckController.cs | 15 +++++++++++---- src/Umbraco.Web/HtmlHelperBackOfficeExtensions.cs | 4 ++-- .../Install/Controllers/InstallController.cs | 8 ++++---- .../Install/InstallSteps/UpgradeStep.cs | 10 ++++++++-- 8 files changed, 45 insertions(+), 28 deletions(-) diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs index 1276cc41d5..08cb8fa4d5 100644 --- a/src/Umbraco.Web/Editors/BackOfficeController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeController.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -15,7 +14,6 @@ using Newtonsoft.Json; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Configuration; -using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Manifest; using Umbraco.Core.Models.Identity; @@ -44,6 +42,7 @@ namespace Umbraco.Web.Editors private readonly IRuntimeState _runtimeState; private BackOfficeUserManager _userManager; private BackOfficeSignInManager _signInManager; + private IUmbracoVersion _umbracoVersion; public BackOfficeController(IManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper) : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger, umbracoHelper) @@ -258,7 +257,7 @@ namespace Umbraco.Web.Editors [MinifyJavaScriptResult(Order = 1)] public JavaScriptResult ServerVariables() { - var serverVars = new BackOfficeServerVariables(Url, _runtimeState, _features, GlobalSettings); + var serverVars = new BackOfficeServerVariables(Url, _runtimeState, _features, GlobalSettings, _umbracoVersion); //cache the result if debugging is disabled var result = HttpContext.IsDebuggingEnabled diff --git a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs index 1b963f1a62..a15b5bf63b 100644 --- a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs +++ b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs @@ -13,9 +13,6 @@ using Microsoft.Owin.Security; using Umbraco.Core; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; -using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Core.IO; -using Umbraco.Web.Controllers; using Umbraco.Web.Features; using Umbraco.Web.HealthCheck; using Umbraco.Web.Models.ContentEditing; @@ -38,8 +35,9 @@ namespace Umbraco.Web.Editors private readonly IGlobalSettings _globalSettings; private readonly HttpContextBase _httpContext; private readonly IOwinContext _owinContext; + private readonly IUmbracoVersion _umbracoVersion; - internal BackOfficeServerVariables(UrlHelper urlHelper, IRuntimeState runtimeState, UmbracoFeatures features, IGlobalSettings globalSettings) + internal BackOfficeServerVariables(UrlHelper urlHelper, IRuntimeState runtimeState, UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoVersion umbracoVersion) { _urlHelper = urlHelper; _runtimeState = runtimeState; @@ -47,6 +45,7 @@ namespace Umbraco.Web.Editors _globalSettings = globalSettings; _httpContext = _urlHelper.RequestContext.HttpContext; _owinContext = _httpContext.GetOwinContext(); + _umbracoVersion = umbracoVersion; } /// @@ -442,10 +441,10 @@ namespace Umbraco.Web.Editors // add versions - see UmbracoVersion for details & differences // the complete application version (eg "8.1.2-alpha.25") - { "version", Current.UmbracoVersion.SemanticVersion.ToSemanticString() }, + { "version", _umbracoVersion.SemanticVersion.ToSemanticString() }, // the assembly version (eg "8.0.0") - { "assemblyVersion", Current.UmbracoVersion.AssemblyVersion.ToString() } + { "assemblyVersion", _umbracoVersion.AssemblyVersion.ToString() } }; var version = _runtimeState.SemanticVersion.ToSemanticString(); diff --git a/src/Umbraco.Web/Editors/DashboardController.cs b/src/Umbraco.Web/Editors/DashboardController.cs index cfa92003bd..70b21e4a97 100644 --- a/src/Umbraco.Web/Editors/DashboardController.cs +++ b/src/Umbraco.Web/Editors/DashboardController.cs @@ -32,14 +32,16 @@ namespace Umbraco.Web.Editors public class DashboardController : UmbracoApiController { private readonly IDashboardService _dashboardService; + private readonly IUmbracoVersion _umbracoVersion; /// /// Initializes a new instance of the with all its dependencies. /// - public DashboardController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, IDashboardService dashboardService, UmbracoHelper umbracoHelper) + public DashboardController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, IDashboardService dashboardService, UmbracoHelper umbracoHelper, IUmbracoVersion umbracoVersion) : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper) { _dashboardService = dashboardService; + _umbracoVersion = umbracoVersion; } //we have just one instance of HttpClient shared for the entire application @@ -52,7 +54,7 @@ namespace Umbraco.Web.Editors var user = Security.CurrentUser; var allowedSections = string.Join(",", user.AllowedSections); var language = user.Language; - var version = Current.UmbracoVersion.SemanticVersion.ToSemanticString(); + var version = _umbracoVersion.SemanticVersion.ToSemanticString(); var url = string.Format(baseUrl + "{0}?section={0}&allowed={1}&lang={2}&version={3}", section, allowedSections, language, version); var key = "umbraco-dynamic-dashboard-" + language + allowedSections.Replace(",", "-") + section; diff --git a/src/Umbraco.Web/Editors/PackageInstallController.cs b/src/Umbraco.Web/Editors/PackageInstallController.cs index 932a86c082..a6e9034739 100644 --- a/src/Umbraco.Web/Editors/PackageInstallController.cs +++ b/src/Umbraco.Web/Editors/PackageInstallController.cs @@ -35,11 +35,15 @@ namespace Umbraco.Web.Editors [UmbracoApplicationAuthorize(Core.Constants.Applications.Packages)] public class PackageInstallController : UmbracoAuthorizedJsonController { + + private readonly IUmbracoVersion _umbracoVersion; public PackageInstallController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, - IProfilingLogger logger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper) + IProfilingLogger logger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper, IUmbracoVersion umbracoVersion) : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper) { + _umbracoVersion = umbracoVersion; + } /// @@ -118,7 +122,7 @@ namespace Umbraco.Web.Editors if (ins.UmbracoVersionRequirementsType == RequirementsType.Strict) { var packageMinVersion = ins.UmbracoVersion; - if (Current.UmbracoVersion.Current < packageMinVersion) + if (_umbracoVersion.Current < packageMinVersion) { model.IsCompatible = false; } @@ -215,7 +219,7 @@ namespace Umbraco.Web.Editors { var packageFile = await Services.PackagingService.FetchPackageFileAsync( Guid.Parse(packageGuid), - Current.UmbracoVersion.Current, + _umbracoVersion.Current, Security.GetUserId().ResultOr(0)); fileName = packageFile.Name; @@ -259,7 +263,7 @@ namespace Umbraco.Web.Editors if (packageInfo.UmbracoVersionRequirementsType == RequirementsType.Strict) { var packageMinVersion = packageInfo.UmbracoVersion; - if (Current.UmbracoVersion.Current < packageMinVersion) + if (_umbracoVersion.Current < packageMinVersion) throw new HttpResponseException(Request.CreateNotificationValidationErrorResponse( Services.TextService.Localize("packager/targetVersionMismatch", new[] {packageMinVersion.ToString()}))); } @@ -366,7 +370,7 @@ namespace Umbraco.Web.Editors //bump cdf to be safe var clientDependencyConfig = new ClientDependencyConfiguration(Logger); var clientDependencyUpdated = clientDependencyConfig.UpdateVersionNumber( - Current.UmbracoVersion.SemanticVersion, DateTime.UtcNow, "yyyyMMdd"); + _umbracoVersion.SemanticVersion, DateTime.UtcNow, "yyyyMMdd"); var redirectUrl = ""; if (!packageInfo.PackageView.IsNullOrWhiteSpace()) diff --git a/src/Umbraco.Web/Editors/UpdateCheckController.cs b/src/Umbraco.Web/Editors/UpdateCheckController.cs index b3f8676821..2b05008adf 100644 --- a/src/Umbraco.Web/Editors/UpdateCheckController.cs +++ b/src/Umbraco.Web/Editors/UpdateCheckController.cs @@ -15,6 +15,13 @@ namespace Umbraco.Web.Editors [PluginController("UmbracoApi")] public class UpdateCheckController : UmbracoAuthorizedJsonController { + private readonly IUmbracoVersion _umbracoVersion; + + public UpdateCheckController (IUmbracoVersion umbracoVersion) + { + _umbracoVersion = umbracoVersion; + } + [UpdateCheckResponseFilter] public UpgradeCheckResponse GetCheck() { @@ -26,10 +33,10 @@ namespace Umbraco.Web.Editors { var check = new org.umbraco.update.CheckForUpgrade { Timeout = 2000 }; - var result = check.CheckUpgrade(Current.UmbracoVersion.Current.Major, - Current.UmbracoVersion.Current.Minor, - Current.UmbracoVersion.Current.Build, - Current.UmbracoVersion.Comment); + var result = check.CheckUpgrade(_umbracoVersion.Current.Major, + _umbracoVersion.Current.Minor, + _umbracoVersion.Current.Build, + _umbracoVersion.Comment); return new UpgradeCheckResponse(result.UpgradeType.ToString(), result.Comment, result.UpgradeUrl); } diff --git a/src/Umbraco.Web/HtmlHelperBackOfficeExtensions.cs b/src/Umbraco.Web/HtmlHelperBackOfficeExtensions.cs index 1d518fa1d3..d9c2e2b881 100644 --- a/src/Umbraco.Web/HtmlHelperBackOfficeExtensions.cs +++ b/src/Umbraco.Web/HtmlHelperBackOfficeExtensions.cs @@ -36,9 +36,9 @@ namespace Umbraco.Web /// These are the bare minimal server variables that are required for the application to start without being authenticated, /// we will load the rest of the server vars after the user is authenticated. /// - public static IHtmlString BareMinimumServerVariablesScript(this HtmlHelper html, UrlHelper uri, string externalLoginsUrl, UmbracoFeatures features, IGlobalSettings globalSettings) + public static IHtmlString BareMinimumServerVariablesScript(this HtmlHelper html, UrlHelper uri, string externalLoginsUrl, UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoVersion umbracoVersion) { - var serverVars = new BackOfficeServerVariables(uri, Current.RuntimeState, features, globalSettings); + var serverVars = new BackOfficeServerVariables(uri, Current.RuntimeState, features, globalSettings, umbracoVersion); var minVars = serverVars.BareMinimumServerVariables(); var str = @"