diff --git a/WebsitePanel/Sources/Tools/WebsitePanel.AWStats.Viewer/Default.aspx.cs b/WebsitePanel/Sources/Tools/WebsitePanel.AWStats.Viewer/Default.aspx.cs index 6e580608..dcd46dc3 100644 --- a/WebsitePanel/Sources/Tools/WebsitePanel.AWStats.Viewer/Default.aspx.cs +++ b/WebsitePanel/Sources/Tools/WebsitePanel.AWStats.Viewer/Default.aspx.cs @@ -47,17 +47,32 @@ namespace WebsitePanel.AWStats.Viewer { private void Page_Load(object sender, EventArgs e) { + string username = Request["username"]; + string password = Request["password"]; + if (Request.IsAuthenticated) { string identity = Context.User.Identity.Name; string domain = identity.Split('=')[0]; - + if (String.Compare(Request["config"], domain, true) != 0) { FormsAuthentication.SignOut(); - Response.Redirect(Request.Url.AbsolutePath); + domain = Request["domain"]; + if (!String.IsNullOrEmpty(domain) + && !String.IsNullOrEmpty(username) + && !String.IsNullOrEmpty(password)) + { + // perform login + txtUsername.Text = username; + txtDomain.Text = domain; + Login(domain, username, password); + } + else + { + Response.Redirect(Request.Url.AbsolutePath); + } } - Response.Clear(); string queryParams = Request.Url.Query; @@ -74,39 +89,36 @@ namespace WebsitePanel.AWStats.Viewer // replace links awStatsPage = awStatsPage.Replace(AWStatsScript, Request.Url.AbsolutePath); - Response.Write(awStatsPage); Response.End(); } else { - lblMessage.Visible = false; - + lblMessage.Visible = false; + if (!IsPostBack) { string domain = Request["domain"]; - string username = Request["username"]; - string password = Request["password"]; if (String.IsNullOrEmpty(domain)) domain = Request["config"]; txtDomain.Text = domain; - if (!String.IsNullOrEmpty(username)) - txtUsername.Text = username; + if (!String.IsNullOrEmpty(username)) + txtUsername.Text = username; - // check for autologin - if (!String.IsNullOrEmpty(domain) - && !String.IsNullOrEmpty(username) - && !String.IsNullOrEmpty(password)) - { - // perform login - Login(domain, username, password); - } + // check for autologin + if (!String.IsNullOrEmpty(domain) + && !String.IsNullOrEmpty(username) + && !String.IsNullOrEmpty(password)) + { + // perform login + Login(domain, username, password); + } } - } + } } protected void btnView_Click(object sender, EventArgs e) diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Utils/FileUtils.cs b/WebsitePanel/Sources/WebsitePanel.Server.Utils/FileUtils.cs index e73385c2..5a4981fe 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.Utils/FileUtils.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server.Utils/FileUtils.cs @@ -136,7 +136,7 @@ namespace WebsitePanel.Providers.Utils if (String.IsNullOrEmpty(str)) return str; - Regex re = new Regex("%(.+)%", RegexOptions.IgnoreCase); + Regex re = new Regex("%([^\\s\\%]+)%", RegexOptions.IgnoreCase); return re.Replace(str, new MatchEvaluator(EvaluateSystemVariable)); } @@ -185,7 +185,15 @@ namespace WebsitePanel.Providers.Utils private static string EvaluateSystemVariable(Match match) { - return Environment.GetEnvironmentVariable(match.Groups[1].Value); + string EnvVar = Environment.GetEnvironmentVariable(match.Groups[1].Value); + if (string.IsNullOrEmpty(EnvVar)) + { + return @"%" + match.Groups[1].Value + @"%"; + } + else + { + return EnvVar; + } } public static bool FileExists(string path) @@ -967,8 +975,7 @@ namespace WebsitePanel.Providers.Utils catch { } } - - #region Advanced Delete + #region Advanced Delete /// /// Deletes the specified file. ///