bug fixes

This commit is contained in:
vfedosevich 2013-11-19 17:33:27 +03:00
parent da88bc7a3a
commit bad4b3f931
12 changed files with 491 additions and 323 deletions

View file

@ -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

View file

@ -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.
//------------------------------------------------------------------------------
// <auto-generated>
// 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;
/// <remarks/>
public esEnterpriseStorage()
{
@ -136,6 +141,15 @@ namespace WebsitePanel.EnterpriseServer
/// <remarks/>
public event CheckUsersDomainExistsCompletedEventHandler CheckUsersDomainExistsCompleted;
/// <remarks/>
public event GetDirectoryBrowseEnabledCompletedEventHandler GetDirectoryBrowseEnabledCompleted;
/// <remarks/>
public event SetDirectoryBrowseEnabledCompletedEventHandler SetDirectoryBrowseEnabledCompleted;
/// <remarks/>
public event SetEnterpriseFolderSettingsCompletedEventHandler SetEnterpriseFolderSettingsCompleted;
/// <remarks/>
[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
}
}
/// <remarks/>
[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]));
}
/// <remarks/>
public System.IAsyncResult BeginGetDirectoryBrowseEnabled(int itemId, string site, System.AsyncCallback callback, object asyncState)
{
return this.BeginInvoke("GetDirectoryBrowseEnabled", new object[] {
itemId,
site}, callback, asyncState);
}
/// <remarks/>
public bool EndGetDirectoryBrowseEnabled(System.IAsyncResult asyncResult)
{
object[] results = this.EndInvoke(asyncResult);
return ((bool)(results[0]));
}
/// <remarks/>
public void GetDirectoryBrowseEnabledAsync(int itemId, string site)
{
this.GetDirectoryBrowseEnabledAsync(itemId, site, null);
}
/// <remarks/>
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));
}
}
/// <remarks/>
[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});
}
/// <remarks/>
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);
}
/// <remarks/>
public void EndSetDirectoryBrowseEnabled(System.IAsyncResult asyncResult)
{
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void SetDirectoryBrowseEnabledAsync(int itemId, string site, bool enabled)
{
this.SetDirectoryBrowseEnabledAsync(itemId, site, enabled, null);
}
/// <remarks/>
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));
}
}
/// <remarks/>
[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});
}
/// <remarks/>
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);
}
/// <remarks/>
public void EndSetEnterpriseFolderSettings(System.IAsyncResult asyncResult)
{
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void SetEnterpriseFolderSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled)
{
this.SetEnterpriseFolderSettingsAsync(itemId, folder, permissions, directoyBrowsingEnabled, null);
}
/// <remarks/>
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));
}
}
/// <remarks/>
public new void CancelAsync(object userState)
{
@ -1221,4 +1396,42 @@ namespace WebsitePanel.EnterpriseServer
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetDirectoryBrowseEnabledCompletedEventHandler(object sender, GetDirectoryBrowseEnabledCompletedEventArgs e);
/// <remarks/>
[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;
}
/// <remarks/>
public bool Result
{
get
{
this.RaiseExceptionIfNecessary();
return ((bool)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetDirectoryBrowseEnabledCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetEnterpriseFolderSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
}

View file

@ -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
/// <remarks/>
public event DeleteCertificateRequestCompletedEventHandler DeleteCertificateRequestCompleted;
/// <remarks/>
public event GetDirectoryBrowseEnabledCompletedEventHandler GetDirectoryBrowseEnabledCompleted;
/// <remarks/>
public event SetDirectoryBrowseEnabledCompletedEventHandler SetDirectoryBrowseEnabledCompleted;
/// <remarks/>
public event GetRawWebSitesPagedCompletedEventHandler GetRawWebSitesPagedCompleted;
@ -1869,111 +1859,6 @@ namespace WebsitePanel.EnterpriseServer
}
}
/// <remarks/>
[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]));
}
/// <remarks/>
public System.IAsyncResult BeginGetDirectoryBrowseEnabled(int itemId, string site, System.AsyncCallback callback, object asyncState)
{
return this.BeginInvoke("GetDirectoryBrowseEnabled", new object[] {
itemId,
site}, callback, asyncState);
}
/// <remarks/>
public bool EndGetDirectoryBrowseEnabled(System.IAsyncResult asyncResult)
{
object[] results = this.EndInvoke(asyncResult);
return ((bool)(results[0]));
}
/// <remarks/>
public void GetDirectoryBrowseEnabledAsync(int itemId, string site)
{
this.GetDirectoryBrowseEnabledAsync(itemId, site, null);
}
/// <remarks/>
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));
}
}
/// <remarks/>
[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});
}
/// <remarks/>
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);
}
/// <remarks/>
public void EndSetDirectoryBrowseEnabled(System.IAsyncResult asyncResult)
{
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void SetDirectoryBrowseEnabledAsync(int itemId, string site, bool enabled)
{
this.SetDirectoryBrowseEnabledAsync(itemId, site, enabled, null);
}
/// <remarks/>
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));
}
}
/// <remarks/>
[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
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetDirectoryBrowseEnabledCompletedEventHandler(object sender, GetDirectoryBrowseEnabledCompletedEventArgs e);
/// <remarks/>
[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;
}
/// <remarks/>
public bool Result
{
get
{
this.RaiseExceptionIfNecessary();
return ((bool)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetDirectoryBrowseEnabledCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetRawWebSitesPagedCompletedEventHandler(object sender, GetRawWebSitesPagedCompletedEventArgs e);

View file

@ -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

View file

@ -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 web = GetWebServer(packageId);
if (web != null)
{
var esServiceId = GetEnterpriseStorageServiceID(packageId);
StringDictionary esSesstings = ServerController.GetServiceSettings(esServiceId);
string usersDomain = esSesstings["UsersDomain"];
WebServer web = new WebServer();
ServiceProviderProxy.Init(web, webServiceId);
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();
@ -520,6 +548,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)
{
ResultObject result = TaskManager.StartResultTask<ResultObject>("ENTERPRISE_STORAGE", "SET_WEBDAV_FOLDER_RULES");
@ -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<ExchangeAccount>(DataProvider.GetExchangeAccountByAccountName(itemId, permission.Account));
if (account.AccountType == ExchangeAccountType.SecurityGroup)
if (account.AccountType == ExchangeAccountType.SecurityGroup
|| account.AccountType == ExchangeAccountType.DefaultSecurityGroup)
{
rule.Roles.Add(permission.Account);
}
@ -683,5 +837,45 @@ namespace WebsitePanel.EnterpriseServer
return permissions.ToArray();
}
/// <summary>
/// Get webserver (IIS) installed on server connected with packageId
/// </summary>
/// <param name="packageId">packageId parametr</param>
/// <returns>Configurated webserver or null</returns>
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;
}
}
}

View file

@ -792,6 +792,12 @@ namespace WebsitePanel.EnterpriseServer
DataProvider.GetResourceGroup(groupId));
}
public static ResourceGroupInfo GetResourceGroupByName(string name)
{
return ObjectUtils.FillObjectFromDataReader<ResourceGroupInfo>(
DataProvider.GetResourceGroupByName(name));
}
public static ProviderInfo GetProvider(int providerId)
{
return ObjectUtils.FillObjectFromDataReader<ProviderInfo>(

View file

@ -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);

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -5362,4 +5362,7 @@
<data name="Warning.WEB_SITE_IS_NOT_CREATED" xml:space="preserve">
<value>Website is not created</value>
</data>
<data name="Success.ENTERPRISE_STORAGE_UPDATE_FOLDER_SETTINGS" xml:space="preserve">
<value>Enterprise storage folder settings have been successfully updated.</value>
</data>
</root>

View file

@ -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)
{

View file

@ -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;
}
}
}