Files
Umbraco-CMS/src/Umbraco.Web/Install/Controllers/InstallController.cs

73 lines
2.8 KiB
C#
Raw Normal View History

2018-03-27 10:04:07 +02:00
using System;
using System.Web.Mvc;
using Umbraco.Core;
using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Migrations.Install;
using Umbraco.Web.Security;
namespace Umbraco.Web.Install.Controllers
{
/// <summary>
/// The MVC Installation controller
/// </summary>
/// <remarks>
/// NOTE: All views must have their full paths as we do not have a custom view engine for the installation views!
/// </remarks>
[InstallAuthorize]
public class InstallController : Controller
{
2016-11-29 10:31:25 +01:00
private readonly DatabaseBuilder _databaseBuilder;
private readonly UmbracoContext _umbracoContext;
private readonly IRuntimeState _runtime;
private readonly ILogger _logger;
2016-11-29 10:31:25 +01:00
public InstallController(UmbracoContext umbracoContext, DatabaseBuilder databaseBuilder, IRuntimeState runtime, ILogger logger)
2017-07-20 11:21:28 +02:00
{
_umbracoContext = umbracoContext;
2016-11-29 10:31:25 +01:00
_databaseBuilder = databaseBuilder;
_runtime = runtime;
2017-07-20 11:21:28 +02:00
_logger = logger;
}
[HttpGet]
public ActionResult Index()
{
if (_runtime.Level == RuntimeLevel.Run)
return Redirect(SystemDirectories.Umbraco.EnsureEndsWith('/'));
2014-02-27 10:16:30 +01:00
if (_runtime.Level == RuntimeLevel.Upgrade)
{
// Update ClientDependency version
var clientDependencyConfig = new ClientDependencyConfiguration(_logger);
2018-03-27 10:04:07 +02:00
var clientDependencyUpdated = clientDependencyConfig.UpdateVersionNumber(
UmbracoVersion.SemanticVersion, DateTime.UtcNow, "yyyyMMdd");
2017-09-19 15:51:47 +02:00
// Delete ClientDependency temp directories to make sure we get fresh caches
var clientDependencyTempFilesDeleted = clientDependencyConfig.ClearTempFiles(HttpContext);
var result = _umbracoContext.Security.ValidateCurrentUser(false);
switch (result)
{
case ValidateRequestAttempt.FailedNoPrivileges:
case ValidateRequestAttempt.FailedNoContextId:
return Redirect(SystemDirectories.Umbraco + "/AuthorizeUpgrade?redir=" + Server.UrlEncode(Request.RawUrl));
}
}
// gen the install base url
ViewBag.InstallApiBaseUrl = Url.GetUmbracoApiService("GetSetup", "InstallApi", "UmbracoInstall").TrimEnd("GetSetup");
// get the base umbraco folder
ViewBag.UmbracoBaseFolder = IOHelper.ResolveUrl(SystemDirectories.Umbraco);
2016-11-29 10:31:25 +01:00
var ih = new InstallHelper(_umbracoContext, _databaseBuilder, _logger);
ih.InstallStatus(false, "");
// always ensure full path (see NOTE in the class remarks)
return View(GlobalSettings.Path.EnsureEndsWith('/') + "install/views/index.cshtml");
}
}
}