merge commmit
This commit is contained in:
commit
40d5218ec2
12 changed files with 582 additions and 100 deletions
|
@ -85,6 +85,12 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
private System.Threading.SendOrPostCallback RenameEnterpriseFolderOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback CreateEnterpriseStorageOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback CheckEnterpriseStorageInitializationOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback CheckUsersDomainExistsOperationCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public esEnterpriseStorage()
|
||||
{
|
||||
|
@ -121,6 +127,15 @@ namespace WebsitePanel.EnterpriseServer
|
|||
/// <remarks/>
|
||||
public event RenameEnterpriseFolderCompletedEventHandler RenameEnterpriseFolderCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event CreateEnterpriseStorageCompletedEventHandler CreateEnterpriseStorageCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event CheckEnterpriseStorageInitializationCompletedEventHandler CheckEnterpriseStorageInitializationCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event CheckUsersDomainExistsCompletedEventHandler CheckUsersDomainExistsCompleted;
|
||||
|
||||
/// <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)
|
||||
|
@ -656,6 +671,160 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/CreateEnterpriseStorage", 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 ResultObject CreateEnterpriseStorage(int packageId, int itemId)
|
||||
{
|
||||
object[] results = this.Invoke("CreateEnterpriseStorage", new object[] {
|
||||
packageId,
|
||||
itemId});
|
||||
return ((ResultObject)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.IAsyncResult BeginCreateEnterpriseStorage(int packageId, int itemId, System.AsyncCallback callback, object asyncState)
|
||||
{
|
||||
return this.BeginInvoke("CreateEnterpriseStorage", new object[] {
|
||||
packageId,
|
||||
itemId}, callback, asyncState);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public ResultObject EndCreateEnterpriseStorage(System.IAsyncResult asyncResult)
|
||||
{
|
||||
object[] results = this.EndInvoke(asyncResult);
|
||||
return ((ResultObject)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CreateEnterpriseStorageAsync(int packageId, int itemId)
|
||||
{
|
||||
this.CreateEnterpriseStorageAsync(packageId, itemId, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CreateEnterpriseStorageAsync(int packageId, int itemId, object userState)
|
||||
{
|
||||
if ((this.CreateEnterpriseStorageOperationCompleted == null))
|
||||
{
|
||||
this.CreateEnterpriseStorageOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateEnterpriseStorageOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("CreateEnterpriseStorage", new object[] {
|
||||
packageId,
|
||||
itemId}, this.CreateEnterpriseStorageOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnCreateEnterpriseStorageOperationCompleted(object arg)
|
||||
{
|
||||
if ((this.CreateEnterpriseStorageCompleted != null))
|
||||
{
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.CreateEnterpriseStorageCompleted(this, new CreateEnterpriseStorageCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/CheckEnterpriseStorageInitialization" +
|
||||
"", 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 CheckEnterpriseStorageInitialization(int packageId, int itemId)
|
||||
{
|
||||
object[] results = this.Invoke("CheckEnterpriseStorageInitialization", new object[] {
|
||||
packageId,
|
||||
itemId});
|
||||
return ((bool)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.IAsyncResult BeginCheckEnterpriseStorageInitialization(int packageId, int itemId, System.AsyncCallback callback, object asyncState)
|
||||
{
|
||||
return this.BeginInvoke("CheckEnterpriseStorageInitialization", new object[] {
|
||||
packageId,
|
||||
itemId}, callback, asyncState);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public bool EndCheckEnterpriseStorageInitialization(System.IAsyncResult asyncResult)
|
||||
{
|
||||
object[] results = this.EndInvoke(asyncResult);
|
||||
return ((bool)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CheckEnterpriseStorageInitializationAsync(int packageId, int itemId)
|
||||
{
|
||||
this.CheckEnterpriseStorageInitializationAsync(packageId, itemId, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CheckEnterpriseStorageInitializationAsync(int packageId, int itemId, object userState)
|
||||
{
|
||||
if ((this.CheckEnterpriseStorageInitializationOperationCompleted == null))
|
||||
{
|
||||
this.CheckEnterpriseStorageInitializationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckEnterpriseStorageInitializationOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("CheckEnterpriseStorageInitialization", new object[] {
|
||||
packageId,
|
||||
itemId}, this.CheckEnterpriseStorageInitializationOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnCheckEnterpriseStorageInitializationOperationCompleted(object arg)
|
||||
{
|
||||
if ((this.CheckEnterpriseStorageInitializationCompleted != null))
|
||||
{
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.CheckEnterpriseStorageInitializationCompleted(this, new CheckEnterpriseStorageInitializationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/CheckUsersDomainExists", 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 CheckUsersDomainExists(int itemId)
|
||||
{
|
||||
object[] results = this.Invoke("CheckUsersDomainExists", new object[] {
|
||||
itemId});
|
||||
return ((bool)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.IAsyncResult BeginCheckUsersDomainExists(int itemId, System.AsyncCallback callback, object asyncState)
|
||||
{
|
||||
return this.BeginInvoke("CheckUsersDomainExists", new object[] {
|
||||
itemId}, callback, asyncState);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public bool EndCheckUsersDomainExists(System.IAsyncResult asyncResult)
|
||||
{
|
||||
object[] results = this.EndInvoke(asyncResult);
|
||||
return ((bool)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CheckUsersDomainExistsAsync(int itemId)
|
||||
{
|
||||
this.CheckUsersDomainExistsAsync(itemId, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CheckUsersDomainExistsAsync(int itemId, object userState)
|
||||
{
|
||||
if ((this.CheckUsersDomainExistsOperationCompleted == null))
|
||||
{
|
||||
this.CheckUsersDomainExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckUsersDomainExistsOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("CheckUsersDomainExists", new object[] {
|
||||
itemId}, this.CheckUsersDomainExistsOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnCheckUsersDomainExistsOperationCompleted(object arg)
|
||||
{
|
||||
if ((this.CheckUsersDomainExistsCompleted != null))
|
||||
{
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.CheckUsersDomainExistsCompleted(this, new CheckUsersDomainExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public new void CancelAsync(object userState)
|
||||
{
|
||||
|
@ -962,4 +1131,94 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void CreateEnterpriseStorageCompletedEventHandler(object sender, CreateEnterpriseStorageCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CreateEnterpriseStorageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
|
||||
{
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal CreateEnterpriseStorageCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState)
|
||||
{
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public ResultObject Result
|
||||
{
|
||||
get
|
||||
{
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((ResultObject)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void CheckEnterpriseStorageInitializationCompletedEventHandler(object sender, CheckEnterpriseStorageInitializationCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CheckEnterpriseStorageInitializationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
|
||||
{
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal CheckEnterpriseStorageInitializationCompletedEventArgs(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 CheckUsersDomainExistsCompletedEventHandler(object sender, CheckUsersDomainExistsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CheckUsersDomainExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
|
||||
{
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal CheckUsersDomainExistsCompletedEventArgs(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]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,21 @@ namespace WebsitePanel.EnterpriseServer
|
|||
{
|
||||
#region Public Methods
|
||||
|
||||
public static bool CheckEnterpriseStorageInitialization(int packageId, int itemId)
|
||||
{
|
||||
return CheckEnterpriseStorageInitializationInternal(packageId, itemId);
|
||||
}
|
||||
|
||||
public static ResultObject CreateEnterpriseStorage(int packageId, int itemId)
|
||||
{
|
||||
return CreateEnterpriseStorageInternal(packageId, itemId);
|
||||
}
|
||||
|
||||
public static ResultObject DeleteEnterpriseStorage(int packageId, int itemId)
|
||||
{
|
||||
return DeleteEnterpriseStorageInternal(packageId,itemId);
|
||||
}
|
||||
|
||||
public static SystemFile[] GetFolders(int itemId)
|
||||
{
|
||||
return GetFoldersInternal(itemId);
|
||||
|
@ -63,6 +78,11 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return GetFolderInternal(itemId, folderName);
|
||||
}
|
||||
|
||||
public static SystemFile GetFolder(int itemId)
|
||||
{
|
||||
return GetFolder(itemId, string.Empty);
|
||||
}
|
||||
|
||||
public static ResultObject CreateFolder(int itemId)
|
||||
{
|
||||
return CreateFolder(itemId, string.Empty);
|
||||
|
@ -114,8 +134,169 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return RenameFolderInternal(itemId, oldFolder, newFolder);
|
||||
}
|
||||
|
||||
public static bool CheckUsersDomainExists(int itemId)
|
||||
{
|
||||
return CheckUsersDomainExistsInternal(itemId);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected static bool CheckUsersDomainExistsInternal(int itemId)
|
||||
{
|
||||
Organization org = OrganizationController.GetOrganization(itemId);
|
||||
|
||||
return CheckUsersDomainExistsInternal(itemId, org.PackageId);
|
||||
}
|
||||
|
||||
protected static bool CheckUsersDomainExistsInternal(int itemId, int packageId)
|
||||
{
|
||||
int webServiceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web);
|
||||
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;
|
||||
}
|
||||
|
||||
protected static bool CheckEnterpriseStorageInitializationInternal(int packageId, int itemId)
|
||||
{
|
||||
bool checkResult = true;
|
||||
|
||||
var esServiceId = GetEnterpriseStorageServiceID(packageId);
|
||||
int webServiceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web);
|
||||
|
||||
Organization org = OrganizationController.GetOrganization(itemId);
|
||||
|
||||
if (org == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//root folder not created
|
||||
if (GetFolder(itemId) == null)
|
||||
{
|
||||
checkResult = false;
|
||||
}
|
||||
|
||||
//checking if virtual directory is created
|
||||
StringDictionary esSesstings = ServerController.GetServiceSettings(esServiceId);
|
||||
|
||||
string usersDomain = esSesstings["UsersDomain"];
|
||||
|
||||
WebServer web = new WebServer();
|
||||
ServiceProviderProxy.Init(web, webServiceId);
|
||||
|
||||
if (!web.VirtualDirectoryExists(usersDomain, org.OrganizationId))
|
||||
{
|
||||
checkResult = false;
|
||||
}
|
||||
|
||||
|
||||
return checkResult;
|
||||
}
|
||||
|
||||
protected static ResultObject CreateEnterpriseStorageInternal(int packageId, int itemId)
|
||||
{
|
||||
ResultObject result = TaskManager.StartResultTask<ResultObject>("ORGANIZATION", "CREATE_ORGANIZATION_ENTERPRISE_STORAGE", itemId, packageId);
|
||||
|
||||
try
|
||||
{
|
||||
int esServiceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.EnterpriseStorage);
|
||||
|
||||
if (esServiceId != 0)
|
||||
{
|
||||
StringDictionary esSesstings = ServerController.GetServiceSettings(esServiceId);
|
||||
|
||||
Organization org = OrganizationController.GetOrganization(itemId);
|
||||
|
||||
string usersHome = esSesstings["UsersHome"];
|
||||
string usersDomain = esSesstings["UsersDomain"];
|
||||
string locationDrive = esSesstings["LocationDrive"];
|
||||
|
||||
string homePath = string.Format("{0}:\\{1}", locationDrive, usersHome);
|
||||
|
||||
EnterpriseStorageController.CreateFolder(itemId);
|
||||
|
||||
WebServerController.AddWebDavDirectory(packageId, usersDomain, org.OrganizationId, homePath);
|
||||
|
||||
int osId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Os);
|
||||
bool enableHardQuota = (esSesstings["enablehardquota"] != null)
|
||||
? bool.Parse(esSesstings["enablehardquota"])
|
||||
: false;
|
||||
|
||||
if (enableHardQuota && osId != 0 && OperatingSystemController.CheckFileServicesInstallation(osId))
|
||||
{
|
||||
FilesController.SetFolderQuota(packageId, Path.Combine(usersHome, org.OrganizationId),
|
||||
locationDrive, Quotas.ENTERPRISESTORAGE_DISKSTORAGESPACE);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.AddError("ENTERPRISE_STORAGE_CREATE_FOLDER", ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
TaskManager.CompleteResultTask(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskManager.CompleteResultTask();
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
protected static ResultObject DeleteEnterpriseStorageInternal(int packageId, int itemId)
|
||||
{
|
||||
ResultObject result = TaskManager.StartResultTask<ResultObject>("ORGANIZATION", "CLEANUP_ORGANIZATION_ENTERPRISE_STORAGE", itemId, packageId);
|
||||
|
||||
try
|
||||
{
|
||||
int esId = PackageController.GetPackageServiceId(packageId, ResourceGroups.EnterpriseStorage);
|
||||
|
||||
Organization org = OrganizationController.GetOrganization(itemId);
|
||||
|
||||
if (esId != 0)
|
||||
{
|
||||
StringDictionary esSesstings = ServerController.GetServiceSettings(esId);
|
||||
|
||||
string usersDomain = esSesstings["UsersDomain"];
|
||||
|
||||
WebServerController.DeleteWebDavDirectory(packageId, usersDomain, org.OrganizationId);
|
||||
EnterpriseStorageController.DeleteFolder(itemId);
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.AddError("ENTERPRISE_STORAGE_CLEANUP", ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
TaskManager.CompleteResultTask(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskManager.CompleteResultTask();
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private static EnterpriseStorage GetEnterpriseStorage(int serviceId)
|
||||
{
|
||||
|
@ -166,7 +347,6 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
protected static SystemFile RenameFolderInternal(int itemId, string oldFolder, string newFolder)
|
||||
{
|
||||
try
|
||||
|
@ -311,6 +491,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return null;
|
||||
}
|
||||
|
||||
if (CheckUsersDomainExistsInternal(itemId, org.PackageId))
|
||||
{
|
||||
EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId));
|
||||
List<SystemFile> folders = es.GetFolders(org.OrganizationId).Where(x => x.Name.Contains(filterValue)).ToList();
|
||||
|
||||
|
@ -327,6 +509,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
result.RecordsCount = folders.Count;
|
||||
result.PageItems = folders.Skip(startRow).Take(maximumRows).ToArray();
|
||||
}
|
||||
}
|
||||
catch { /*skip exception*/}
|
||||
|
||||
return result;
|
||||
|
|
|
@ -418,36 +418,6 @@ namespace WebsitePanel.EnterpriseServer
|
|||
};
|
||||
|
||||
PackageController.AddPackageItem(orgDomain);
|
||||
|
||||
//Create Enterprise storage
|
||||
|
||||
int esServiceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.EnterpriseStorage);
|
||||
|
||||
if (esServiceId != 0)
|
||||
{
|
||||
StringDictionary esSesstings = ServerController.GetServiceSettings(esServiceId);
|
||||
|
||||
string usersHome = esSesstings["UsersHome"];
|
||||
string usersDomain = esSesstings["UsersDomain"];
|
||||
string locationDrive = esSesstings["LocationDrive"];
|
||||
|
||||
string homePath = string.Format("{0}:\\{1}",locationDrive, usersHome);
|
||||
|
||||
EnterpriseStorageController.CreateFolder(itemId);
|
||||
|
||||
WebServerController.AddWebDavDirectory(packageId, usersDomain, organizationId, homePath);
|
||||
|
||||
int osId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Os);
|
||||
bool enableHardQuota = (esSesstings["enablehardquota"] != null)
|
||||
? bool.Parse(esSesstings["enablehardquota"])
|
||||
: false;
|
||||
|
||||
if (enableHardQuota && osId != 0 && OperatingSystemController.CheckFileServicesInstallation(osId))
|
||||
{
|
||||
FilesController.SetFolderQuota(packageId, Path.Combine(usersHome, organizationId),
|
||||
locationDrive, Quotas.ENTERPRISESTORAGE_DISKSTORAGESPACE);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -746,24 +716,10 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
|
||||
//Cleanup Enterprise storage
|
||||
int esId = PackageController.GetPackageServiceId(org.PackageId, ResourceGroups.EnterpriseStorage);
|
||||
|
||||
if (esId != 0)
|
||||
{
|
||||
StringDictionary esSesstings = ServerController.GetServiceSettings(esId);
|
||||
|
||||
string usersDomain = esSesstings["UsersDomain"];
|
||||
|
||||
try
|
||||
{
|
||||
WebServerController.DeleteWebDavDirectory(org.PackageId, usersDomain, org.OrganizationId);
|
||||
EnterpriseStorageController.DeleteFolder(itemId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
if (EnterpriseStorageController.DeleteEnterpriseStorage(org.PackageId, itemId).IsSuccess == false)
|
||||
{
|
||||
successful = false;
|
||||
TaskManager.WriteError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
//Cleanup Exchange
|
||||
|
|
|
@ -4632,8 +4632,6 @@ Please ensure the space has been allocated {0} IP address as a dedicated one and
|
|||
return false;
|
||||
}
|
||||
|
||||
siteId = RemoveProtocolFromUrl(siteId);
|
||||
|
||||
var webServer = GetWebServer(GetWebServerServiceID(org.PackageId));
|
||||
|
||||
return webServer.GetDirectoryBrowseEnabled(siteId);
|
||||
|
@ -4648,23 +4646,11 @@ Please ensure the space has been allocated {0} IP address as a dedicated one and
|
|||
return;
|
||||
}
|
||||
|
||||
siteId = RemoveProtocolFromUrl(siteId);
|
||||
|
||||
var webServer = GetWebServer(GetWebServerServiceID(org.PackageId));
|
||||
|
||||
webServer.SetDirectoryBrowseEnabled(siteId, enabled);
|
||||
}
|
||||
|
||||
private static string RemoveProtocolFromUrl(string input)
|
||||
{
|
||||
if (input.Contains("//"))
|
||||
{
|
||||
return System.Text.RegularExpressions.Regex.Split(input, "//")[1];
|
||||
}
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private static int GetWebServerServiceID(int packageId)
|
||||
|
|
|
@ -116,5 +116,23 @@ namespace WebsitePanel.EnterpriseServer
|
|||
{
|
||||
return EnterpriseStorageController.RenameFolder(itemId, oldName, newName);
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public ResultObject CreateEnterpriseStorage(int packageId, int itemId)
|
||||
{
|
||||
return EnterpriseStorageController.CreateEnterpriseStorage(packageId, itemId);
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public bool CheckEnterpriseStorageInitialization(int packageId, int itemId)
|
||||
{
|
||||
return EnterpriseStorageController.CheckEnterpriseStorageInitialization(packageId, itemId);
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public bool CheckUsersDomainExists(int itemId)
|
||||
{
|
||||
return EnterpriseStorageController.CheckUsersDomainExists(itemId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
public SystemFile GetFolder(string organizationId, string folderName)
|
||||
{
|
||||
string fullName = string.Format("{0}:\\{1}\\{2}\\{3}", LocationDrive, UsersHome, organizationId, folderName);
|
||||
SystemFile folder = new SystemFile();
|
||||
SystemFile folder = null;
|
||||
|
||||
if (Directory.Exists(fullName))
|
||||
{
|
||||
|
|
|
@ -3774,18 +3774,34 @@ namespace WebsitePanel.Providers.Web
|
|||
#region Directory Browsing
|
||||
|
||||
public override bool GetDirectoryBrowseEnabled(string siteId)
|
||||
{
|
||||
var uri = new Uri(siteId);
|
||||
var host = uri.Host;
|
||||
var site = uri.Host + uri.PathAndQuery;
|
||||
|
||||
if (SiteExists(host))
|
||||
{
|
||||
using (ServerManager srvman = webObjectsSvc.GetServerManager())
|
||||
{
|
||||
var enabled = dirBrowseSvc.GetDirectoryBrowseSettings(srvman, siteId)[DirectoryBrowseGlobals.Enabled];
|
||||
var enabled = dirBrowseSvc.GetDirectoryBrowseSettings(srvman, site)[DirectoryBrowseGlobals.Enabled];
|
||||
|
||||
return enabled != null ? (bool)enabled : false;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void SetDirectoryBrowseEnabled(string siteId, bool enabled)
|
||||
{
|
||||
dirBrowseSvc.SetDirectoryBrowseEnabled(siteId, enabled);
|
||||
var uri = new Uri(siteId);
|
||||
var host = uri.Host;
|
||||
var site = uri.Host + uri.PathAndQuery;
|
||||
|
||||
if (SiteExists(host))
|
||||
{
|
||||
dirBrowseSvc.SetDirectoryBrowseEnabled(site, enabled);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -99,6 +99,9 @@ namespace WebsitePanel.Providers.Web
|
|||
}
|
||||
|
||||
public WebDavFolderRule[] GetFolderWebDavRules(string organizationId, string folder)
|
||||
{
|
||||
var rules = new List<WebDavFolderRule>();
|
||||
try
|
||||
{
|
||||
using (ServerManager serverManager = new ServerManager())
|
||||
{
|
||||
|
@ -108,19 +111,17 @@ namespace WebsitePanel.Providers.Web
|
|||
|
||||
ConfigurationElementCollection authoringRulesCollection = authoringRulesSection.GetCollection();
|
||||
|
||||
var rules = new List<WebDavFolderRule>();
|
||||
try
|
||||
{
|
||||
|
||||
foreach (var rule in authoringRulesCollection)
|
||||
{
|
||||
rules.Add(rule.ToWebDavFolderRule());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
return rules.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public bool DeleteAllWebDavRules(string organizationId, string folder)
|
||||
|
|
|
@ -5358,5 +5358,7 @@
|
|||
</data>
|
||||
<data name="ResourceGroup.RDS" xml:space="preserve">
|
||||
<value>Remote Desktop Services</value>
|
||||
<data name="Warning.WEB_SITE_IS_NOT_CREATED" xml:space="preserve">
|
||||
<value>Website is not created</value>
|
||||
</data>
|
||||
</root>
|
|
@ -35,6 +35,18 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
{
|
||||
public partial class EnterpriseStorageCreateFolder : WebsitePanelModuleBase
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
if (!ES.Services.EnterpriseStorage.CheckUsersDomainExists(PanelRequest.ItemID))
|
||||
{
|
||||
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "enterprisestorage_folders",
|
||||
"ItemID=" + PanelRequest.ItemID));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void btnCreate_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
@ -42,6 +54,21 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
return;
|
||||
try
|
||||
{
|
||||
foreach (var invalidChar in System.IO.Path.GetInvalidFileNameChars())
|
||||
{
|
||||
if (txtFolderName.Text.Contains(invalidChar.ToString()))
|
||||
{
|
||||
messageBox.ShowErrorMessage("FILES_CREATE_FILE");
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!ES.Services.EnterpriseStorage.CheckEnterpriseStorageInitialization(PanelSecurity.PackageId, PanelRequest.ItemID))
|
||||
{
|
||||
ES.Services.EnterpriseStorage.CreateEnterpriseStorage(PanelSecurity.PackageId, PanelRequest.ItemID);
|
||||
}
|
||||
|
||||
ResultObject result = ES.Services.EnterpriseStorage.CreateEnterpriseFolder(PanelRequest.ItemID, txtFolderName.Text);
|
||||
|
||||
if (!result.IsSuccess && result.ErrorCodes.Count > 0)
|
||||
|
|
|
@ -49,6 +49,12 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
if (!ES.Services.EnterpriseStorage.CheckUsersDomainExists(PanelRequest.ItemID))
|
||||
{
|
||||
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "enterprisestorage_folders",
|
||||
"ItemID=" + PanelRequest.ItemID));
|
||||
}
|
||||
|
||||
BindSettings();
|
||||
}
|
||||
}
|
||||
|
@ -92,25 +98,44 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
{
|
||||
bool redirectNeeded = false;
|
||||
|
||||
string fileName = PanelRequest.FolderID;
|
||||
string fileUrl = lblFolderUrl.Text;
|
||||
|
||||
litFolderName.Text = txtFolderName.Text;
|
||||
|
||||
// SystemFile folder = ES.Services.EnterpriseStorage.GetEnterpriseFolder(PanelRequest.ItemID, PanelRequest.FolderID);
|
||||
SystemFile folder = new SystemFile();
|
||||
SystemFile folder = null;
|
||||
|
||||
if (!ES.Services.EnterpriseStorage.CheckEnterpriseStorageInitialization(PanelSecurity.PackageId, PanelRequest.ItemID))
|
||||
{
|
||||
ES.Services.EnterpriseStorage.CreateEnterpriseStorage(PanelSecurity.PackageId, PanelRequest.ItemID);
|
||||
}
|
||||
|
||||
//File is renaming
|
||||
if (PanelRequest.FolderID != txtFolderName.Text)
|
||||
{
|
||||
if (txtFolderName.Text.Contains("\\"))
|
||||
//check if filename is correct
|
||||
foreach (var invalidChar in System.IO.Path.GetInvalidFileNameChars())
|
||||
{
|
||||
throw new Exception("Wrong file name");
|
||||
if (txtFolderName.Text.Contains(invalidChar.ToString()))
|
||||
{
|
||||
messageBox.ShowErrorMessage("FILES_RENAME_FILE");
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
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, redirectNeeded ? folder.Name : PanelRequest.FolderID, permissions.GetPemissions());
|
||||
ES.Services.EnterpriseStorage.SetEnterpriseFolderPermissions(PanelRequest.ItemID, fileName, permissions.GetPemissions());
|
||||
|
||||
ES.Services.WebServers.SetDirectoryBrowseEnabled(PanelRequest.ItemID, redirectNeeded ? folder.Url : lblFolderUrl.Text, chkDirectoryBrowsing.Checked);
|
||||
ES.Services.WebServers.SetDirectoryBrowseEnabled(PanelRequest.ItemID, fileUrl, chkDirectoryBrowsing.Checked);
|
||||
|
||||
if (redirectNeeded)
|
||||
{
|
||||
|
|
|
@ -40,9 +40,18 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
if (ES.Services.EnterpriseStorage.CheckUsersDomainExists(PanelRequest.ItemID))
|
||||
{
|
||||
BindEnterpriseStorageStats();
|
||||
}
|
||||
else
|
||||
{
|
||||
btnAddFolder.Enabled = false;
|
||||
|
||||
messageBox.ShowWarningMessage("WEB_SITE_IS_NOT_CREATED");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string GetFolderEditUrl(string folderName)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue