diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 03265998..636f427d 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -1481,7 +1481,25 @@ CREATE TABLE [dbo].[ExchangeDisclaimers]( GO +IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'GetResourceGroupByName') +BEGIN +EXEC sp_executesql N'CREATE PROCEDURE [dbo].[GetResourceGroupByName] +( + @GroupName nvarchar(100) +) +AS +SELECT + RG.GroupID, + RG.GroupOrder, + RG.GroupName, + RG.GroupController +FROM ResourceGroups AS RG +WHERE RG.GroupName = @GroupName +RETURN' +END + +GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'GetExchangeDisclaimers') BEGIN diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/EnterpriseStorageProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/EnterpriseStorageProxy.cs index 214dda5a..92276bce 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/EnterpriseStorageProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/EnterpriseStorageProxy.cs @@ -25,7 +25,6 @@ // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -91,6 +90,12 @@ namespace WebsitePanel.EnterpriseServer private System.Threading.SendOrPostCallback CheckUsersDomainExistsOperationCompleted; + private System.Threading.SendOrPostCallback GetDirectoryBrowseEnabledOperationCompleted; + + private System.Threading.SendOrPostCallback SetDirectoryBrowseEnabledOperationCompleted; + + private System.Threading.SendOrPostCallback SetEnterpriseFolderSettingsOperationCompleted; + /// public esEnterpriseStorage() { @@ -136,6 +141,15 @@ namespace WebsitePanel.EnterpriseServer /// public event CheckUsersDomainExistsCompletedEventHandler CheckUsersDomainExistsCompleted; + /// + public event GetDirectoryBrowseEnabledCompletedEventHandler GetDirectoryBrowseEnabledCompleted; + + /// + public event SetDirectoryBrowseEnabledCompletedEventHandler SetDirectoryBrowseEnabledCompleted; + + /// + public event SetEnterpriseFolderSettingsCompletedEventHandler SetEnterpriseFolderSettingsCompleted; + /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/CheckFileServicesInstallation", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public bool CheckFileServicesInstallation(int serviceId) @@ -825,6 +839,167 @@ namespace WebsitePanel.EnterpriseServer } } + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetDirectoryBrowseEnabled", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public bool GetDirectoryBrowseEnabled(int itemId, string site) + { + object[] results = this.Invoke("GetDirectoryBrowseEnabled", new object[] { + itemId, + site}); + return ((bool)(results[0])); + } + + /// + public System.IAsyncResult BeginGetDirectoryBrowseEnabled(int itemId, string site, System.AsyncCallback callback, object asyncState) + { + return this.BeginInvoke("GetDirectoryBrowseEnabled", new object[] { + itemId, + site}, callback, asyncState); + } + + /// + public bool EndGetDirectoryBrowseEnabled(System.IAsyncResult asyncResult) + { + object[] results = this.EndInvoke(asyncResult); + return ((bool)(results[0])); + } + + /// + public void GetDirectoryBrowseEnabledAsync(int itemId, string site) + { + this.GetDirectoryBrowseEnabledAsync(itemId, site, null); + } + + /// + public void GetDirectoryBrowseEnabledAsync(int itemId, string site, object userState) + { + if ((this.GetDirectoryBrowseEnabledOperationCompleted == null)) + { + this.GetDirectoryBrowseEnabledOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDirectoryBrowseEnabledOperationCompleted); + } + this.InvokeAsync("GetDirectoryBrowseEnabled", new object[] { + itemId, + site}, this.GetDirectoryBrowseEnabledOperationCompleted, userState); + } + + private void OnGetDirectoryBrowseEnabledOperationCompleted(object arg) + { + if ((this.GetDirectoryBrowseEnabledCompleted != null)) + { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetDirectoryBrowseEnabledCompleted(this, new GetDirectoryBrowseEnabledCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SetDirectoryBrowseEnabled", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public void SetDirectoryBrowseEnabled(int itemId, string site, bool enabled) + { + this.Invoke("SetDirectoryBrowseEnabled", new object[] { + itemId, + site, + enabled}); + } + + /// + public System.IAsyncResult BeginSetDirectoryBrowseEnabled(int itemId, string site, bool enabled, System.AsyncCallback callback, object asyncState) + { + return this.BeginInvoke("SetDirectoryBrowseEnabled", new object[] { + itemId, + site, + enabled}, callback, asyncState); + } + + /// + public void EndSetDirectoryBrowseEnabled(System.IAsyncResult asyncResult) + { + this.EndInvoke(asyncResult); + } + + /// + public void SetDirectoryBrowseEnabledAsync(int itemId, string site, bool enabled) + { + this.SetDirectoryBrowseEnabledAsync(itemId, site, enabled, null); + } + + /// + public void SetDirectoryBrowseEnabledAsync(int itemId, string site, bool enabled, object userState) + { + if ((this.SetDirectoryBrowseEnabledOperationCompleted == null)) + { + this.SetDirectoryBrowseEnabledOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetDirectoryBrowseEnabledOperationCompleted); + } + this.InvokeAsync("SetDirectoryBrowseEnabled", new object[] { + itemId, + site, + enabled}, this.SetDirectoryBrowseEnabledOperationCompleted, userState); + } + + private void OnSetDirectoryBrowseEnabledOperationCompleted(object arg) + { + if ((this.SetDirectoryBrowseEnabledCompleted != null)) + { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SetDirectoryBrowseEnabledCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SetEnterpriseFolderSettings", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public void SetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled) + { + this.Invoke("SetEnterpriseFolderSettings", new object[] { + itemId, + folder, + permissions, + directoyBrowsingEnabled}); + } + + /// + public System.IAsyncResult BeginSetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, System.AsyncCallback callback, object asyncState) + { + return this.BeginInvoke("SetEnterpriseFolderSettings", new object[] { + itemId, + folder, + permissions, + directoyBrowsingEnabled}, callback, asyncState); + } + + /// + public void EndSetEnterpriseFolderSettings(System.IAsyncResult asyncResult) + { + this.EndInvoke(asyncResult); + } + + /// + public void SetEnterpriseFolderSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled) + { + this.SetEnterpriseFolderSettingsAsync(itemId, folder, permissions, directoyBrowsingEnabled, null); + } + + /// + public void SetEnterpriseFolderSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, object userState) + { + if ((this.SetEnterpriseFolderSettingsOperationCompleted == null)) + { + this.SetEnterpriseFolderSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetEnterpriseFolderSettingsOperationCompleted); + } + this.InvokeAsync("SetEnterpriseFolderSettings", new object[] { + itemId, + folder, + permissions, + directoyBrowsingEnabled}, this.SetEnterpriseFolderSettingsOperationCompleted, userState); + } + + private void OnSetEnterpriseFolderSettingsOperationCompleted(object arg) + { + if ((this.SetEnterpriseFolderSettingsCompleted != null)) + { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SetEnterpriseFolderSettingsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + /// public new void CancelAsync(object userState) { @@ -1221,4 +1396,42 @@ namespace WebsitePanel.EnterpriseServer } } } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + public delegate void GetDirectoryBrowseEnabledCompletedEventHandler(object sender, GetDirectoryBrowseEnabledCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetDirectoryBrowseEnabledCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDirectoryBrowseEnabledCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public bool Result + { + get + { + this.RaiseExceptionIfNecessary(); + return ((bool)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + public delegate void SetDirectoryBrowseEnabledCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + public delegate void SetEnterpriseFolderSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/WebServersProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/WebServersProxy.cs index f3735ef4..30989c05 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/WebServersProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/WebServersProxy.cs @@ -116,10 +116,6 @@ namespace WebsitePanel.EnterpriseServer private System.Threading.SendOrPostCallback DeleteCertificateRequestOperationCompleted; - private System.Threading.SendOrPostCallback GetDirectoryBrowseEnabledOperationCompleted; - - private System.Threading.SendOrPostCallback SetDirectoryBrowseEnabledOperationCompleted; - private System.Threading.SendOrPostCallback GetRawWebSitesPagedOperationCompleted; private System.Threading.SendOrPostCallback GetWebSitesOperationCompleted; @@ -332,12 +328,6 @@ namespace WebsitePanel.EnterpriseServer /// public event DeleteCertificateRequestCompletedEventHandler DeleteCertificateRequestCompleted; - /// - public event GetDirectoryBrowseEnabledCompletedEventHandler GetDirectoryBrowseEnabledCompleted; - - /// - public event SetDirectoryBrowseEnabledCompletedEventHandler SetDirectoryBrowseEnabledCompleted; - /// public event GetRawWebSitesPagedCompletedEventHandler GetRawWebSitesPagedCompleted; @@ -1869,111 +1859,6 @@ namespace WebsitePanel.EnterpriseServer } } - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetDirectoryBrowseEnabled", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public bool GetDirectoryBrowseEnabled(int itemId, string site) - { - object[] results = this.Invoke("GetDirectoryBrowseEnabled", new object[] { - itemId, - site}); - return ((bool)(results[0])); - } - - /// - public System.IAsyncResult BeginGetDirectoryBrowseEnabled(int itemId, string site, System.AsyncCallback callback, object asyncState) - { - return this.BeginInvoke("GetDirectoryBrowseEnabled", new object[] { - itemId, - site}, callback, asyncState); - } - - /// - public bool EndGetDirectoryBrowseEnabled(System.IAsyncResult asyncResult) - { - object[] results = this.EndInvoke(asyncResult); - return ((bool)(results[0])); - } - - /// - public void GetDirectoryBrowseEnabledAsync(int itemId, string site) - { - this.GetDirectoryBrowseEnabledAsync(itemId, site, null); - } - - /// - public void GetDirectoryBrowseEnabledAsync(int itemId, string site, object userState) - { - if ((this.GetDirectoryBrowseEnabledOperationCompleted == null)) - { - this.GetDirectoryBrowseEnabledOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDirectoryBrowseEnabledOperationCompleted); - } - this.InvokeAsync("GetDirectoryBrowseEnabled", new object[] { - itemId, - site}, this.GetDirectoryBrowseEnabledOperationCompleted, userState); - } - - private void OnGetDirectoryBrowseEnabledOperationCompleted(object arg) - { - if ((this.GetDirectoryBrowseEnabledCompleted != null)) - { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetDirectoryBrowseEnabledCompleted(this, new GetDirectoryBrowseEnabledCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SetDirectoryBrowseEnabled", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public void SetDirectoryBrowseEnabled(int itemId, string site, bool enabled) - { - this.Invoke("SetDirectoryBrowseEnabled", new object[] { - itemId, - site, - enabled}); - } - - /// - public System.IAsyncResult BeginSetDirectoryBrowseEnabled(int itemId, string site, bool enabled, System.AsyncCallback callback, object asyncState) - { - return this.BeginInvoke("SetDirectoryBrowseEnabled", new object[] { - itemId, - site, - enabled}, callback, asyncState); - } - - /// - public void EndSetDirectoryBrowseEnabled(System.IAsyncResult asyncResult) - { - this.EndInvoke(asyncResult); - } - - /// - public void SetDirectoryBrowseEnabledAsync(int itemId, string site, bool enabled) - { - this.SetDirectoryBrowseEnabledAsync(itemId, site, enabled, null); - } - - /// - public void SetDirectoryBrowseEnabledAsync(int itemId, string site, bool enabled, object userState) - { - if ((this.SetDirectoryBrowseEnabledOperationCompleted == null)) - { - this.SetDirectoryBrowseEnabledOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetDirectoryBrowseEnabledOperationCompleted); - } - this.InvokeAsync("SetDirectoryBrowseEnabled", new object[] { - itemId, - site, - enabled}, this.SetDirectoryBrowseEnabledOperationCompleted, userState); - } - - private void OnSetDirectoryBrowseEnabledOperationCompleted(object arg) - { - if ((this.SetDirectoryBrowseEnabledCompleted != null)) - { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.SetDirectoryBrowseEnabledCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRawWebSitesPaged", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public System.Data.DataSet GetRawWebSitesPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) @@ -6032,40 +5917,6 @@ namespace WebsitePanel.EnterpriseServer } } - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] - public delegate void GetDirectoryBrowseEnabledCompletedEventHandler(object sender, GetDirectoryBrowseEnabledCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetDirectoryBrowseEnabledCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - - private object[] results; - - internal GetDirectoryBrowseEnabledCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { - this.results = results; - } - - /// - public bool Result - { - get - { - this.RaiseExceptionIfNecessary(); - return ((bool)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] - public delegate void SetDirectoryBrowseEnabledCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetRawWebSitesPagedCompletedEventHandler(object sender, GetRawWebSitesPagedCompletedEventArgs e); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index 168db35f..3bc214d1 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -1040,6 +1040,15 @@ namespace WebsitePanel.EnterpriseServer CommandType.StoredProcedure, ObjectQualifier + "GetResourceGroups"); } + + public static IDataReader GetResourceGroupByName(string groupName) + { + return SqlHelper.ExecuteReader(ConnectionString, + CommandType.StoredProcedure, + ObjectQualifier + "GetResourceGroupByName", + new SqlParameter("@groupName", groupName)); + } + #endregion #region Service Items diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs index 9395dcb2..dec560e2 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs @@ -46,6 +46,7 @@ using WebsitePanel.Providers.ResultObjects; using WebsitePanel.Providers.Web; using WebsitePanel.Providers.HostedSolution; using WebsitePanel.EnterpriseServer.Base.HostedSolution; +using WebsitePanel.Server.Client; namespace WebsitePanel.EnterpriseServer { @@ -139,6 +140,34 @@ namespace WebsitePanel.EnterpriseServer return CheckUsersDomainExistsInternal(itemId); } + #region Directory Browsing + + public static bool GetDirectoryBrowseEnabled(int itemId, string siteId) + { + return GetDirectoryBrowseEnabledInternal(itemId, siteId); + } + + public static void SetDirectoryBrowseEnabled(int itemId, string siteId, bool enabled) + { + SetDirectoryBrowseEnabledInternal(itemId, siteId, enabled); + } + + #endregion + + #region WebDav + + public static int AddWebDavDirectory(int packageId, string site, string vdirName, string contentpath) + { + return AddWebDavDirectoryInternal(packageId, site, vdirName, contentpath); + } + + public static int DeleteWebDavDirectory(int packageId, string site, string vdirName) + { + return DeleteWebDavDirectoryInternal(packageId, site, vdirName); + } + + #endregion + #endregion protected static bool CheckUsersDomainExistsInternal(int itemId) @@ -155,18 +184,19 @@ namespace WebsitePanel.EnterpriseServer protected static bool CheckUsersDomainExistsInternal(int itemId, int packageId) { - int webServiceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web); - var esServiceId = GetEnterpriseStorageServiceID(packageId); + var web = GetWebServer(packageId); - StringDictionary esSesstings = ServerController.GetServiceSettings(esServiceId); + if (web != null) + { + var esServiceId = GetEnterpriseStorageServiceID(packageId); - string usersDomain = esSesstings["UsersDomain"]; + StringDictionary esSesstings = ServerController.GetServiceSettings(esServiceId); - WebServer web = new WebServer(); - ServiceProviderProxy.Init(web, webServiceId); + string usersDomain = esSesstings["UsersDomain"]; - if (web.SiteExists(usersDomain)) - return true; + if (web.SiteExists(usersDomain)) + return true; + } return false; } @@ -196,8 +226,7 @@ namespace WebsitePanel.EnterpriseServer string usersDomain = esSesstings["UsersDomain"]; - WebServer web = new WebServer(); - ServiceProviderProxy.Init(web, webServiceId); + WebServer web = GetWebServer(packageId); if (!web.VirtualDirectoryExists(usersDomain, org.OrganizationId)) { @@ -230,7 +259,7 @@ namespace WebsitePanel.EnterpriseServer EnterpriseStorageController.CreateFolder(itemId); - WebServerController.AddWebDavDirectory(packageId, usersDomain, org.OrganizationId, homePath); + EnterpriseStorageController.AddWebDavDirectory(packageId, usersDomain, org.OrganizationId, homePath); int osId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Os); bool enableHardQuota = (esSesstings["enablehardquota"] != null) @@ -279,7 +308,7 @@ namespace WebsitePanel.EnterpriseServer string usersDomain = esSesstings["UsersDomain"]; - WebServerController.DeleteWebDavDirectory(packageId, usersDomain, org.OrganizationId); + EnterpriseStorageController.DeleteWebDavDirectory(packageId, usersDomain, org.OrganizationId); EnterpriseStorageController.DeleteFolder(itemId); } @@ -482,8 +511,7 @@ namespace WebsitePanel.EnterpriseServer } - protected static SystemFilesPaged GetEnterpriseFoldersPagedInternal(int itemId, string filterValue, string sortColumn, - int startRow, int maximumRows) + protected static SystemFilesPaged GetEnterpriseFoldersPagedInternal(int itemId, string filterValue, string sortColumn, int startRow, int maximumRows) { SystemFilesPaged result = new SystemFilesPaged(); @@ -519,6 +547,98 @@ namespace WebsitePanel.EnterpriseServer return result; } + + #region WebDav + + protected static int AddWebDavDirectoryInternal(int packageId, string site, string vdirName, string contentpath) + { + // check account + int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); + if (accountCheck < 0) return accountCheck; + + // place log record + TaskManager.StartTask("ENTERPRISE_STORAGE", "ADD_VDIR", vdirName); + + TaskManager.WriteParameter("enterprise storage", site); + + try + { + // create virtual directory + WebVirtualDirectory dir = new WebVirtualDirectory(); + dir.Name = vdirName; + dir.ContentPath = Path.Combine(contentpath, vdirName); + + dir.EnableAnonymousAccess = false; + dir.EnableWindowsAuthentication = false; + dir.EnableBasicAuthentication = false; + + //dir.InstalledDotNetFramework = aspNet; + + dir.DefaultDocs = null; // inherit from service + dir.HttpRedirect = ""; + dir.HttpErrors = null; + dir.MimeMaps = null; + + int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web); + + if (serviceId == -1) + return serviceId; + + // create directory + + WebServer web = GetWebServer(packageId); + if (web.VirtualDirectoryExists(site, vdirName)) + return BusinessErrorCodes.ERROR_VDIR_ALREADY_EXISTS; + + web.CreateVirtualDirectory(site, dir); + + return 0; + + } + catch (Exception ex) + { + throw TaskManager.WriteError(ex); + } + finally + { + TaskManager.CompleteTask(); + } + } + + protected static int DeleteWebDavDirectoryInternal(int packageId, string site, string vdirName) + { + // check account + int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); + if (accountCheck < 0) return accountCheck; + + // place log record + TaskManager.StartTask("ENTERPRISE_STORAGE", "DELETE_VDIR", vdirName); + + TaskManager.WriteParameter("enterprise storage", site); + + try + { + int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web); + + if (serviceId == -1) + return serviceId; + + // create directory + WebServer web = GetWebServer(packageId); + if (web.VirtualDirectoryExists(site, vdirName)) + web.DeleteVirtualDirectory(site, vdirName); + + return 0; + } + catch (Exception ex) + { + throw TaskManager.WriteError(ex); + } + finally + { + TaskManager.CompleteTask(); + } + } protected static ResultObject SetFolderWebDavRulesInternal(int itemId, string folder, ESPermission[] permission) { @@ -533,7 +653,7 @@ namespace WebsitePanel.EnterpriseServer return null; } - var rules = ConvertToWebDavRule(itemId,permission); + var rules = ConvertToWebDavRule(itemId, permission); EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId)); @@ -580,6 +700,39 @@ namespace WebsitePanel.EnterpriseServer } + #endregion + + #region Directory Browsing + + private static bool GetDirectoryBrowseEnabledInternal(int itemId, string siteId) + { + // load organization + var org = OrganizationController.GetOrganization(itemId); + + if (org == null) + return false; + + var webServer = GetWebServer(org.PackageId); + + return webServer.GetDirectoryBrowseEnabled(siteId); + } + + private static void SetDirectoryBrowseEnabledInternal(int itemId, string siteId, bool enabled) + { + // load organization + var org = OrganizationController.GetOrganization(itemId); + + if (org == null) + return; + + + var webServer = GetWebServer(org.PackageId); + + webServer.SetDirectoryBrowseEnabled(siteId, enabled); + } + + #endregion + private static int GetEnterpriseStorageServiceID(int packageId) { return PackageController.GetPackageServiceId(packageId, ResourceGroups.EnterpriseStorage); @@ -602,7 +755,8 @@ namespace WebsitePanel.EnterpriseServer var account = ObjectUtils.FillObjectFromDataReader(DataProvider.GetExchangeAccountByAccountName(itemId, permission.Account)); - if (account.AccountType == ExchangeAccountType.SecurityGroup) + if (account.AccountType == ExchangeAccountType.SecurityGroup + || account.AccountType == ExchangeAccountType.DefaultSecurityGroup) { rule.Roles.Add(permission.Account); } @@ -626,7 +780,7 @@ namespace WebsitePanel.EnterpriseServer rules.Add(rule); } - + return rules.ToArray(); } @@ -683,5 +837,45 @@ namespace WebsitePanel.EnterpriseServer return permissions.ToArray(); } + + /// + /// Get webserver (IIS) installed on server connected with packageId + /// + /// packageId parametr + /// Configurated webserver or null + private static WebServer GetWebServer(int packageId) + { + try + { + var group = ServerController.GetResourceGroupByName(ResourceGroups.Web); + + var webProviders = ServerController.GetProvidersByGroupID(group.GroupId); + + var package = PackageController.GetPackage(packageId); + + foreach (var webProvider in webProviders) + { + BoolResult result = ServerController.IsInstalled(package.ServerId, webProvider.ProviderId); + + if (result.IsSuccess && result.Value) + { + WebServer web = new WebServer(); + ServerProxyConfigurator cnfg = new ServerProxyConfigurator(); + + cnfg.ProviderSettings.ProviderGroupID = webProvider.GroupId; + cnfg.ProviderSettings.ProviderCode = webProvider.ProviderName; + cnfg.ProviderSettings.ProviderName = webProvider.DisplayName; + cnfg.ProviderSettings.ProviderType = webProvider.ProviderType; + + ServiceProviderProxy.ServerInit(web, cnfg, package.ServerId); + + return web; + } + } + } + catch { /*something wrong*/ } + + return null; + } } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs index 50d3a2ae..24711133 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs @@ -792,6 +792,12 @@ namespace WebsitePanel.EnterpriseServer DataProvider.GetResourceGroup(groupId)); } + public static ResourceGroupInfo GetResourceGroupByName(string name) + { + return ObjectUtils.FillObjectFromDataReader( + DataProvider.GetResourceGroupByName(name)); + } + public static ProviderInfo GetProvider(int providerId) { return ObjectUtils.FillObjectFromDataReader( diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs index 75f415ff..d3e96980 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs @@ -1708,97 +1708,6 @@ namespace WebsitePanel.EnterpriseServer } } - public static int AddWebDavDirectory(int packageId, string site, string vdirName, string contentpath) - { - // check account - int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); - if (accountCheck < 0) return accountCheck; - - // place log record - TaskManager.StartTask("ENTERPRISE_STORAGE", "ADD_VDIR", vdirName); - - TaskManager.WriteParameter("enterprise storage", site); - - try - { - // create virtual directory - WebVirtualDirectory dir = new WebVirtualDirectory(); - dir.Name = vdirName; - dir.ContentPath = Path.Combine(contentpath, vdirName); - - dir.EnableAnonymousAccess = false; - dir.EnableWindowsAuthentication = false; - dir.EnableBasicAuthentication = false; - - //dir.InstalledDotNetFramework = aspNet; - - dir.DefaultDocs = null; // inherit from service - dir.HttpRedirect = ""; - dir.HttpErrors = null; - dir.MimeMaps = null; - - int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web); - - if (serviceId == -1) - return serviceId; - - // create directory - WebServer web = new WebServer(); - ServiceProviderProxy.Init(web, serviceId); - if (web.VirtualDirectoryExists(site, vdirName)) - return BusinessErrorCodes.ERROR_VDIR_ALREADY_EXISTS; - - web.CreateVirtualDirectory(site, dir); - - return 0; - - } - catch (Exception ex) - { - throw TaskManager.WriteError(ex); - } - finally - { - TaskManager.CompleteTask(); - } - } - - public static int DeleteWebDavDirectory(int packageId, string site, string vdirName) - { - // check account - int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); - if (accountCheck < 0) return accountCheck; - - // place log record - TaskManager.StartTask("ENTERPRISE_STORAGE", "DELETE_VDIR", vdirName); - - TaskManager.WriteParameter("enterprise storage", site); - - try - { - int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web); - - if (serviceId == -1) - return serviceId; - - // create directory - WebServer web = new WebServer(); - ServiceProviderProxy.Init(web, serviceId); - if (web.VirtualDirectoryExists(site, vdirName)) - web.DeleteVirtualDirectory(site, vdirName); - - return 0; - } - catch (Exception ex) - { - throw TaskManager.WriteError(ex); - } - finally - { - TaskManager.CompleteTask(); - } - } - public static int UpdateVirtualDirectory(int siteItemId, WebVirtualDirectory vdir) { // check account @@ -4621,38 +4530,6 @@ Please ensure the space has been allocated {0} IP address as a dedicated one and #endregion - #region Directory Browsing - - public static bool GetDirectoryBrowseEnabled(int itemId, string siteId) - { - // load organization - var org = OrganizationController.GetOrganization(itemId); - if (org == null) - { - return false; - } - - var webServer = GetWebServer(GetWebServerServiceID(org.PackageId)); - - return webServer.GetDirectoryBrowseEnabled(siteId); - } - - public static void SetDirectoryBrowseEnabled(int itemId, string siteId, bool enabled) - { - // load organization - var org = OrganizationController.GetOrganization(itemId); - if (org == null) - { - return; - } - - var webServer = GetWebServer(GetWebServerServiceID(org.PackageId)); - - webServer.SetDirectoryBrowseEnabled(siteId, enabled); - } - - #endregion - private static int GetWebServerServiceID(int packageId) { return PackageController.GetPackageServiceId(packageId, ResourceGroups.Web); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esEnterpriseStorage.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esEnterpriseStorage.asmx.cs index a97a8cd7..4119b460 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esEnterpriseStorage.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esEnterpriseStorage.asmx.cs @@ -134,5 +134,28 @@ namespace WebsitePanel.EnterpriseServer { return EnterpriseStorageController.CheckUsersDomainExists(itemId); } + + #region Directory Browsing + + [WebMethod] + public bool GetDirectoryBrowseEnabled(int itemId, string site) + { + return EnterpriseStorageController.GetDirectoryBrowseEnabled(itemId, site); + } + + [WebMethod] + public void SetDirectoryBrowseEnabled(int itemId, string site, bool enabled) + { + EnterpriseStorageController.SetDirectoryBrowseEnabled(itemId, site, enabled); + } + + [WebMethod] + public void SetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled) + { + EnterpriseStorageController.SetDirectoryBrowseEnabled(itemId, folder.Url, directoyBrowsingEnabled); + EnterpriseStorageController.SetFolderPermission(itemId, folder.Name, permissions); + } + + #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esWebServers.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esWebServers.asmx.cs index 29c49b61..59eca47c 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esWebServers.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esWebServers.asmx.cs @@ -625,22 +625,5 @@ namespace WebsitePanel.EnterpriseServer } #endregion - - - #region Directory Browsing - - [WebMethod] - public bool GetDirectoryBrowseEnabled(int itemId, string site) - { - return WebServerController.GetDirectoryBrowseEnabled(itemId, site); - } - - [WebMethod] - public void SetDirectoryBrowseEnabled(int itemId, string site, bool enabled) - { - WebServerController.SetDirectoryBrowseEnabled(itemId, site, enabled); - } - - #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx index f5c1dae9..f17ec7ec 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx @@ -5362,4 +5362,7 @@ Website is not created + + Enterprise storage folder settings have been successfully updated. + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs index a56fba80..0536121b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs @@ -78,7 +78,7 @@ namespace WebsitePanel.Portal.ExchangeServer var esPermissions = ES.Services.EnterpriseStorage.GetEnterpriseFolderPermissions(PanelRequest.ItemID,folder.Name); - chkDirectoryBrowsing.Checked = ES.Services.WebServers.GetDirectoryBrowseEnabled(PanelRequest.ItemID, folder.Url); + chkDirectoryBrowsing.Checked = ES.Services.EnterpriseStorage.GetDirectoryBrowseEnabled(PanelRequest.ItemID, folder.Url); permissions.SetPermissions(esPermissions); @@ -98,12 +98,9 @@ namespace WebsitePanel.Portal.ExchangeServer { bool redirectNeeded = false; - string fileName = PanelRequest.FolderID; - string fileUrl = lblFolderUrl.Text; - litFolderName.Text = txtFolderName.Text; - SystemFile folder = null; + SystemFile folder = new SystemFile { Name = PanelRequest.FolderID, Url = lblFolderUrl.Text }; if (!ES.Services.EnterpriseStorage.CheckEnterpriseStorageInitialization(PanelSecurity.PackageId, PanelRequest.ItemID)) { @@ -126,16 +123,10 @@ namespace WebsitePanel.Portal.ExchangeServer folder = ES.Services.EnterpriseStorage.RenameEnterpriseFolder(PanelRequest.ItemID, PanelRequest.FolderID, txtFolderName.Text); - // file is renamed - new name and url - fileName = folder.Name; - fileUrl = folder.Url; - redirectNeeded = true; } - ES.Services.EnterpriseStorage.SetEnterpriseFolderPermissions(PanelRequest.ItemID, fileName, permissions.GetPemissions()); - - ES.Services.WebServers.SetDirectoryBrowseEnabled(PanelRequest.ItemID, fileUrl, chkDirectoryBrowsing.Checked); + ES.Services.EnterpriseStorage.SetEnterpriseFolderSettings(PanelRequest.ItemID, folder, permissions.GetPemissions(), chkDirectoryBrowsing.Checked); if (redirectNeeded) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs index dea4ca60..6695ba5b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs @@ -75,10 +75,10 @@ namespace WebsitePanel.Portal.ExchangeServer { int folderAvailable = foldersQuota.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders; - //if (folderAvailable <= 0) - //{ - // btnAddFolder.Enabled = false; - //} + if (folderAvailable <= 0) + { + btnAddFolder.Enabled = false; + } } }