From ed94701e7cb77bb1f3409c1555c0c7eab16fd8a4 Mon Sep 17 00:00:00 2001 From: akovach Date: Wed, 11 Feb 2015 14:38:37 -0600 Subject: [PATCH] Honor Web Policy for ColdFusion --- .../WebServers/WebServerController.cs | 6 +++- .../Code/WebServers/WebServerController.cs | 6 +++- .../Web/WebSite.cs | 7 ++++ .../WebsitePanel.Providers.Web.IIS70/IIs70.cs | 10 +++++- .../WebsitePanel/SettingsWebPolicy.ascx | 17 +++++++++ .../WebsitePanel/SettingsWebPolicy.ascx.cs | 4 +++ .../SettingsWebPolicy.ascx.designer.cs | 36 +++++++++++++++++++ 7 files changed, 83 insertions(+), 3 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs index 266fdf3c..51d9713f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs @@ -381,7 +381,10 @@ namespace WebsitePanel.EnterpriseServer site.PerlInstalled = Utils.ParseBool(webPolicy["PerlInstalled"], false); site.PythonInstalled = Utils.ParseBool(webPolicy["PythonInstalled"], false); site.CgiBinInstalled = Utils.ParseBool(webPolicy["CgiBinInstalled"], false); - site.ColdFusionInstalled = false; + QuotaValueInfo quotaInfoCF = PackageController.GetPackageQuota(packageId, Quotas.WEB_COLDFUSION); + site.ColdFusionInstalled = (quotaInfoCF.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["ColdFusionInstalled"], false); + QuotaValueInfo quotaInfoCFV = PackageController.GetPackageQuota(packageId, Quotas.WEB_CFVIRTUALDIRS); + site.CreateCFVirtualDirectoriesPol = (quotaInfoCFV.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["CreateCFVirtualDirectoriesPol"], false); } else @@ -404,6 +407,7 @@ namespace WebsitePanel.EnterpriseServer site.PythonInstalled = false; site.CgiBinInstalled = false; site.ColdFusionInstalled = false; + site.CreateCFVirtualDirectoriesPol = false; } site.HttpRedirect = ""; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs index 5ee1cf98..58d0d8e6 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs @@ -380,7 +380,10 @@ namespace WebsitePanel.EnterpriseServer site.PerlInstalled = Utils.ParseBool(webPolicy["PerlInstalled"], false); site.PythonInstalled = Utils.ParseBool(webPolicy["PythonInstalled"], false); site.CgiBinInstalled = Utils.ParseBool(webPolicy["CgiBinInstalled"], false); - site.ColdFusionInstalled = false; + QuotaValueInfo quotaInfoCF = PackageController.GetPackageQuota(packageId, Quotas.WEB_COLDFUSION); + site.ColdFusionInstalled = (quotaInfoCF.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["ColdFusionInstalled"], false); + QuotaValueInfo quotaInfoCFV = PackageController.GetPackageQuota(packageId, Quotas.WEB_CFVIRTUALDIRS); + site.CreateCFVirtualDirectoriesPol = (quotaInfoCFV.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["CreateCFVirtualDirectoriesPol"], false); } else @@ -403,6 +406,7 @@ namespace WebsitePanel.EnterpriseServer site.PythonInstalled = false; site.CgiBinInstalled = false; site.ColdFusionInstalled = false; + site.CreateCFVirtualDirectoriesPol = false; } site.HttpRedirect = ""; diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs index 82f7a885..ddfeb973 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs @@ -55,6 +55,7 @@ namespace WebsitePanel.Providers.Web private bool frontPageInstalled; private bool coldFusionAvailable; private bool createCFVirtualDirectories; + private bool createCFVirtualDirectoriesPol; private string frontPageAccount; private string frontPagePassword; private string coldFusionVersion; @@ -157,6 +158,12 @@ namespace WebsitePanel.Providers.Web get { return this.createCFVirtualDirectories; } set { this.createCFVirtualDirectories = value; } } + + public bool CreateCFVirtualDirectoriesPol + { + get { return this.createCFVirtualDirectoriesPol; } + set { this.createCFVirtualDirectoriesPol = value; } + } public ServerState SiteState { diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs index c3f26739..a95ade0d 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs @@ -1349,6 +1349,11 @@ namespace WebsitePanel.Providers.Web // UpdateCgiBinFolder(site); // + if (site.CreateCFVirtualDirectoriesPol) + { + //Create CFVirtDirs if enabled in hosting plan, this allows for CF to be enbled via Web Policy + CreateCFVirtualDirectories(site.SiteId); + } try { webObjectsSvc.ChangeSiteState(site.SiteId, ServerState.Started); @@ -1357,7 +1362,7 @@ namespace WebsitePanel.Providers.Web { Log.WriteError(ex); } - // + // return site.SiteId; } @@ -1448,6 +1453,7 @@ namespace WebsitePanel.Providers.Web { DeleteCFVirtualDirectories(site.SiteId); site.CreateCFVirtualDirectories = false; + site.CreateCFVirtualDirectoriesPol = false; } else { @@ -1457,6 +1463,7 @@ namespace WebsitePanel.Providers.Web { DeleteCFVirtualDirectories(site.SiteId); site.CreateCFVirtualDirectories = false; + site.CreateCFVirtualDirectoriesPol = false; } } else @@ -1465,6 +1472,7 @@ namespace WebsitePanel.Providers.Web { CreateCFVirtualDirectories(site.SiteId); site.CreateCFVirtualDirectories = true; + site.CreateCFVirtualDirectoriesPol = true; } } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx index 78d35a1b..157e1850 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx @@ -181,6 +181,23 @@ + + + + + + + + + + + + + + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx.cs index 6fd479b1..6fe0dece 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx.cs @@ -76,6 +76,8 @@ namespace WebsitePanel.Portal chkPerl.Checked = Utils.ParseBool(settings["PerlInstalled"], false); chkPython.Checked = Utils.ParseBool(settings["PythonInstalled"], false); chkCgiBin.Checked = Utils.ParseBool(settings["CgiBinInstalled"], false); + chkCfExt.Checked = Utils.ParseBool(settings["ColdFusionInstalled"], false); + chkVirtDir.Checked = Utils.ParseBool(settings["CreateCFVirtualDirectoriesPol"], false); // anonymous account policy anonymousUsername.Value = settings["AnonymousAccountPolicy"]; @@ -130,6 +132,8 @@ namespace WebsitePanel.Portal settings["PerlInstalled"] = chkPerl.Checked.ToString(); settings["PythonInstalled"] = chkPython.Checked.ToString(); settings["CgiBinInstalled"] = chkCgiBin.Checked.ToString(); + settings["ColdFusionInstalled"] = chkCfExt.Checked.ToString(); + settings["CreateCFVirtualDirectoriesPol"] = chkVirtDir.Checked.ToString(); // anonymous account policy settings["AnonymousAccountPolicy"] = anonymousUsername.Value; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx.designer.cs index 8c442f07..c123254d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsWebPolicy.ascx.designer.cs @@ -462,6 +462,42 @@ namespace WebsitePanel.Portal { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.CheckBox chkCgiBin; + + /// + /// lblCfExt control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblCfExt; + + /// + /// chkCfExt control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkCfExt; + + /// + /// lblVirtDir control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblVirtDir; + + /// + /// chkVirtDir control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkVirtDir; /// /// secAnonymousAccount control.