Files
Umbraco-CMS/src/Umbraco.Web.UI/install/Default.aspx.cs
2013-12-10 11:51:41 +11:00

88 lines
3.1 KiB
C#

using System;
using System.Web;
using System.Web.UI.WebControls;
using Umbraco.Core.IO;
using Umbraco.Web.Install;
using Umbraco.Web.Security;
using Umbraco.Web.UI.Pages;
using umbraco;
namespace Umbraco.Web.UI.Install
{
public partial class Default : BasePage
{
private string _installStep = "";
protected string CurrentStepClass = "";
protected void Page_Load(object sender, System.EventArgs e)
{
rp_steps.DataSource = InstallHelper.InstallerSteps.Values;
rp_steps.DataBind();
}
private void LoadContent(InstallerStep currentStep)
{
PlaceHolderStep.Controls.Clear();
PlaceHolderStep.Controls.Add(LoadControl(IOHelper.ResolveUrl(currentStep.UserControl)));
step.Value = currentStep.Alias;
CurrentStepClass = currentStep.Alias;
}
int _stepCounter = 0;
protected void BindStep(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
var i = (InstallerStep)e.Item.DataItem;
if (!i.HideFromNavigation)
{
var _class = (Literal)e.Item.FindControl("lt_class");
var name = (Literal)e.Item.FindControl("lt_name");
if (i.Alias == CurrentStepClass)
_class.Text = "active";
_stepCounter++;
name.Text = (_stepCounter).ToString() + " - " + i.Name;
}
else
e.Item.Visible = false;
}
}
override protected void OnInit(EventArgs e)
{
base.OnInit(e);
_installStep = Request.GetItemAsString("installStep");
//if this is not an upgrade we will log in with the default user.
// It's not considered an upgrade if the ConfigurationStatus is missing or empty.
if (string.IsNullOrWhiteSpace(GlobalSettings.ConfigurationStatus) == false)
{
var result = Security.ValidateCurrentUser(new HttpContextWrapper(Context));
switch (result)
{
case ValidateRequestAttempt.FailedNoPrivileges:
case ValidateRequestAttempt.FailedTimedOut:
case ValidateRequestAttempt.FailedNoContextId:
Response.Redirect(
//We must add the token to prevent CSRF attacks since the logout occurs on a GET not a POST
SystemDirectories.Umbraco + "/logout.aspx?redir=" + Server.UrlEncode(Request.RawUrl) + "&t=" + Security.UmbracoUserContextId);
break;
}
}
var s = string.IsNullOrEmpty(_installStep)
? InstallHelper.InstallerSteps["welcome"]
: InstallHelper.InstallerSteps[_installStep];
LoadContent(s);
}
}
}