Merge
This commit is contained in:
commit
e9c7b0868b
580 changed files with 247313 additions and 5211 deletions
|
@ -36,6 +36,7 @@
|
|||
<Reference Include="Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\Lib\Microsoft.Web.Services3.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<configuration>
|
||||
<appSettings>
|
||||
<add key="ES.WebService" value="http://localhost:9002"/>
|
||||
<!-- Username and password for access to WebsitePanel. For example "serveradmin" -->
|
||||
<add key="ES.Username" value="serveradmin"/>
|
||||
<add key="ES.Password" value="serveradmin"/>
|
||||
<add key="LogFile" value="WebsitePanel.FixDefaultPublicFolderMailbox.log"/>
|
||||
|
|
|
@ -659,7 +659,7 @@ namespace WebsitePanel.Import.CsvBulk
|
|||
mailbox.JobTitle, mailbox.Company, mailbox.Department, mailbox.Office, null, mailbox.BusinessPhone,
|
||||
mailbox.Fax, mailbox.HomePhone, mailbox.MobilePhone, mailbox.Pager, mailbox.WebPage, mailbox.Notes,
|
||||
// these are new and not in csv ...
|
||||
mailbox.ExternalEmail, mailbox.SubscriberNumber,mailbox.LevelId, mailbox.IsVIP);
|
||||
mailbox.ExternalEmail, mailbox.SubscriberNumber,mailbox.LevelId, mailbox.IsVIP, false);
|
||||
ret = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -803,7 +803,7 @@ namespace WebsitePanel.Import.CsvBulk
|
|||
null, false, user.Disabled, user.Locked, user.FirstName, user.Initials,
|
||||
user.LastName, user.Address, user.City, user.State, user.Zip, user.Country,
|
||||
user.JobTitle, user.Company, user.Department, user.Office, null, user.BusinessPhone,
|
||||
user.Fax, user.HomePhone, user.MobilePhone, user.Pager, user.WebPage, user.Notes, user.ExternalEmail, user.SubscriberNumber, user.LevelId, user.IsVIP);
|
||||
user.Fax, user.HomePhone, user.MobilePhone, user.Pager, user.WebPage, user.Notes, user.ExternalEmail, user.SubscriberNumber, user.LevelId, user.IsVIP, false);
|
||||
ret = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
@ -1,35 +1,7 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// 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.
|
||||
// Runtime Version:4.0.30319.18051
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
|
|
|
@ -151,6 +151,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
public const int ERROR_MAIL_LICENSE_USERS_QUOTA = -724;
|
||||
|
||||
public const int ERROR_MAIL_ACCOUNT_MAX_MAILBOX_SIZE_LIMIT = -725;
|
||||
public const int ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY = -726;
|
||||
#endregion
|
||||
|
||||
#region FTP
|
||||
|
|
|
@ -69,6 +69,12 @@ namespace WebsitePanel.EnterpriseServer {
|
|||
|
||||
private System.Threading.SendOrPostCallback CheckUsersDomainExistsOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback GetWebDavPortalUserSettingsByAccountIdOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback UpdateWebDavPortalUserSettingsOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback SearchFilesOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback GetDirectoryBrowseEnabledOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback SetDirectoryBrowseEnabledOperationCompleted;
|
||||
|
@ -145,6 +151,15 @@ namespace WebsitePanel.EnterpriseServer {
|
|||
/// <remarks/>
|
||||
public event CheckUsersDomainExistsCompletedEventHandler CheckUsersDomainExistsCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event GetWebDavPortalUserSettingsByAccountIdCompletedEventHandler GetWebDavPortalUserSettingsByAccountIdCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event UpdateWebDavPortalUserSettingsCompletedEventHandler UpdateWebDavPortalUserSettingsCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event SearchFilesCompletedEventHandler SearchFilesCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event GetDirectoryBrowseEnabledCompletedEventHandler GetDirectoryBrowseEnabledCompleted;
|
||||
|
||||
|
@ -928,6 +943,143 @@ namespace WebsitePanel.EnterpriseServer {
|
|||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetWebDavPortalUserSettingsByAccount" +
|
||||
"Id", 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 string GetWebDavPortalUserSettingsByAccountId(int accountId) {
|
||||
object[] results = this.Invoke("GetWebDavPortalUserSettingsByAccountId", new object[] {
|
||||
accountId});
|
||||
return ((string)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.IAsyncResult BeginGetWebDavPortalUserSettingsByAccountId(int accountId, System.AsyncCallback callback, object asyncState) {
|
||||
return this.BeginInvoke("GetWebDavPortalUserSettingsByAccountId", new object[] {
|
||||
accountId}, callback, asyncState);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string EndGetWebDavPortalUserSettingsByAccountId(System.IAsyncResult asyncResult) {
|
||||
object[] results = this.EndInvoke(asyncResult);
|
||||
return ((string)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetWebDavPortalUserSettingsByAccountIdAsync(int accountId) {
|
||||
this.GetWebDavPortalUserSettingsByAccountIdAsync(accountId, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetWebDavPortalUserSettingsByAccountIdAsync(int accountId, object userState) {
|
||||
if ((this.GetWebDavPortalUserSettingsByAccountIdOperationCompleted == null)) {
|
||||
this.GetWebDavPortalUserSettingsByAccountIdOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetWebDavPortalUserSettingsByAccountIdOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("GetWebDavPortalUserSettingsByAccountId", new object[] {
|
||||
accountId}, this.GetWebDavPortalUserSettingsByAccountIdOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnGetWebDavPortalUserSettingsByAccountIdOperationCompleted(object arg) {
|
||||
if ((this.GetWebDavPortalUserSettingsByAccountIdCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.GetWebDavPortalUserSettingsByAccountIdCompleted(this, new GetWebDavPortalUserSettingsByAccountIdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/UpdateWebDavPortalUserSettings", 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 UpdateWebDavPortalUserSettings(int accountId, string settings) {
|
||||
this.Invoke("UpdateWebDavPortalUserSettings", new object[] {
|
||||
accountId,
|
||||
settings});
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.IAsyncResult BeginUpdateWebDavPortalUserSettings(int accountId, string settings, System.AsyncCallback callback, object asyncState) {
|
||||
return this.BeginInvoke("UpdateWebDavPortalUserSettings", new object[] {
|
||||
accountId,
|
||||
settings}, callback, asyncState);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void EndUpdateWebDavPortalUserSettings(System.IAsyncResult asyncResult) {
|
||||
this.EndInvoke(asyncResult);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void UpdateWebDavPortalUserSettingsAsync(int accountId, string settings) {
|
||||
this.UpdateWebDavPortalUserSettingsAsync(accountId, settings, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void UpdateWebDavPortalUserSettingsAsync(int accountId, string settings, object userState) {
|
||||
if ((this.UpdateWebDavPortalUserSettingsOperationCompleted == null)) {
|
||||
this.UpdateWebDavPortalUserSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateWebDavPortalUserSettingsOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("UpdateWebDavPortalUserSettings", new object[] {
|
||||
accountId,
|
||||
settings}, this.UpdateWebDavPortalUserSettingsOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnUpdateWebDavPortalUserSettingsOperationCompleted(object arg) {
|
||||
if ((this.UpdateWebDavPortalUserSettingsCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.UpdateWebDavPortalUserSettingsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SearchFiles", 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 SystemFile[] SearchFiles(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive) {
|
||||
object[] results = this.Invoke("SearchFiles", new object[] {
|
||||
itemId,
|
||||
searchPaths,
|
||||
searchText,
|
||||
userPrincipalName,
|
||||
recursive});
|
||||
return ((SystemFile[])(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.IAsyncResult BeginSearchFiles(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive, System.AsyncCallback callback, object asyncState) {
|
||||
return this.BeginInvoke("SearchFiles", new object[] {
|
||||
itemId,
|
||||
searchPaths,
|
||||
searchText,
|
||||
userPrincipalName,
|
||||
recursive}, callback, asyncState);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public SystemFile[] EndSearchFiles(System.IAsyncResult asyncResult) {
|
||||
object[] results = this.EndInvoke(asyncResult);
|
||||
return ((SystemFile[])(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void SearchFilesAsync(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive) {
|
||||
this.SearchFilesAsync(itemId, searchPaths, searchText, userPrincipalName, recursive, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void SearchFilesAsync(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive, object userState) {
|
||||
if ((this.SearchFilesOperationCompleted == null)) {
|
||||
this.SearchFilesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSearchFilesOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("SearchFiles", new object[] {
|
||||
itemId,
|
||||
searchPaths,
|
||||
searchText,
|
||||
userPrincipalName,
|
||||
recursive}, this.SearchFilesOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnSearchFilesOperationCompleted(object arg) {
|
||||
if ((this.SearchFilesCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.SearchFilesCompleted(this, new SearchFilesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <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) {
|
||||
|
@ -1811,6 +1963,62 @@ namespace WebsitePanel.EnterpriseServer {
|
|||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
public delegate void GetWebDavPortalUserSettingsByAccountIdCompletedEventHandler(object sender, GetWebDavPortalUserSettingsByAccountIdCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetWebDavPortalUserSettingsByAccountIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal GetWebDavPortalUserSettingsByAccountIdCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((string)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
public delegate void UpdateWebDavPortalUserSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
public delegate void SearchFilesCompletedEventHandler(object sender, SearchFilesCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SearchFilesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal SearchFilesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public SystemFile[] Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((SystemFile[])(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
public delegate void GetDirectoryBrowseEnabledCompletedEventHandler(object sender, GetDirectoryBrowseEnabledCompletedEventArgs e);
|
||||
|
|
|
@ -1,7 +1,41 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// 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.
|
||||
|
||||
using WebsitePanel.Providers;
|
||||
using WebsitePanel.Providers.Common;
|
||||
using WebsitePanel.Providers.ResultObjects;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.7905
|
||||
// Runtime Version:2.0.50727.5466
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
|
@ -9,7 +43,7 @@
|
|||
//------------------------------------------------------------------------------
|
||||
|
||||
//
|
||||
// This source code was auto-generated by wsdl, Version=2.0.50727.3038.
|
||||
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
|
||||
//
|
||||
namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
||||
using System.Xml.Serialization;
|
||||
|
@ -19,16 +53,10 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Data;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
using WebsitePanel.Providers.Common;
|
||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||
using WebsitePanel.Providers.ResultObjects;
|
||||
using WebsitePanel.Providers;
|
||||
using WebsitePanel.Providers.Common;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Web.Services.WebServiceBindingAttribute(Name="esOrganizationsSoap", Namespace="http://tempuri.org/")]
|
||||
|
@ -1504,7 +1532,8 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
string externalEmail,
|
||||
string subscriberNumber,
|
||||
int levelId,
|
||||
bool isVIP) {
|
||||
bool isVIP,
|
||||
bool userMustChangePassword) {
|
||||
object[] results = this.Invoke("SetUserGeneralSettings", new object[] {
|
||||
itemId,
|
||||
accountId,
|
||||
|
@ -1536,7 +1565,8 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
externalEmail,
|
||||
subscriberNumber,
|
||||
levelId,
|
||||
isVIP});
|
||||
isVIP,
|
||||
userMustChangePassword});
|
||||
return ((int)(results[0]));
|
||||
}
|
||||
|
||||
|
@ -1573,6 +1603,7 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
string subscriberNumber,
|
||||
int levelId,
|
||||
bool isVIP,
|
||||
bool userMustChangePassword,
|
||||
System.AsyncCallback callback,
|
||||
object asyncState) {
|
||||
return this.BeginInvoke("SetUserGeneralSettings", new object[] {
|
||||
|
@ -1606,7 +1637,8 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
externalEmail,
|
||||
subscriberNumber,
|
||||
levelId,
|
||||
isVIP}, callback, asyncState);
|
||||
isVIP,
|
||||
userMustChangePassword}, callback, asyncState);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
|
@ -1647,8 +1679,9 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
string externalEmail,
|
||||
string subscriberNumber,
|
||||
int levelId,
|
||||
bool isVIP) {
|
||||
this.SetUserGeneralSettingsAsync(itemId, accountId, displayName, password, hideAddressBook, disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle, company, department, office, managerAccountName, businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, externalEmail, subscriberNumber, levelId, isVIP, null);
|
||||
bool isVIP,
|
||||
bool userMustChangePassword) {
|
||||
this.SetUserGeneralSettingsAsync(itemId, accountId, displayName, password, hideAddressBook, disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle, company, department, office, managerAccountName, businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, externalEmail, subscriberNumber, levelId, isVIP, userMustChangePassword, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
|
@ -1684,6 +1717,7 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
string subscriberNumber,
|
||||
int levelId,
|
||||
bool isVIP,
|
||||
bool userMustChangePassword,
|
||||
object userState) {
|
||||
if ((this.SetUserGeneralSettingsOperationCompleted == null)) {
|
||||
this.SetUserGeneralSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetUserGeneralSettingsOperationCompleted);
|
||||
|
@ -1719,7 +1753,8 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
externalEmail,
|
||||
subscriberNumber,
|
||||
levelId,
|
||||
isVIP}, this.SetUserGeneralSettingsOperationCompleted, userState);
|
||||
isVIP,
|
||||
userMustChangePassword}, this.SetUserGeneralSettingsOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnSetUserGeneralSettingsOperationCompleted(object arg) {
|
||||
|
@ -2876,11 +2911,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void CheckOrgIdExistsCompletedEventHandler(object sender, CheckOrgIdExistsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CheckOrgIdExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -2902,11 +2937,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void CreateOrganizationCompletedEventHandler(object sender, CreateOrganizationCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CreateOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -2928,11 +2963,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetRawOrganizationsPagedCompletedEventHandler(object sender, GetRawOrganizationsPagedCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetRawOrganizationsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -2954,11 +2989,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationsCompletedEventHandler(object sender, GetOrganizationsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -2980,11 +3015,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationByIdCompletedEventHandler(object sender, GetOrganizationByIdCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationByIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3006,11 +3041,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationUserSummuryLetterCompletedEventHandler(object sender, GetOrganizationUserSummuryLetterCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationUserSummuryLetterCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3032,11 +3067,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SendOrganizationUserSummuryLetterCompletedEventHandler(object sender, SendOrganizationUserSummuryLetterCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SendOrganizationUserSummuryLetterCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3058,11 +3093,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void DeleteOrganizationCompletedEventHandler(object sender, DeleteOrganizationCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class DeleteOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3084,11 +3119,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationStatisticsCompletedEventHandler(object sender, GetOrganizationStatisticsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationStatisticsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3110,11 +3145,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationStatisticsByOrganizationCompletedEventHandler(object sender, GetOrganizationStatisticsByOrganizationCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationStatisticsByOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3136,11 +3171,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationCompletedEventHandler(object sender, GetOrganizationCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3162,11 +3197,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetAccountIdByUserPrincipalNameCompletedEventHandler(object sender, GetAccountIdByUserPrincipalNameCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetAccountIdByUserPrincipalNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3188,15 +3223,15 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SetDefaultOrganizationCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void AddOrganizationDomainCompletedEventHandler(object sender, AddOrganizationDomainCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class AddOrganizationDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3218,11 +3253,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void ChangeOrganizationDomainTypeCompletedEventHandler(object sender, ChangeOrganizationDomainTypeCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class ChangeOrganizationDomainTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3244,11 +3279,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationDomainsCompletedEventHandler(object sender, GetOrganizationDomainsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationDomainsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3270,11 +3305,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void DeleteOrganizationDomainCompletedEventHandler(object sender, DeleteOrganizationDomainCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class DeleteOrganizationDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3296,11 +3331,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SetOrganizationDefaultDomainCompletedEventHandler(object sender, SetOrganizationDefaultDomainCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SetOrganizationDefaultDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3322,11 +3357,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationObjectsByDomainCompletedEventHandler(object sender, GetOrganizationObjectsByDomainCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationObjectsByDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3348,11 +3383,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void CheckDomainUsedByHostedOrganizationCompletedEventHandler(object sender, CheckDomainUsedByHostedOrganizationCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CheckDomainUsedByHostedOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3374,11 +3409,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void CreateUserCompletedEventHandler(object sender, CreateUserCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CreateUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3400,11 +3435,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void ImportUserCompletedEventHandler(object sender, ImportUserCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class ImportUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3426,11 +3461,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationDeletedUsersPagedCompletedEventHandler(object sender, GetOrganizationDeletedUsersPagedCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationDeletedUsersPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3452,11 +3487,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationUsersPagedCompletedEventHandler(object sender, GetOrganizationUsersPagedCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationUsersPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3478,11 +3513,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetUserGeneralSettingsCompletedEventHandler(object sender, GetUserGeneralSettingsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetUserGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3504,11 +3539,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SetUserGeneralSettingsCompletedEventHandler(object sender, SetUserGeneralSettingsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SetUserGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3530,11 +3565,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SetUserPrincipalNameCompletedEventHandler(object sender, SetUserPrincipalNameCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SetUserPrincipalNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3556,11 +3591,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SetUserPasswordCompletedEventHandler(object sender, SetUserPasswordCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SetUserPasswordCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3582,11 +3617,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SearchAccountsCompletedEventHandler(object sender, SearchAccountsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SearchAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3608,11 +3643,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SetDeletedUserCompletedEventHandler(object sender, SetDeletedUserCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SetDeletedUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3634,11 +3669,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetArchiveFileBinaryChunkCompletedEventHandler(object sender, GetArchiveFileBinaryChunkCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetArchiveFileBinaryChunkCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3660,11 +3695,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void DeleteUserCompletedEventHandler(object sender, DeleteUserCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class DeleteUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3686,11 +3721,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetPasswordPolicyCompletedEventHandler(object sender, GetPasswordPolicyCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetPasswordPolicyCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3712,11 +3747,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void CreateSecurityGroupCompletedEventHandler(object sender, CreateSecurityGroupCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CreateSecurityGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3738,11 +3773,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetSecurityGroupGeneralSettingsCompletedEventHandler(object sender, GetSecurityGroupGeneralSettingsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetSecurityGroupGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3764,11 +3799,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void DeleteSecurityGroupCompletedEventHandler(object sender, DeleteSecurityGroupCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class DeleteSecurityGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3790,11 +3825,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SetSecurityGroupGeneralSettingsCompletedEventHandler(object sender, SetSecurityGroupGeneralSettingsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SetSecurityGroupGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3816,11 +3851,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetOrganizationSecurityGroupsPagedCompletedEventHandler(object sender, GetOrganizationSecurityGroupsPagedCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetOrganizationSecurityGroupsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3842,11 +3877,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void AddObjectToSecurityGroupCompletedEventHandler(object sender, AddObjectToSecurityGroupCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class AddObjectToSecurityGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3868,11 +3903,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void DeleteObjectFromSecurityGroupCompletedEventHandler(object sender, DeleteObjectFromSecurityGroupCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class DeleteObjectFromSecurityGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3894,11 +3929,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetSecurityGroupsByMemberCompletedEventHandler(object sender, GetSecurityGroupsByMemberCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetSecurityGroupsByMemberCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3920,11 +3955,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void SearchOrganizationAccountsCompletedEventHandler(object sender, SearchOrganizationAccountsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SearchOrganizationAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3946,11 +3981,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetAdditionalGroupsCompletedEventHandler(object sender, GetAdditionalGroupsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetAdditionalGroupsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -3972,19 +4007,19 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void UpdateAdditionalGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void DeleteAdditionalGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void AddAdditionalGroupCompletedEventHandler(object sender, AddAdditionalGroupCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class AddAdditionalGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -4006,11 +4041,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetSupportServiceLevelsCompletedEventHandler(object sender, GetSupportServiceLevelsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetSupportServiceLevelsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -4032,15 +4067,15 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void UpdateSupportServiceLevelCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void DeleteSupportServiceLevelCompletedEventHandler(object sender, DeleteSupportServiceLevelCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class DeleteSupportServiceLevelCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -4062,11 +4097,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void AddSupportServiceLevelCompletedEventHandler(object sender, AddSupportServiceLevelCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class AddSupportServiceLevelCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
@ -4088,11 +4123,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
|||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
public delegate void GetSupportServiceLevelCompletedEventHandler(object sender, GetSupportServiceLevelCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetSupportServiceLevelCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
|
|
@ -1197,6 +1197,24 @@ namespace WebsitePanel.EnterpriseServer
|
|||
new SqlParameter("@itemName", itemName));
|
||||
}
|
||||
|
||||
public static int GetServiceItemsCountByNameAndServiceId(int actorId, int serviceId, string groupName,
|
||||
string itemName, string itemTypeName)
|
||||
{
|
||||
int res = 0;
|
||||
|
||||
object obj = SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure,
|
||||
ObjectQualifier + "GetServiceItemsCountByNameAndServiceId",
|
||||
new SqlParameter("@ActorID", actorId),
|
||||
new SqlParameter("@ServiceId", serviceId),
|
||||
new SqlParameter("@ItemName", itemName),
|
||||
new SqlParameter("@GroupName", groupName),
|
||||
new SqlParameter("@ItemTypeName", itemTypeName));
|
||||
|
||||
if (!int.TryParse(obj.ToString(), out res)) return -1;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
public static int AddServiceItem(int actorId, int serviceId, int packageId, string itemName,
|
||||
string itemTypeName, string xmlProperties)
|
||||
{
|
||||
|
@ -2684,13 +2702,13 @@ namespace WebsitePanel.EnterpriseServer
|
|||
);
|
||||
}
|
||||
|
||||
public static IDataReader GetExchangeAccountByAccountNameWithoutItemId(string primaryEmailAddress)
|
||||
public static IDataReader GetExchangeAccountByAccountNameWithoutItemId(string userPrincipalName)
|
||||
{
|
||||
return SqlHelper.ExecuteReader(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"GetExchangeAccountByAccountNameWithoutItemId",
|
||||
new SqlParameter("@PrimaryEmailAddress", primaryEmailAddress)
|
||||
new SqlParameter("@UserPrincipalName", userPrincipalName)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -4486,6 +4504,45 @@ namespace WebsitePanel.EnterpriseServer
|
|||
);
|
||||
}
|
||||
|
||||
public static IDataReader GetWebDavPortalUserSettingsByAccountId(int accountId)
|
||||
{
|
||||
return SqlHelper.ExecuteReader(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"GetWebDavPortalUsersSettingsByAccountId",
|
||||
new SqlParameter("@AccountId", accountId)
|
||||
);
|
||||
}
|
||||
|
||||
public static int AddWebDavPortalUsersSettings(int accountId, string settings)
|
||||
{
|
||||
SqlParameter settingsId = new SqlParameter("@WebDavPortalUsersSettingsId", SqlDbType.Int);
|
||||
settingsId.Direction = ParameterDirection.Output;
|
||||
|
||||
SqlHelper.ExecuteNonQuery(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"AddWebDavPortalUsersSettings",
|
||||
settingsId,
|
||||
new SqlParameter("@AccountId", accountId),
|
||||
new SqlParameter("@Settings", settings)
|
||||
);
|
||||
|
||||
// read identity
|
||||
return Convert.ToInt32(settingsId.Value);
|
||||
}
|
||||
|
||||
public static void UpdateWebDavPortalUsersSettings(int accountId, string settings)
|
||||
{
|
||||
SqlHelper.ExecuteNonQuery(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"UpdateWebDavPortalUsersSettings",
|
||||
new SqlParameter("@AccountId", accountId),
|
||||
new SqlParameter("@Settings", settings)
|
||||
);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Support Service Levels
|
||||
|
|
|
@ -125,8 +125,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
if (serviceId == 0)
|
||||
return BusinessErrorCodes.ERROR_MSSQL_RESOURCE_UNAVAILABLE;
|
||||
|
||||
// check package items
|
||||
if (PackageController.GetPackageItemByName(item.PackageId, groupName, item.Name, typeof(SqlDatabase)) != null)
|
||||
// check service items
|
||||
if (PackageController.GetServiceItemsCountByNameAndServiceId(serviceId, groupName, item.Name, typeof(SqlDatabase)) > 0)
|
||||
return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_EXISTS;
|
||||
|
||||
// place log record
|
||||
|
|
|
@ -272,6 +272,14 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
// delete service item
|
||||
PackageController.DeletePackageItem(zoneItemId);
|
||||
|
||||
// Delete also all seconday service items
|
||||
var zoneItems = PackageController.GetPackageItemsByType(zoneItem.PackageId, ResourceGroups.Dns, typeof (SecondaryDnsZone));
|
||||
|
||||
foreach (var item in zoneItems.Where(z => z.Name == zoneItem.Name))
|
||||
{
|
||||
PackageController.DeletePackageItem(item.Id);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
@ -172,6 +172,34 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return ObjectUtils.FillObjectFromDataReader<WebDavAccessToken>(DataProvider.GetWebDavAccessTokenByAccessToken(accessToken));
|
||||
}
|
||||
|
||||
public static SystemFile[] SearchFiles(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive)
|
||||
{
|
||||
try
|
||||
{
|
||||
// load organization
|
||||
Organization org = OrganizationController.GetOrganization(itemId);
|
||||
if (org == null)
|
||||
{
|
||||
return new SystemFile[0];
|
||||
}
|
||||
|
||||
int serviceId = GetEnterpriseStorageServiceID(org.PackageId);
|
||||
|
||||
if (serviceId == 0)
|
||||
{
|
||||
return new SystemFile[0];
|
||||
}
|
||||
|
||||
EnterpriseStorage es = GetEnterpriseStorage(serviceId);
|
||||
|
||||
return es.Search(org.OrganizationId, searchPaths, searchText, userPrincipalName, recursive);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
#region Directory Browsing
|
||||
|
||||
public static bool GetDirectoryBrowseEnabled(int itemId, string siteId)
|
||||
|
@ -202,6 +230,33 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
#endregion
|
||||
|
||||
private static IEnumerable<SystemFile> GetRootFolders(string userPrincipalName)
|
||||
{
|
||||
var rootFolders = new List<SystemFile>();
|
||||
|
||||
var account = ExchangeServerController.GetAccountByAccountName(userPrincipalName);
|
||||
|
||||
var userGroups = OrganizationController.GetSecurityGroupsByMember(account.ItemId, account.AccountId);
|
||||
|
||||
foreach (var folder in GetFolders(account.ItemId))
|
||||
{
|
||||
var permissions = GetFolderPermission(account.ItemId, folder.Name);
|
||||
|
||||
foreach (var permission in permissions)
|
||||
{
|
||||
if ((!permission.IsGroup
|
||||
&& (permission.DisplayName == account.UserPrincipalName || permission.DisplayName == account.DisplayName))
|
||||
|| (permission.IsGroup && userGroups.Any(x => x.DisplayName == permission.DisplayName)))
|
||||
{
|
||||
rootFolders.Add(folder);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rootFolders;
|
||||
}
|
||||
|
||||
protected static void StartESBackgroundTaskInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
||||
{
|
||||
// load organization
|
||||
|
@ -1210,6 +1265,37 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return null;
|
||||
}
|
||||
|
||||
#region WebDav portal
|
||||
|
||||
public static string GetWebDavPortalUserSettingsByAccountId(int accountId)
|
||||
{
|
||||
var dataReader = DataProvider.GetWebDavPortalUserSettingsByAccountId(accountId);
|
||||
|
||||
while (dataReader.Read())
|
||||
{
|
||||
return (string)dataReader["Settings"];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void UpdateUserSettings(int accountId, string settings)
|
||||
{
|
||||
var oldSettings = GetWebDavPortalUserSettingsByAccountId(accountId);
|
||||
|
||||
if (string.IsNullOrEmpty(oldSettings))
|
||||
{
|
||||
DataProvider.AddWebDavPortalUsersSettings(accountId, settings);
|
||||
}
|
||||
else
|
||||
{
|
||||
DataProvider.UpdateWebDavPortalUsersSettings(accountId, settings);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Statistics
|
||||
|
||||
public static OrganizationStatistics GetStatistics(int itemId)
|
||||
|
|
|
@ -31,6 +31,7 @@ using System.Collections;
|
|||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net.Mail;
|
||||
using System.Threading;
|
||||
using WebsitePanel.EnterpriseServer.Code.HostedSolution;
|
||||
|
@ -1216,10 +1217,10 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return account;
|
||||
}
|
||||
|
||||
public static ExchangeAccount GetAccountByAccountName(string primaryEmailAddress)
|
||||
public static ExchangeAccount GetAccountByAccountName(string userPrincipalName)
|
||||
{
|
||||
ExchangeAccount account = ObjectUtils.FillObjectFromDataReader<ExchangeAccount>(
|
||||
DataProvider.GetExchangeAccountByAccountNameWithoutItemId(primaryEmailAddress));
|
||||
DataProvider.GetExchangeAccountByAccountNameWithoutItemId(userPrincipalName));
|
||||
|
||||
if (account == null)
|
||||
return null;
|
||||
|
@ -2919,23 +2920,18 @@ namespace WebsitePanel.EnterpriseServer
|
|||
try
|
||||
{
|
||||
List<ExchangeMailboxPlan> mailboxPlans = new List<ExchangeMailboxPlan>();
|
||||
int? defaultPlanId = null;
|
||||
|
||||
UserInfo user = ObjectUtils.FillObjectFromDataReader<UserInfo>(DataProvider.GetUserByExchangeOrganizationIdInternally(itemId));
|
||||
|
||||
if (user.Role == UserRole.User)
|
||||
ExchangeServerController.GetExchangeMailboxPlansByUser(itemId, user, ref mailboxPlans, archiving);
|
||||
GetExchangeMailboxPlansByUser(itemId, user, ref mailboxPlans, ref defaultPlanId, archiving);
|
||||
else
|
||||
ExchangeServerController.GetExchangeMailboxPlansByUser(0, user, ref mailboxPlans, archiving);
|
||||
GetExchangeMailboxPlansByUser(0, user, ref mailboxPlans, ref defaultPlanId, archiving);
|
||||
|
||||
|
||||
ExchangeOrganization ExchangeOrg = ObjectUtils.FillObjectFromDataReader<ExchangeOrganization>(DataProvider.GetExchangeOrganization(itemId));
|
||||
|
||||
if (ExchangeOrg != null)
|
||||
if (defaultPlanId.HasValue)
|
||||
{
|
||||
foreach (ExchangeMailboxPlan p in mailboxPlans)
|
||||
{
|
||||
p.IsDefault = (p.MailboxPlanId == ExchangeOrg.ExchangeMailboxPlanID);
|
||||
}
|
||||
mailboxPlans.ForEach(p => p.IsDefault = (p.MailboxPlanId == defaultPlanId.Value));
|
||||
}
|
||||
|
||||
return mailboxPlans;
|
||||
|
@ -2950,7 +2946,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
}
|
||||
|
||||
private static void GetExchangeMailboxPlansByUser(int itemId, UserInfo user, ref List<ExchangeMailboxPlan> mailboxPlans, bool archiving)
|
||||
private static void GetExchangeMailboxPlansByUser(int itemId, UserInfo user, ref List<ExchangeMailboxPlan> mailboxPlans, ref int? defaultPlanId, bool archiving)
|
||||
{
|
||||
if ((user != null))
|
||||
{
|
||||
|
@ -2983,11 +2979,20 @@ namespace WebsitePanel.EnterpriseServer
|
|||
{
|
||||
mailboxPlans.Add(p);
|
||||
}
|
||||
|
||||
// Set default plan
|
||||
ExchangeOrganization exchangeOrg = ObjectUtils.FillObjectFromDataReader<ExchangeOrganization>(DataProvider.GetExchangeOrganization(OrgId));
|
||||
|
||||
// If the default plan has not been set by the setting of higher priority
|
||||
if (!defaultPlanId.HasValue && exchangeOrg != null && exchangeOrg.ExchangeMailboxPlanID > 0)
|
||||
{
|
||||
defaultPlanId = exchangeOrg.ExchangeMailboxPlanID;
|
||||
}
|
||||
}
|
||||
|
||||
UserInfo owner = UserController.GetUserInternally(user.OwnerId);
|
||||
|
||||
GetExchangeMailboxPlansByUser(0, owner, ref mailboxPlans, archiving);
|
||||
GetExchangeMailboxPlansByUser(0, owner, ref mailboxPlans, ref defaultPlanId, archiving);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5532,7 +5537,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
res += id + " has a value \"" + defaultPublicFoldes[0] + "\"" + Environment.NewLine;
|
||||
|
||||
if (defaultPublicFoldes.Length == 2)
|
||||
res += id + " changed from \"" + defaultPublicFoldes[0] + "\" to \"" + defaultPublicFoldes[1] + "\"" + Environment.NewLine;
|
||||
res += id + " changed \"" + defaultPublicFoldes[0] + "\" to \"" + defaultPublicFoldes[1] + "\"" + Environment.NewLine;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -2284,7 +2284,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
string lastName, string address, string city, string state, string zip, string country,
|
||||
string jobTitle, string company, string department, string office, string managerAccountName,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
||||
string webPage, string notes, string externalEmail, string subscriberNumber, int levelId, bool isVIP)
|
||||
string webPage, string notes, string externalEmail, string subscriberNumber, int levelId, bool isVIP,
|
||||
bool userMustChangePassword)
|
||||
{
|
||||
|
||||
// check account
|
||||
|
@ -2346,7 +2347,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
pager,
|
||||
webPage,
|
||||
notes,
|
||||
externalEmailAddress);
|
||||
externalEmailAddress,
|
||||
userMustChangePassword);
|
||||
|
||||
// update account
|
||||
account.DisplayName = displayName;
|
||||
|
|
|
@ -137,7 +137,6 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return domainResult;
|
||||
|
||||
// create service item
|
||||
item.Enabled = true;
|
||||
item.MaxMailboxSize = GetMaxMailBoxSize(item.PackageId, item);
|
||||
|
||||
// add service item
|
||||
|
@ -159,7 +158,11 @@ namespace WebsitePanel.EnterpriseServer
|
|||
{
|
||||
return BusinessErrorCodes.ERROR_MAIL_LICENSE_DOMAIN_QUOTA;
|
||||
}
|
||||
if (ex.Message != null && ex.Message.Contains("The maximum number of users for the server has been reached"))
|
||||
if (ex.Message.Contains("Password doesn't meet complexity"))
|
||||
{
|
||||
return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY;
|
||||
}
|
||||
if (ex.Message.Contains("The maximum number of users for the server has been reached"))
|
||||
{
|
||||
return BusinessErrorCodes.ERROR_MAIL_LICENSE_USERS_QUOTA;
|
||||
}
|
||||
|
@ -203,7 +206,6 @@ namespace WebsitePanel.EnterpriseServer
|
|||
MailServer mail = new MailServer();
|
||||
ServiceProviderProxy.Init(mail, origItem.ServiceId);
|
||||
item.Name = origItem.Name;
|
||||
item.Enabled = true;
|
||||
|
||||
item.MaxMailboxSize = GetMaxMailBoxSize(origItem.PackageId, item);
|
||||
|
||||
|
@ -224,6 +226,11 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (ex.Message.Contains("Password doesn't meet complexity"))
|
||||
{
|
||||
return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY;
|
||||
}
|
||||
|
||||
throw TaskManager.WriteError(ex);
|
||||
}
|
||||
finally
|
||||
|
|
|
@ -1380,6 +1380,14 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return CreateServiceItem(dvItem[0], dsItem.Tables[1].DefaultView);
|
||||
}
|
||||
|
||||
public static int GetServiceItemsCountByNameAndServiceId(int serviceId, string groupName, string itemName, Type itemType)
|
||||
{
|
||||
string itemTypeName = ObjectUtils.GetTypeFullName(itemType);
|
||||
|
||||
return DataProvider.GetServiceItemsCountByNameAndServiceId(SecurityContext.User.UserId,
|
||||
serviceId, groupName, itemName, itemTypeName);
|
||||
}
|
||||
|
||||
public static bool CheckServiceItemExists(string itemName, Type itemType)
|
||||
{
|
||||
return CheckServiceItemExists(itemName, null, itemType);
|
||||
|
|
|
@ -381,7 +381,10 @@ namespace WebsitePanel.EnterpriseServer
|
|||
site.PerlInstalled = Utils.ParseBool(webPolicy["PerlInstalled"], false);
|
||||
site.PythonInstalled = Utils.ParseBool(webPolicy["PythonInstalled"], false);
|
||||
site.CgiBinInstalled = Utils.ParseBool(webPolicy["CgiBinInstalled"], false);
|
||||
site.ColdFusionInstalled = false;
|
||||
QuotaValueInfo quotaInfoCF = PackageController.GetPackageQuota(packageId, Quotas.WEB_COLDFUSION);
|
||||
site.ColdFusionInstalled = (quotaInfoCF.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["ColdFusionInstalled"], false);
|
||||
QuotaValueInfo quotaInfoCFV = PackageController.GetPackageQuota(packageId, Quotas.WEB_CFVIRTUALDIRS);
|
||||
site.CreateCFVirtualDirectoriesPol = (quotaInfoCFV.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["CreateCFVirtualDirectoriesPol"], false);
|
||||
|
||||
}
|
||||
else
|
||||
|
@ -404,6 +407,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
site.PythonInstalled = false;
|
||||
site.CgiBinInstalled = false;
|
||||
site.ColdFusionInstalled = false;
|
||||
site.CreateCFVirtualDirectoriesPol = false;
|
||||
}
|
||||
|
||||
site.HttpRedirect = "";
|
||||
|
@ -3633,6 +3637,17 @@ namespace WebsitePanel.EnterpriseServer
|
|||
WebServer server = GetWebServer(item.ServiceId);
|
||||
//
|
||||
server.RevokeWebManagementAccess(item.SiteId, accountName);
|
||||
|
||||
// Cleanup web site properties if the web management and web deploy user are the same
|
||||
if (GetNonQualifiedAccountName(accountName) == item.WebDeployPublishingAccount)
|
||||
{
|
||||
item.WebDeployPublishingAccount = String.Empty;
|
||||
item.WebDeploySitePublishingEnabled = false;
|
||||
item.WebDeploySitePublishingProfile = String.Empty;
|
||||
item.WebDeployPublishingPassword = String.Empty;
|
||||
// Put changes into effect
|
||||
PackageController.UpdatePackageItem(item);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -3644,6 +3659,12 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
}
|
||||
|
||||
protected static string GetNonQualifiedAccountName(string accountName)
|
||||
{
|
||||
int idx = accountName.LastIndexOf("\\");
|
||||
return (idx != -1) ? accountName.Substring(idx + 1) : accountName;
|
||||
}
|
||||
|
||||
public static ResultObject ChangeWebManagementAccessPassword(int siteItemId, string accountPassword)
|
||||
{
|
||||
ResultObject result = new ResultObject { IsSuccess = true };
|
||||
|
|
|
@ -380,7 +380,10 @@ namespace WebsitePanel.EnterpriseServer
|
|||
site.PerlInstalled = Utils.ParseBool(webPolicy["PerlInstalled"], false);
|
||||
site.PythonInstalled = Utils.ParseBool(webPolicy["PythonInstalled"], false);
|
||||
site.CgiBinInstalled = Utils.ParseBool(webPolicy["CgiBinInstalled"], false);
|
||||
site.ColdFusionInstalled = false;
|
||||
QuotaValueInfo quotaInfoCF = PackageController.GetPackageQuota(packageId, Quotas.WEB_COLDFUSION);
|
||||
site.ColdFusionInstalled = (quotaInfoCF.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["ColdFusionInstalled"], false);
|
||||
QuotaValueInfo quotaInfoCFV = PackageController.GetPackageQuota(packageId, Quotas.WEB_CFVIRTUALDIRS);
|
||||
site.CreateCFVirtualDirectoriesPol = (quotaInfoCFV.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["CreateCFVirtualDirectoriesPol"], false);
|
||||
|
||||
}
|
||||
else
|
||||
|
@ -403,6 +406,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
site.PythonInstalled = false;
|
||||
site.CgiBinInstalled = false;
|
||||
site.ColdFusionInstalled = false;
|
||||
site.CreateCFVirtualDirectoriesPol = false;
|
||||
}
|
||||
|
||||
site.HttpRedirect = "";
|
||||
|
|
|
@ -158,6 +158,24 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return EnterpriseStorageController.CheckUsersDomainExists(itemId);
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public string GetWebDavPortalUserSettingsByAccountId(int accountId)
|
||||
{
|
||||
return EnterpriseStorageController.GetWebDavPortalUserSettingsByAccountId(accountId);
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void UpdateWebDavPortalUserSettings(int accountId, string settings)
|
||||
{
|
||||
EnterpriseStorageController.UpdateUserSettings(accountId,settings);
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public SystemFile[] SearchFiles(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive)
|
||||
{
|
||||
return EnterpriseStorageController.SearchFiles(itemId, searchPaths, searchText, userPrincipalName, recursive);
|
||||
}
|
||||
|
||||
#region Directory Browsing
|
||||
|
||||
[WebMethod]
|
||||
|
|
|
@ -219,14 +219,15 @@ namespace WebsitePanel.EnterpriseServer
|
|||
string lastName, string address, string city, string state, string zip, string country,
|
||||
string jobTitle, string company, string department, string office, string managerAccountName,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
||||
string webPage, string notes, string externalEmail, string subscriberNumber, int levelId, bool isVIP)
|
||||
string webPage, string notes, string externalEmail, string subscriberNumber, int levelId, bool isVIP,
|
||||
bool userMustChangePassword)
|
||||
{
|
||||
return OrganizationController.SetUserGeneralSettings(itemId, accountId, displayName,
|
||||
password, hideAddressBook, disabled, locked, firstName, initials,
|
||||
lastName, address, city, state, zip, country,
|
||||
jobTitle, company, department, office, managerAccountName,
|
||||
businessPhone, fax, homePhone, mobilePhone, pager,
|
||||
webPage, notes, externalEmail, subscriberNumber, levelId, isVIP);
|
||||
webPage, notes, externalEmail, subscriberNumber, levelId, isVIP, userMustChangePassword);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -46,6 +46,6 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules);
|
||||
WebDavFolderRule[] GetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting);
|
||||
bool CheckFileServicesInstallation();
|
||||
|
||||
SystemFile[] Search(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
public const string CustomAttribute2 = "extensionAttribute2";
|
||||
public const string DistinguishedName = "distinguishedName";
|
||||
public const string SID = "objectSid";
|
||||
|
||||
public const string PwdLastSet = "pwdLastSet";
|
||||
public const string UserAccountControl = "UserAccountControl";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,7 +64,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
string jobTitle,
|
||||
string company, string department, string office, string managerAccountName,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
||||
string webPage, string notes, string externalEmail);
|
||||
string webPage, string notes, string externalEmail,
|
||||
bool userMustChangePassword);
|
||||
|
||||
void SetUserPassword(string organizationId, string accountName, string password);
|
||||
|
||||
|
|
|
@ -327,5 +327,12 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
set { isVip = value; }
|
||||
}
|
||||
|
||||
private bool userMustChangePassword;
|
||||
|
||||
public bool UserMustChangePassword
|
||||
{
|
||||
get { return userMustChangePassword; }
|
||||
set { userMustChangePassword = value; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace WebsitePanel.Providers.Mail
|
|||
[Serializable]
|
||||
public class MailAccount : ServiceProviderItem
|
||||
{
|
||||
private bool enabled;
|
||||
private bool enabled = true;
|
||||
private string password;
|
||||
private string replyTo;
|
||||
private bool responderEnabled;
|
||||
|
|
|
@ -144,6 +144,8 @@ namespace WebsitePanel.Providers.OS
|
|||
set { this.url = value; }
|
||||
}
|
||||
|
||||
public string RelativeUrl { get; set; }
|
||||
|
||||
public string DriveLetter
|
||||
{
|
||||
get { return this.driveLetter; }
|
||||
|
|
|
@ -55,6 +55,7 @@ namespace WebsitePanel.Providers.Web
|
|||
private bool frontPageInstalled;
|
||||
private bool coldFusionAvailable;
|
||||
private bool createCFVirtualDirectories;
|
||||
private bool createCFVirtualDirectoriesPol;
|
||||
private string frontPageAccount;
|
||||
private string frontPagePassword;
|
||||
private string coldFusionVersion;
|
||||
|
@ -157,6 +158,12 @@ namespace WebsitePanel.Providers.Web
|
|||
get { return this.createCFVirtualDirectories; }
|
||||
set { this.createCFVirtualDirectories = value; }
|
||||
}
|
||||
|
||||
public bool CreateCFVirtualDirectoriesPol
|
||||
{
|
||||
get { return this.createCFVirtualDirectoriesPol; }
|
||||
set { this.createCFVirtualDirectoriesPol = value; }
|
||||
}
|
||||
|
||||
public ServerState SiteState
|
||||
{
|
||||
|
|
|
@ -27,9 +27,12 @@
|
|||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Data.OleDb;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Principal;
|
||||
using System.Text;
|
||||
using Microsoft.Win32;
|
||||
|
||||
|
@ -62,6 +65,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
#endregion
|
||||
|
||||
#region Folders
|
||||
|
||||
public SystemFile[] GetFolders(string organizationId, WebDavSetting[] settings)
|
||||
{
|
||||
ArrayList items = new ArrayList();
|
||||
|
@ -70,7 +74,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
|
||||
foreach (var setting in webDavSettings)
|
||||
{
|
||||
string rootPath = string.Format("{0}:\\{1}\\{2}", setting.LocationDrive, setting.HomeFolder, organizationId);
|
||||
string rootPath = string.Format("{0}:\\{1}\\{2}", setting.LocationDrive, setting.HomeFolder,
|
||||
organizationId);
|
||||
|
||||
var windows = new WebsitePanel.Providers.OS.Windows2012();
|
||||
|
||||
|
@ -114,16 +119,17 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
}
|
||||
}
|
||||
|
||||
return (SystemFile[])items.ToArray(typeof(SystemFile));
|
||||
return (SystemFile[]) items.ToArray(typeof (SystemFile));
|
||||
}
|
||||
|
||||
public SystemFile GetFolder(string organizationId, string folderName, WebDavSetting setting)
|
||||
{
|
||||
var webDavSetting = GetWebDavSetting(setting);
|
||||
|
||||
string fullName = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folderName);
|
||||
string fullName = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
|
||||
organizationId, folderName);
|
||||
SystemFile folder = null;
|
||||
|
||||
|
||||
var windows = new WebsitePanel.Providers.OS.Windows2012();
|
||||
|
||||
if (Directory.Exists(fullName))
|
||||
|
@ -151,7 +157,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
folder.FRSMQuotaGB = windows.ConvertMegaBytesToGB(folder.FRSMQuotaMB);
|
||||
folder.FsrmQuotaType = quota.QuotaType;
|
||||
}
|
||||
|
||||
|
||||
return folder;
|
||||
}
|
||||
|
||||
|
@ -159,17 +165,21 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
{
|
||||
var webDavSetting = GetWebDavSetting(setting);
|
||||
|
||||
FileUtils.CreateDirectory(string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folder));
|
||||
FileUtils.CreateDirectory(string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive,
|
||||
webDavSetting.HomeFolder, organizationId, folder));
|
||||
}
|
||||
|
||||
public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
|
||||
public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder,
|
||||
WebDavSetting setting)
|
||||
{
|
||||
var webDavSetting = GetWebDavSetting(setting);
|
||||
|
||||
var oldPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, originalFolder);
|
||||
var newPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, newFolder);
|
||||
var oldPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
|
||||
organizationId, originalFolder);
|
||||
var newPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
|
||||
organizationId, newFolder);
|
||||
|
||||
FileUtils.MoveFile(oldPath,newPath);
|
||||
FileUtils.MoveFile(oldPath, newPath);
|
||||
|
||||
IWebDav webdav = new WebDav(webDavSetting);
|
||||
|
||||
|
@ -183,17 +193,20 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
{
|
||||
var webDavSetting = GetWebDavSetting(setting);
|
||||
|
||||
string rootPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folder);
|
||||
string rootPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
|
||||
organizationId, folder);
|
||||
|
||||
DirectoryInfo treeRoot = new DirectoryInfo(rootPath);
|
||||
|
||||
|
||||
if (treeRoot.Exists)
|
||||
{
|
||||
DirectoryInfo[] dirs = treeRoot.GetDirectories();
|
||||
while (dirs.Length > 0)
|
||||
{
|
||||
foreach (DirectoryInfo dir in dirs)
|
||||
DeleteFolder(organizationId, folder != string.Empty ? string.Format("{0}\\{1}", folder, dir.Name) : dir.Name, webDavSetting);
|
||||
DeleteFolder(organizationId,
|
||||
folder != string.Empty ? string.Format("{0}\\{1}", folder, dir.Name) : dir.Name,
|
||||
webDavSetting);
|
||||
|
||||
dirs = treeRoot.GetDirectories();
|
||||
}
|
||||
|
@ -207,14 +220,15 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
}
|
||||
|
||||
IWebDav webdav = new WebDav(webDavSetting);
|
||||
|
||||
|
||||
webdav.DeleteAllWebDavRules(organizationId, folder);
|
||||
|
||||
|
||||
Directory.Delete(treeRoot.FullName, true);
|
||||
}
|
||||
}
|
||||
|
||||
public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules)
|
||||
public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting,
|
||||
WebDavFolderRule[] rules)
|
||||
{
|
||||
var users = new List<UserPermission>();
|
||||
|
||||
|
@ -243,14 +257,15 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
|
||||
var webDavSetting = GetWebDavSetting(setting);
|
||||
|
||||
string path = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folder);
|
||||
string path = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
|
||||
organizationId, folder);
|
||||
|
||||
SecurityUtils.ResetNtfsPermissions(path);
|
||||
|
||||
SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, new RemoteServerSettings(), null, null);
|
||||
|
||||
IWebDav webdav = new WebDav(webDavSetting);
|
||||
|
||||
|
||||
return webdav.SetFolderWebDavRules(organizationId, folder, rules);
|
||||
}
|
||||
|
||||
|
@ -270,6 +285,73 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
|
||||
#endregion
|
||||
|
||||
public SystemFile[] Search(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive)
|
||||
{
|
||||
var settings = GetWebDavSetting(null);
|
||||
var result = new List<SystemFile>();
|
||||
var isRootSearch = false;
|
||||
|
||||
if (searchPaths.Any(string.IsNullOrEmpty))
|
||||
{
|
||||
isRootSearch = true;
|
||||
searchPaths = searchPaths.Where(x => !string.IsNullOrEmpty(x)).ToArray();
|
||||
}
|
||||
|
||||
//using (new WindowsIdentity(userPrincipalName).Impersonate())
|
||||
{
|
||||
using (var conn = new OleDbConnection("Provider=Search.CollatorDSO;Extended Properties='Application=Windows';"))
|
||||
{
|
||||
var rootFolder = Path.Combine(settings.LocationDrive + ":\\", settings.HomeFolder);
|
||||
rootFolder = Path.Combine(rootFolder, organizationId);
|
||||
|
||||
var wsSql = string.Format(@"SELECT System.FileName, System.DateModified, System.Size, System.Kind, System.ItemPathDisplay, System.ItemType FROM SYSTEMINDEX WHERE System.FileName LIKE '%{0}%' AND ({1})",
|
||||
searchText, string.Join(" OR ", searchPaths.Select(x => string.Format("{0} = '{1}'", recursive ? "SCOPE" : "DIRECTORY", Path.Combine(rootFolder, x))).ToArray()));
|
||||
|
||||
conn.Open();
|
||||
|
||||
var cmd = new OleDbCommand(wsSql, conn);
|
||||
|
||||
using (OleDbDataReader reader = cmd.ExecuteReader())
|
||||
{
|
||||
while (reader!= null && reader.Read())
|
||||
{
|
||||
var file = new SystemFile {Name = reader[0] as string};
|
||||
|
||||
file.Changed = file.CreatedDate = reader[1] is DateTime ? (DateTime)reader[1] : new DateTime();
|
||||
file.Size = reader[2] is long ? (long) reader[2] : 0;
|
||||
|
||||
var kind = reader[3] is IEnumerable ? ((IEnumerable)reader[3]).Cast<string>().ToList() : null;
|
||||
var itemType = reader[5] as string ?? string.Empty;
|
||||
|
||||
if (kind != null && kind.Any() && itemType.ToLowerInvariant() != ".zip")
|
||||
{
|
||||
file.IsDirectory = kind.Any(x => x == "folder");
|
||||
}
|
||||
|
||||
file.FullName = (reader[4] as string ?? string.Empty);
|
||||
|
||||
if (isRootSearch)
|
||||
{
|
||||
file.RelativeUrl = file.FullName.Replace(rootFolder, "").Trim('\\');
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var searchPath in searchPaths)
|
||||
{
|
||||
file.RelativeUrl = file.FullName.Replace(Path.Combine(rootFolder, searchPath), "").Trim('\\');
|
||||
}
|
||||
}
|
||||
|
||||
result.Add(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result.ToArray();
|
||||
}
|
||||
|
||||
|
||||
#region HostingServiceProvider methods
|
||||
|
||||
public override string[] Install()
|
||||
|
|
|
@ -5334,16 +5334,13 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
|
||||
string newValue = orgCanonicalName + "/" + GetPublicFolderMailboxName(organizationId);
|
||||
|
||||
if (newValue != oldValue)
|
||||
{
|
||||
cmd = new Command("Set-Mailbox");
|
||||
cmd.Parameters.Add("Identity", id);
|
||||
cmd.Parameters.Add("DefaultPublicFolderMailbox", newValue);
|
||||
cmd = new Command("Set-Mailbox");
|
||||
cmd.Parameters.Add("Identity", id);
|
||||
cmd.Parameters.Add("DefaultPublicFolderMailbox", newValue);
|
||||
|
||||
ExecuteShellCommand(runSpace, cmd);
|
||||
ExecuteShellCommand(runSpace, cmd);
|
||||
|
||||
res.Add(newValue);
|
||||
}
|
||||
res.Add(newValue);
|
||||
|
||||
}
|
||||
finally
|
||||
|
|
|
@ -603,6 +603,53 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
return retUser;
|
||||
}
|
||||
|
||||
private static Int64 ConvertADSLargeIntegerToInt64(object adsLargeInteger)
|
||||
{
|
||||
var highPart = (Int32)adsLargeInteger.GetType().InvokeMember("HighPart", System.Reflection.BindingFlags.GetProperty, null, adsLargeInteger, null);
|
||||
var lowPart = (Int32)adsLargeInteger.GetType().InvokeMember("LowPart", System.Reflection.BindingFlags.GetProperty, null, adsLargeInteger, null);
|
||||
return highPart * ((Int64)UInt32.MaxValue + 1) + lowPart;
|
||||
}
|
||||
|
||||
private bool GetUserMustChangePassword(DirectoryEntry user)
|
||||
{
|
||||
Int64 pls;
|
||||
int uac;
|
||||
|
||||
if (user.Properties[ADAttributes.PwdLastSet] != null && user.Properties[ADAttributes.PwdLastSet].Value != null)
|
||||
pls = ConvertADSLargeIntegerToInt64(user.Properties[ADAttributes.PwdLastSet].Value);
|
||||
else
|
||||
return false;
|
||||
|
||||
if (user.Properties[ADAttributes.UserAccountControl] != null && user.Properties[ADAttributes.UserAccountControl].Value != null)
|
||||
uac = (int)user.Properties[ADAttributes.UserAccountControl].Value;
|
||||
else
|
||||
return false;
|
||||
|
||||
return (pls == 0) && ((uac & 0x00010000) == 0);
|
||||
}
|
||||
|
||||
private void SetUserMustChangePassword(DirectoryEntry user, bool userMustChangePassword)
|
||||
{
|
||||
Int64 pls;
|
||||
int uac;
|
||||
|
||||
if (user.Properties[ADAttributes.PwdLastSet] != null && user.Properties[ADAttributes.PwdLastSet].Value != null)
|
||||
pls = ConvertADSLargeIntegerToInt64(user.Properties[ADAttributes.PwdLastSet].Value);
|
||||
else
|
||||
return;
|
||||
|
||||
if (user.Properties[ADAttributes.UserAccountControl] != null && user.Properties[ADAttributes.UserAccountControl].Value != null)
|
||||
uac = (int)user.Properties[ADAttributes.UserAccountControl].Value;
|
||||
else
|
||||
return;
|
||||
|
||||
if ((uac & 0x00010000) != 0) return;
|
||||
|
||||
if ((pls == 0) == userMustChangePassword) return;
|
||||
|
||||
user.Properties[ADAttributes.PwdLastSet].Value = userMustChangePassword ? 0 : -1;
|
||||
}
|
||||
|
||||
private OrganizationUser GetUser(string path)
|
||||
{
|
||||
OrganizationUser retUser = new OrganizationUser();
|
||||
|
@ -637,6 +684,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
retUser.DistinguishedName = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.DistinguishedName);
|
||||
retUser.Locked = (bool)entry.InvokeGet(ADAttributes.AccountLocked);
|
||||
retUser.UserPrincipalName = (string)entry.InvokeGet(ADAttributes.UserPrincipalName);
|
||||
retUser.UserMustChangePassword = GetUserMustChangePassword(entry);
|
||||
|
||||
return retUser;
|
||||
}
|
||||
|
@ -673,12 +721,12 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
string address, string city, string state, string zip, string country, string jobTitle,
|
||||
string company, string department, string office, string managerAccountName,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
||||
string webPage, string notes, string externalEmail)
|
||||
string webPage, string notes, string externalEmail, bool userMustChangePassword)
|
||||
{
|
||||
SetUserGeneralSettingsInternal(organizationId, accountName, displayName, password, hideFromAddressBook,
|
||||
disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle,
|
||||
company, department, office, managerAccountName, businessPhone, fax, homePhone,
|
||||
mobilePhone, pager, webPage, notes, externalEmail);
|
||||
mobilePhone, pager, webPage, notes, externalEmail, userMustChangePassword);
|
||||
}
|
||||
|
||||
internal void SetUserGeneralSettingsInternal(string organizationId, string accountName, string displayName, string password,
|
||||
|
@ -686,7 +734,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
string address, string city, string state, string zip, string country, string jobTitle,
|
||||
string company, string department, string office, string managerAccountName,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
||||
string webPage, string notes, string externalEmail)
|
||||
string webPage, string notes, string externalEmail, bool userMustChangePassword)
|
||||
{
|
||||
string path = GetUserPath(organizationId, accountName);
|
||||
DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path);
|
||||
|
@ -738,6 +786,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
|||
|
||||
}
|
||||
|
||||
SetUserMustChangePassword(entry, userMustChangePassword);
|
||||
|
||||
entry.CommitChanges();
|
||||
}
|
||||
|
|
|
@ -836,7 +836,7 @@ namespace WebsitePanel.Providers.Mail
|
|||
Enabled = Convert.ToInt32((object) accountObject.GetProperty("U_AccountDisabled")) == 0,
|
||||
ForwardingEnabled = !string.IsNullOrWhiteSpace(accountObject.GetProperty("U_ForwardTo")) || string.IsNullOrWhiteSpace(accountObject.GetProperty("U_RemoteAddress")) && Convert.ToBoolean((object) accountObject.GetProperty("U_UseRemoteAddress")),
|
||||
IsDomainAdmin = Convert.ToBoolean((object) accountObject.GetProperty("U_DomainAdmin")),
|
||||
MaxMailboxSize = Convert.ToInt32((object) accountObject.GetProperty("U_MaxBoxSize"))/1024,
|
||||
MaxMailboxSize = Convert.ToBoolean((object) accountObject.GetProperty("U_MaxBox")) ? Convert.ToInt32((object) accountObject.GetProperty("U_MaxBoxSize"))/1024 : 0,
|
||||
Password = accountObject.GetProperty("U_Password"),
|
||||
ResponderEnabled = Convert.ToInt32((object) accountObject.GetProperty("U_Respond")) > 0,
|
||||
QuotaUsed = Convert.ToInt64((object) accountObject.GetProperty("U_MailBoxSize")),
|
||||
|
@ -923,7 +923,8 @@ namespace WebsitePanel.Providers.Mail
|
|||
accountObject.SetProperty("U_AccountDisabled", mailbox.IceWarpAccountState);
|
||||
accountObject.SetProperty("U_DomainAdmin", mailbox.IsDomainAdmin);
|
||||
accountObject.SetProperty("U_Password", mailbox.Password);
|
||||
accountObject.SetProperty("U_MaxBoxSize", mailbox.MaxMailboxSize);
|
||||
accountObject.SetProperty("U_MaxBoxSize", mailbox.MaxMailboxSize*1024);
|
||||
accountObject.SetProperty("U_MaxBox", mailbox.MaxMailboxSize > 0 ? "1" : "0");
|
||||
accountObject.SetProperty("U_MaxMessageSize", mailbox.MaxMessageSizeMegaByte*1024);
|
||||
accountObject.SetProperty("U_MegabyteSendLimit", mailbox.MegaByteSendLimit);
|
||||
accountObject.SetProperty("U_NumberSendLimit", mailbox.NumberSendLimit);
|
||||
|
|
|
@ -1171,8 +1171,13 @@ namespace WebsitePanel.Providers.Mail
|
|||
mailbox.IsDomainAdmin // domain admin is false
|
||||
);
|
||||
|
||||
if (!result.Result)
|
||||
throw new Exception(result.Message);
|
||||
if (!result.Result)
|
||||
{
|
||||
if (result.ResultCode == -21)
|
||||
throw new Exception("Password doesn't meet complexity", new Exception(result.Message));
|
||||
|
||||
throw new Exception(result.Message);
|
||||
}
|
||||
|
||||
// set forwarding settings
|
||||
result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword,
|
||||
|
@ -1232,10 +1237,15 @@ namespace WebsitePanel.Providers.Mail
|
|||
GenericResult result = users.UpdateUser(
|
||||
AdminUsername, AdminPassword, mailbox.Name, strPassword, mailbox.FirstName, mailbox.LastName, mailbox.IsDomainAdmin);
|
||||
|
||||
if (!result.Result)
|
||||
throw new Exception(result.Message);
|
||||
if (!result.Result)
|
||||
{
|
||||
if (result.ResultCode == -21)
|
||||
throw new Exception("Password doesn't meet complexity", new Exception(result.Message));
|
||||
|
||||
throw new Exception(result.Message);
|
||||
}
|
||||
|
||||
// set forwarding settings
|
||||
// set forwarding settings
|
||||
result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword,
|
||||
mailbox.Name, mailbox.DeleteOnForward,
|
||||
(mailbox.ForwardingAddresses != null ? String.Join(", ", mailbox.ForwardingAddresses) : ""));
|
||||
|
|
|
@ -377,7 +377,7 @@ Public Class hMailServer5
|
|||
objAccount.Password = mailbox.Password
|
||||
objAccount.MaxSize = mailbox.MaxMailboxSize
|
||||
objAccount.PersonFirstName = mailbox.FirstName
|
||||
objAccount.PersonLastName = mailbox.FirstName
|
||||
objAccount.PersonLastName = mailbox.LastName
|
||||
objAccount.SignatureEnabled = mailbox.SignatureEnabled
|
||||
objAccount.SignaturePlainText = mailbox.Signature
|
||||
objAccount.SignatureHTML = mailbox.SignatureHTML
|
||||
|
@ -397,9 +397,12 @@ Public Class hMailServer5
|
|||
|
||||
'set forwarding address
|
||||
If mailbox.ForwardingEnabled Then
|
||||
objAccount.ForwardAddress = mailbox.ForwardingAddresses(0)
|
||||
objAccount.ForwardEnabled = True
|
||||
objAccount.ForwardKeepOriginal = mailbox.RetainLocalCopy
|
||||
If Not String.IsNullOrEmpty(mailbox.ForwardingAddresses(0)) Then
|
||||
'Log.WriteInfo("forwarding enabled on creation of email account")
|
||||
objAccount.ForwardAddress = mailbox.ForwardingAddresses(0)
|
||||
objAccount.ForwardEnabled = True
|
||||
objAccount.ForwardKeepOriginal = mailbox.RetainLocalCopy
|
||||
End If
|
||||
End If
|
||||
|
||||
objAccount.Save()
|
||||
|
|
|
@ -881,7 +881,7 @@ namespace WebsitePanel.Providers.Web
|
|||
#endregion
|
||||
|
||||
#region PHP 5 script mappings
|
||||
if (virtualDir.PhpInstalled.StartsWith(PHP_5))
|
||||
if (!string.IsNullOrEmpty(virtualDir.PhpInstalled) && virtualDir.PhpInstalled.StartsWith(PHP_5))
|
||||
{
|
||||
if (PhpMode == Constants.PhpMode.FastCGI && virtualDir.PhpInstalled.Contains('|'))
|
||||
{
|
||||
|
@ -1207,6 +1207,25 @@ namespace WebsitePanel.Providers.Web
|
|||
site.ColdFusionVersion = "9";
|
||||
site.ColdFusionAvailable = true;
|
||||
}
|
||||
|
||||
if (IsColdFusion10Installed())
|
||||
{
|
||||
site.ColdFusionVersion = "10";
|
||||
site.ColdFusionAvailable = true;
|
||||
}
|
||||
|
||||
if (IsColdFusion11Installed())
|
||||
{
|
||||
site.ColdFusionVersion = "11";
|
||||
site.ColdFusionAvailable = true;
|
||||
}
|
||||
|
||||
if (IsColdFusion12Installed())
|
||||
{
|
||||
site.ColdFusionVersion = "12";
|
||||
site.ColdFusionAvailable = true;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1330,6 +1349,11 @@ namespace WebsitePanel.Providers.Web
|
|||
//
|
||||
UpdateCgiBinFolder(site);
|
||||
//
|
||||
if (site.CreateCFVirtualDirectoriesPol)
|
||||
{
|
||||
//Create CFVirtDirs if enabled in hosting plan, this allows for CF to be enbled via Web Policy
|
||||
CreateCFVirtualDirectories(site.SiteId);
|
||||
}
|
||||
try
|
||||
{
|
||||
webObjectsSvc.ChangeSiteState(site.SiteId, ServerState.Started);
|
||||
|
@ -1338,7 +1362,7 @@ namespace WebsitePanel.Providers.Web
|
|||
{
|
||||
Log.WriteError(ex);
|
||||
}
|
||||
//
|
||||
//
|
||||
return site.SiteId;
|
||||
}
|
||||
|
||||
|
@ -1429,6 +1453,7 @@ namespace WebsitePanel.Providers.Web
|
|||
{
|
||||
DeleteCFVirtualDirectories(site.SiteId);
|
||||
site.CreateCFVirtualDirectories = false;
|
||||
site.CreateCFVirtualDirectoriesPol = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1438,6 +1463,7 @@ namespace WebsitePanel.Providers.Web
|
|||
{
|
||||
DeleteCFVirtualDirectories(site.SiteId);
|
||||
site.CreateCFVirtualDirectories = false;
|
||||
site.CreateCFVirtualDirectoriesPol = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1446,6 +1472,7 @@ namespace WebsitePanel.Providers.Web
|
|||
{
|
||||
CreateCFVirtualDirectories(site.SiteId);
|
||||
site.CreateCFVirtualDirectories = true;
|
||||
site.CreateCFVirtualDirectoriesPol = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1477,17 +1504,20 @@ namespace WebsitePanel.Providers.Web
|
|||
if (site.ColdFusionInstalled)
|
||||
{
|
||||
|
||||
var cfElement = handlersCollection.CreateElement("add");
|
||||
|
||||
cfElement["name"] = "coldfusion";
|
||||
cfElement["modules"] = "IsapiModule";
|
||||
cfElement["path"] = "*";
|
||||
cfElement["scriptProcessor"] = base.ColdFusionPath;
|
||||
cfElement["verb"] = "*";
|
||||
cfElement["resourceType"] = "Unspecified";
|
||||
cfElement["requireAccess"] = "None";
|
||||
cfElement["preCondition"] = "bitness64";
|
||||
handlersCollection.AddAt(0, cfElement);
|
||||
if (IsColdFusion7Installed() || IsColdFusion8Installed() || IsColdFusion9Installed())
|
||||
{
|
||||
var cfElement = handlersCollection.CreateElement("add");
|
||||
|
||||
cfElement["name"] = "coldfusion";
|
||||
cfElement["modules"] = "IsapiModule";
|
||||
cfElement["path"] = "*";
|
||||
cfElement["scriptProcessor"] = base.ColdFusionPath;
|
||||
cfElement["verb"] = "*";
|
||||
cfElement["resourceType"] = "Unspecified";
|
||||
cfElement["requireAccess"] = "None";
|
||||
cfElement["preCondition"] = "bitness64";
|
||||
handlersCollection.AddAt(0, cfElement);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -3336,7 +3366,14 @@ namespace WebsitePanel.Providers.Web
|
|||
}
|
||||
|
||||
WebVirtualDirectory flashRemotingDir = new WebVirtualDirectory();
|
||||
flashRemotingDir.Name = "JRunScripts";
|
||||
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
|
||||
{
|
||||
flashRemotingDir.Name = "jakarta";
|
||||
}
|
||||
else
|
||||
{
|
||||
flashRemotingDir.Name = "JRunScripts";
|
||||
}
|
||||
flashRemotingDir.ContentPath = CFFlashRemotingDirPath;
|
||||
flashRemotingDir.EnableAnonymousAccess = true;
|
||||
flashRemotingDir.EnableWindowsAuthentication = true;
|
||||
|
@ -3354,8 +3391,17 @@ namespace WebsitePanel.Providers.Web
|
|||
|
||||
public override void DeleteCFVirtualDirectories(string siteId)
|
||||
{
|
||||
DeleteVirtualDirectory(siteId, "CFIDE");
|
||||
DeleteVirtualDirectory(siteId, "JRunScripts");
|
||||
|
||||
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
|
||||
{
|
||||
DeleteVirtualDirectory(siteId, "CFIDE");
|
||||
DeleteVirtualDirectory(siteId, "jakarta");
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteVirtualDirectory(siteId, "CFIDE");
|
||||
DeleteVirtualDirectory(siteId, "JRunScripts");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -3367,8 +3413,16 @@ namespace WebsitePanel.Providers.Web
|
|||
|
||||
foreach (WebVirtualDirectory dir in dirs)
|
||||
{
|
||||
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
|
||||
{
|
||||
if (dir.FullQualifiedPath.Equals("CFIDE") || dir.FullQualifiedPath.Equals("jakarta"))
|
||||
identifier++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dir.FullQualifiedPath.Equals("CFIDE") || dir.FullQualifiedPath.Equals("JRunScripts"))
|
||||
identifier++;
|
||||
}
|
||||
}
|
||||
return identifier.Equals(2);
|
||||
}
|
||||
|
@ -4133,6 +4187,9 @@ namespace WebsitePanel.Providers.Web
|
|||
// Restore setting back
|
||||
ServerSettings.ADEnabled = adEnabled;
|
||||
}
|
||||
|
||||
//
|
||||
RemoveDelegationRulesRestrictions(siteName, accountName);
|
||||
}
|
||||
|
||||
private void ReadWebDeployPublishingAccessDetails(WebVirtualDirectory iisObject)
|
||||
|
|
|
@ -145,6 +145,12 @@ namespace WebsitePanel.Providers.Web
|
|||
public const string FRONTPAGE_ALLPORTS_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Microsoft\Shared Tools\Web Server Extensions\All Ports\";
|
||||
|
||||
//ColdFusion related constants
|
||||
public const string COLDFUSION_12_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 12";
|
||||
public const string COLDFUSION_12_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Adobe\Install Data\Adobe ColdFusion 12";
|
||||
public const string COLDFUSION_11_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 11";
|
||||
public const string COLDFUSION_11_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Adobe\Install Data\Adobe ColdFusion 11";
|
||||
public const string COLDFUSION_10_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 10";
|
||||
public const string COLDFUSION_10_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Adobe\Install Data\Adobe ColdFusion 10";
|
||||
public const string COLDFUSION_9_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 9";
|
||||
public const string COLDFUSION_9_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Adobe\Install Data\Adobe ColdFusion 9";
|
||||
public const string COLDFUSION_8_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 8";
|
||||
|
@ -422,6 +428,25 @@ namespace WebsitePanel.Providers.Web
|
|||
site.ColdFusionVersion = "9";
|
||||
site.ColdFusionAvailable = true;
|
||||
}
|
||||
|
||||
if (IsColdFusion10Installed())
|
||||
{
|
||||
site.ColdFusionVersion = "10";
|
||||
site.ColdFusionAvailable = true;
|
||||
}
|
||||
|
||||
if (IsColdFusion11Installed())
|
||||
{
|
||||
site.ColdFusionVersion = "11";
|
||||
site.ColdFusionAvailable = true;
|
||||
}
|
||||
|
||||
if (IsColdFusion12Installed())
|
||||
{
|
||||
site.ColdFusionVersion = "12";
|
||||
site.ColdFusionAvailable = true;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -430,11 +455,16 @@ namespace WebsitePanel.Providers.Web
|
|||
|
||||
WebVirtualDirectory[] virtdirs = GetVirtualDirectories(siteId);
|
||||
|
||||
if (VirtualDirectoryExists(siteId, "CFIDE") && VirtualDirectoryExists(siteId, "JRunScripts"))
|
||||
{
|
||||
site.CreateCFVirtualDirectories = true;
|
||||
}
|
||||
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
|
||||
{
|
||||
if (VirtualDirectoryExists(siteId, "CFIDE") && VirtualDirectoryExists(siteId, "jakarta"));
|
||||
site.CreateCFVirtualDirectories = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (VirtualDirectoryExists(siteId, "CFIDE") && VirtualDirectoryExists(siteId, "JRunScripts"));
|
||||
site.CreateCFVirtualDirectories = true;
|
||||
}
|
||||
{
|
||||
site.CreateCFVirtualDirectories = false;
|
||||
}
|
||||
|
@ -808,7 +838,14 @@ namespace WebsitePanel.Providers.Web
|
|||
WebVirtualDirectory[] virtdirs = GetVirtualDirectories(site.SiteId);
|
||||
bool cfDirsinstalled = false;
|
||||
|
||||
if (VirtualDirectoryExists(site.SiteId, "CFIDE") && VirtualDirectoryExists(site.SiteId, "JRunScripts"))
|
||||
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
|
||||
{
|
||||
if (VirtualDirectoryExists(site.SiteId, "CFIDE") && VirtualDirectoryExists(site.SiteId, "jakarta"));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (VirtualDirectoryExists(site.SiteId, "CFIDE") && VirtualDirectoryExists(site.SiteId, "JRunScripts"));
|
||||
}
|
||||
{
|
||||
cfDirsinstalled = true;
|
||||
}
|
||||
|
@ -1077,7 +1114,14 @@ namespace WebsitePanel.Providers.Web
|
|||
}
|
||||
|
||||
WebVirtualDirectory flashRemotingDir = new WebVirtualDirectory();
|
||||
flashRemotingDir.Name = "JRunScripts";
|
||||
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
|
||||
{
|
||||
flashRemotingDir.Name = "jakarta";
|
||||
}
|
||||
else
|
||||
{
|
||||
flashRemotingDir.Name = "JRunScripts";
|
||||
}
|
||||
flashRemotingDir.ContentPath = CFFlashRemotingDirPath;
|
||||
flashRemotingDir.EnableAnonymousAccess = true;
|
||||
flashRemotingDir.EnableWindowsAuthentication = true;
|
||||
|
@ -1095,8 +1139,16 @@ namespace WebsitePanel.Providers.Web
|
|||
|
||||
public virtual void DeleteCFVirtualDirectories(string siteId)
|
||||
{
|
||||
DeleteVirtualDirectory(siteId, "CFIDE");
|
||||
DeleteVirtualDirectory(siteId, "JRunScripts");
|
||||
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
|
||||
{
|
||||
DeleteVirtualDirectory(siteId, "CFIDE");
|
||||
DeleteVirtualDirectory(siteId, "jakarta");
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteVirtualDirectory(siteId, "CFIDE");
|
||||
DeleteVirtualDirectory(siteId, "JRunScripts");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -1307,9 +1359,60 @@ namespace WebsitePanel.Providers.Web
|
|||
|
||||
public virtual bool IsColdFusionSystemInstalled()
|
||||
{
|
||||
return (IsColdFusion8Installed() || IsColdFusion7Installed() || IsColdFusion9Installed());
|
||||
return (IsColdFusion8Installed() || IsColdFusion7Installed() || IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed() || IsColdFusion9Installed());
|
||||
}
|
||||
|
||||
protected bool IsColdFusion12Installed()
|
||||
{
|
||||
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_12_REGLOC);
|
||||
if (keyColdFusion == null)
|
||||
{
|
||||
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_12_REGLOC_X64);
|
||||
if (keyColdFusion == null)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!String.IsNullOrEmpty((string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool IsColdFusion11Installed()
|
||||
{
|
||||
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_11_REGLOC);
|
||||
if (keyColdFusion == null)
|
||||
{
|
||||
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_11_REGLOC_X64);
|
||||
if (keyColdFusion == null)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!String.IsNullOrEmpty((string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool IsColdFusion10Installed()
|
||||
{
|
||||
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_10_REGLOC);
|
||||
if (keyColdFusion == null)
|
||||
{
|
||||
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_10_REGLOC_X64);
|
||||
if (keyColdFusion == null)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!String.IsNullOrEmpty((string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool IsColdFusion9Installed()
|
||||
{
|
||||
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_9_REGLOC);
|
||||
|
@ -1399,6 +1502,49 @@ namespace WebsitePanel.Providers.Web
|
|||
}
|
||||
|
||||
return String.Empty;
|
||||
|
||||
if (IsColdFusion10Installed())
|
||||
{
|
||||
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_10_REGLOC);
|
||||
if (keyColdFusion == null)
|
||||
{
|
||||
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_10_REGLOC_X64);
|
||||
if (keyColdFusion == null)
|
||||
return String.Empty;
|
||||
}
|
||||
return (string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH);
|
||||
}
|
||||
|
||||
return String.Empty;
|
||||
|
||||
if (IsColdFusion11Installed())
|
||||
{
|
||||
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_11_REGLOC);
|
||||
if (keyColdFusion == null)
|
||||
{
|
||||
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_11_REGLOC_X64);
|
||||
if (keyColdFusion == null)
|
||||
return String.Empty;
|
||||
}
|
||||
return (string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH);
|
||||
}
|
||||
|
||||
return String.Empty;
|
||||
|
||||
if (IsColdFusion12Installed())
|
||||
{
|
||||
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_12_REGLOC);
|
||||
if (keyColdFusion == null)
|
||||
{
|
||||
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_12_REGLOC_X64);
|
||||
if (keyColdFusion == null)
|
||||
return String.Empty;
|
||||
}
|
||||
return (string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH);
|
||||
}
|
||||
|
||||
return String.Empty;
|
||||
|
||||
}
|
||||
|
||||
protected void EnableColdFusionScripting(string siteName)
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -175,6 +175,23 @@ namespace WebsitePanel.Server
|
|||
}
|
||||
}
|
||||
|
||||
[WebMethod, SoapHeader("settings")]
|
||||
public SystemFile[] Search(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive)
|
||||
{
|
||||
try
|
||||
{
|
||||
Log.WriteStart("'{0}' Search", ProviderSettings.ProviderName);
|
||||
var searchResults = EnterpriseStorageProvider.Search(organizationId, searchPaths, searchText, userPrincipalName, recursive);
|
||||
Log.WriteEnd("'{0}' Search", ProviderSettings.ProviderName);
|
||||
return searchResults;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(String.Format("'{0}' Search", ProviderSettings.ProviderName), ex);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
[WebMethod, SoapHeader("settings")]
|
||||
public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
|
||||
{
|
||||
|
|
|
@ -159,12 +159,13 @@ namespace WebsitePanel.Server
|
|||
string address, string city, string state, string zip, string country, string jobTitle,
|
||||
string company, string department, string office, string managerAccountName,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
||||
string webPage, string notes, string externalEmail)
|
||||
string webPage, string notes, string externalEmail,
|
||||
bool userMustChangePassword)
|
||||
{
|
||||
Organization.SetUserGeneralSettings(organizationId, accountName, displayName, password, hideFromAddressBook,
|
||||
disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle,
|
||||
company, department, office, managerAccountName, businessPhone, fax, homePhone,
|
||||
mobilePhone, pager, webPage, notes, externalEmail);
|
||||
mobilePhone, pager, webPage, notes, externalEmail, userMustChangePassword);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Resources;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Attributes.Resources
|
||||
{
|
||||
public class LocalizedDescriptionAttribute : DescriptionAttribute
|
||||
{
|
||||
private readonly string _resourceKey;
|
||||
private readonly ResourceManager _resource;
|
||||
public LocalizedDescriptionAttribute(Type resourceType, string resourceKey)
|
||||
{
|
||||
_resource = new ResourceManager(resourceType);
|
||||
_resourceKey = resourceKey;
|
||||
}
|
||||
|
||||
public override string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
string displayName = _resource.GetString(_resourceKey);
|
||||
|
||||
return string.IsNullOrEmpty(displayName)
|
||||
? string.Format("[[{0}]]", _resourceKey)
|
||||
: displayName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,13 +7,11 @@ namespace WebsitePanel.WebDav.Core.Config.Entities
|
|||
{
|
||||
public int DefaultCount { get; private set; }
|
||||
public int AddElementsCount { get; private set; }
|
||||
public List<string> ElementsToIgnore { get; private set; }
|
||||
|
||||
public ElementsRendering()
|
||||
{
|
||||
DefaultCount = ConfigSection.ElementsRendering.DefaultCount;
|
||||
AddElementsCount = ConfigSection.ElementsRendering.AddElementsCount;
|
||||
ElementsToIgnore = ConfigSection.ElementsRendering.ElementsToIgnore.Split(',').ToList();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,10 +12,12 @@ namespace WebsitePanel.WebDav.Core.Config.Entities
|
|||
public FileIconsDictionary()
|
||||
{
|
||||
DefaultPath = ConfigSection.FileIcons.DefaultPath;
|
||||
FolderPath = ConfigSection.FileIcons.FolderPath;
|
||||
_fileIcons = ConfigSection.FileIcons.Cast<FileIconsElement>().ToDictionary(x => x.Extension, y => y.Path);
|
||||
}
|
||||
|
||||
public string DefaultPath { get; private set; }
|
||||
public string FolderPath { get; private set; }
|
||||
|
||||
public IEnumerator<KeyValuePair<string, string>> GetEnumerator()
|
||||
{
|
||||
|
@ -57,4 +59,4 @@ namespace WebsitePanel.WebDav.Core.Config.Entities
|
|||
get { return _fileIcons.Values; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using WebsitePanel.WebDav.Core.Config.WebConfigSections;
|
||||
using WebsitePanel.WebDavPortal.WebConfigSections;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.Entities
|
||||
{
|
||||
public class FilesToIgnoreCollection : AbstractConfigCollection, IReadOnlyCollection<FilesToIgnoreElement>
|
||||
{
|
||||
private readonly IList<FilesToIgnoreElement> _filesToIgnore;
|
||||
|
||||
public FilesToIgnoreCollection()
|
||||
{
|
||||
_filesToIgnore = ConfigSection.FilesToIgnore.Cast<FilesToIgnoreElement>().ToList();
|
||||
}
|
||||
|
||||
public IEnumerator<FilesToIgnoreElement> GetEnumerator()
|
||||
{
|
||||
return _filesToIgnore.GetEnumerator();
|
||||
}
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return GetEnumerator();
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { return _filesToIgnore.Count; }
|
||||
}
|
||||
|
||||
public bool Contains(string name)
|
||||
{
|
||||
return _filesToIgnore.Any(x => x.Name == name);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,11 +13,13 @@ namespace WebsitePanel.WebDav.Core.Config.Entities
|
|||
{
|
||||
IsEnabled = ConfigSection.OfficeOnline.IsEnabled;
|
||||
Url = ConfigSection.OfficeOnline.Url;
|
||||
CobaltFileTtl = ConfigSection.OfficeOnline.CobaltFileTtl;
|
||||
_officeExtensions = ConfigSection.OfficeOnline.Cast<OfficeOnlineElement>().ToList();
|
||||
}
|
||||
|
||||
public bool IsEnabled { get; private set; }
|
||||
public string Url { get; private set; }
|
||||
public int CobaltFileTtl { get; private set; }
|
||||
|
||||
public IEnumerator<OfficeOnlineElement> GetEnumerator()
|
||||
{
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using WebsitePanel.WebDav.Core.Config.WebConfigSections;
|
||||
using WebsitePanel.WebDavPortal.WebConfigSections;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.Entities
|
||||
{
|
||||
public class OpenerCollection : AbstractConfigCollection, IReadOnlyCollection<OpenerElement>
|
||||
{
|
||||
private readonly IList<OpenerElement> _targetBlankMimeTypeExtensions;
|
||||
|
||||
public OpenerCollection()
|
||||
{
|
||||
_targetBlankMimeTypeExtensions = ConfigSection.TypeOpener.Cast<OpenerElement>().ToList();
|
||||
}
|
||||
|
||||
public IEnumerator<OpenerElement> GetEnumerator()
|
||||
{
|
||||
return _targetBlankMimeTypeExtensions.GetEnumerator();
|
||||
}
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return GetEnumerator();
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { return _targetBlankMimeTypeExtensions.Count; }
|
||||
}
|
||||
|
||||
public bool Contains(string extension)
|
||||
{
|
||||
return _targetBlankMimeTypeExtensions.Any(x => x.Extension == extension);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using WebsitePanel.WebDav.Core.Config.WebConfigSections;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.Entities
|
||||
{
|
||||
public class OwaSupportedBrowsersCollection : AbstractConfigCollection, IReadOnlyDictionary<string, int>
|
||||
{
|
||||
private readonly IDictionary<string, int> _browsers;
|
||||
|
||||
public OwaSupportedBrowsersCollection()
|
||||
{
|
||||
_browsers = ConfigSection.OwaSupportedBrowsers.Cast<OwaSupportedBrowsersElement>().ToDictionary(x => x.Browser, y => y.Version);
|
||||
}
|
||||
|
||||
public IEnumerator<KeyValuePair<string, int>> GetEnumerator()
|
||||
{
|
||||
return _browsers.GetEnumerator();
|
||||
}
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return GetEnumerator();
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { return _browsers.Count; }
|
||||
}
|
||||
|
||||
public bool ContainsKey(string browser)
|
||||
{
|
||||
return _browsers.ContainsKey(browser);
|
||||
}
|
||||
|
||||
public bool TryGetValue(string browser, out int version)
|
||||
{
|
||||
return _browsers.TryGetValue(browser, out version);
|
||||
}
|
||||
|
||||
public int this[string browser]
|
||||
{
|
||||
get { return ContainsKey(browser) ? _browsers[browser] : 0; }
|
||||
}
|
||||
|
||||
public IEnumerable<string> Keys
|
||||
{
|
||||
get { return _browsers.Keys; }
|
||||
}
|
||||
|
||||
public IEnumerable<int> Values
|
||||
{
|
||||
get { return _browsers.Values; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,5 +12,8 @@ namespace WebsitePanel.WebDav.Core.Config
|
|||
FileIconsDictionary FileIcons { get; }
|
||||
HttpErrorsCollection HttpErrors { get; }
|
||||
OfficeOnlineCollection OfficeOnline { get; }
|
||||
OwaSupportedBrowsersCollection OwaSupportedBrowsers { get; }
|
||||
FilesToIgnoreCollection FilesToIgnore { get; }
|
||||
OpenerCollection FileOpener { get; }
|
||||
}
|
||||
}
|
|
@ -6,7 +6,6 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
|||
{
|
||||
private const string DefaultCountKey = "defaultCount";
|
||||
private const string AddElementsCountKey = "addElementsCount";
|
||||
private const string ElementsToIgnoreKey = "elementsToIgnoreKey";
|
||||
|
||||
[ConfigurationProperty(DefaultCountKey, IsKey = true, IsRequired = true, DefaultValue = 30)]
|
||||
public int DefaultCount
|
||||
|
@ -21,12 +20,5 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
|||
get { return (int)this[AddElementsCountKey]; }
|
||||
set { this[AddElementsCountKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(ElementsToIgnoreKey, IsKey = true, IsRequired = true, DefaultValue = "")]
|
||||
public string ElementsToIgnore
|
||||
{
|
||||
get { return (string)this[ElementsToIgnoreKey]; }
|
||||
set { this[ElementsToIgnoreKey] = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
using System.Configuration;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
||||
{
|
||||
public class EnterpriseServerElement : ConfigurationElement
|
||||
{
|
||||
private const string ValueKey = "url";
|
||||
|
||||
[ConfigurationProperty(ValueKey, IsKey = true, IsRequired = true)]
|
||||
public string Value
|
||||
{
|
||||
get { return (string)this[ValueKey]; }
|
||||
set { this[ValueKey] = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,6 +6,7 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
|||
public class FileIconsElementCollection : ConfigurationElementCollection
|
||||
{
|
||||
private const string DefaultPathKey = "defaultPath";
|
||||
private const string FolderPathKey = "folderPath";
|
||||
|
||||
[ConfigurationProperty(DefaultPathKey, IsRequired = false, DefaultValue = "/")]
|
||||
public string DefaultPath
|
||||
|
@ -14,6 +15,13 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
|||
set { this[DefaultPathKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(FolderPathKey, IsRequired = false)]
|
||||
public string FolderPath
|
||||
{
|
||||
get { return (string)this[FolderPathKey]; }
|
||||
set { this[FolderPathKey] = value; }
|
||||
}
|
||||
|
||||
protected override ConfigurationElement CreateNewElement()
|
||||
{
|
||||
return new FileIconsElement();
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
using System.Configuration;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
||||
{
|
||||
public class FilesToIgnoreElement : ConfigurationElement
|
||||
{
|
||||
private const string NameKey = "name";
|
||||
private const string RegexKey = "regex";
|
||||
|
||||
[ConfigurationProperty(NameKey, IsKey = true, IsRequired = true)]
|
||||
public string Name
|
||||
{
|
||||
get { return this[NameKey].ToString(); }
|
||||
set { this[NameKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(RegexKey, IsKey = true, IsRequired = true)]
|
||||
public string Regex
|
||||
{
|
||||
get { return this[RegexKey].ToString(); }
|
||||
set { this[RegexKey] = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
using System.Configuration;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
||||
{
|
||||
[ConfigurationCollection(typeof(FilesToIgnoreElement))]
|
||||
public class FilesToIgnoreElementCollection : ConfigurationElementCollection
|
||||
{
|
||||
protected override ConfigurationElement CreateNewElement()
|
||||
{
|
||||
return new FilesToIgnoreElement();
|
||||
}
|
||||
|
||||
protected override object GetElementKey(ConfigurationElement element)
|
||||
{
|
||||
return ((FilesToIgnoreElement)element).Name;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,7 +5,9 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
|
|||
public class OfficeOnlineElement : ConfigurationElement
|
||||
{
|
||||
private const string ExtensionKey = "extension";
|
||||
private const string OwaOpenerKey = "owaOpener";
|
||||
private const string OwaViewKey = "OwaView";
|
||||
private const string OwaEditorKey = "OwaEditor";
|
||||
private const string OwaMobileViewKey = "OwaMobileView";
|
||||
|
||||
[ConfigurationProperty(ExtensionKey, IsKey = true, IsRequired = true)]
|
||||
public string Extension
|
||||
|
@ -14,11 +16,26 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
|
|||
set { this[ExtensionKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(OwaOpenerKey, IsKey = true, IsRequired = true)]
|
||||
public string OwaOpener
|
||||
[ConfigurationProperty(OwaViewKey, IsKey = true, IsRequired = true)]
|
||||
public string OwaView
|
||||
{
|
||||
get { return this[OwaOpenerKey].ToString(); }
|
||||
set { this[OwaOpenerKey] = value; }
|
||||
get { return this[OwaViewKey].ToString(); }
|
||||
set { this[OwaViewKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(OwaEditorKey, IsKey = true, IsRequired = true)]
|
||||
public string OwaEditor
|
||||
{
|
||||
get { return this[OwaEditorKey].ToString(); }
|
||||
set { this[OwaEditorKey] = value; }
|
||||
}
|
||||
|
||||
|
||||
[ConfigurationProperty(OwaMobileViewKey, IsKey = true, IsRequired = true)]
|
||||
public string OwaMobileViev
|
||||
{
|
||||
get { return this[OwaMobileViewKey].ToString(); }
|
||||
set { this[OwaMobileViewKey] = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
|
|||
{
|
||||
private const string UrlKey = "url";
|
||||
private const string IsEnabledKey = "isEnabled";
|
||||
private const string CobaltFileTtlKey = "cobaltFileTtl";
|
||||
|
||||
[ConfigurationProperty(UrlKey, IsKey = true, IsRequired = true)]
|
||||
public string Url
|
||||
|
@ -23,6 +24,13 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
|
|||
set { this[IsEnabledKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(CobaltFileTtlKey, IsKey = true, IsRequired = true)]
|
||||
public int CobaltFileTtl
|
||||
{
|
||||
get { return int.Parse(this[CobaltFileTtlKey].ToString()); }
|
||||
set { this[CobaltFileTtlKey] = value; }
|
||||
}
|
||||
|
||||
protected override ConfigurationElement CreateNewElement()
|
||||
{
|
||||
return new OfficeOnlineElement();
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using System.Configuration;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
||||
{
|
||||
public class OpenerElement : ConfigurationElement
|
||||
{
|
||||
private const string ExtensionKey = "extension";
|
||||
private const string MemeTypeKey = "mimeType";
|
||||
private const string TargetBlankKey = "isTargetBlank";
|
||||
|
||||
[ConfigurationProperty(ExtensionKey, IsKey = true, IsRequired = true)]
|
||||
public string Extension
|
||||
{
|
||||
get { return this[ExtensionKey].ToString(); }
|
||||
set { this[ExtensionKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(MemeTypeKey, IsKey = true, IsRequired = true)]
|
||||
public string MimeType
|
||||
{
|
||||
get { return this[MemeTypeKey].ToString(); }
|
||||
set { this[MemeTypeKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(TargetBlankKey, IsKey = true, IsRequired = true)]
|
||||
public bool IstargetBlank
|
||||
{
|
||||
get { return Convert.ToBoolean(this[TargetBlankKey]); }
|
||||
set { this[TargetBlankKey] = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
using System.Configuration;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
||||
{
|
||||
[ConfigurationCollection(typeof(OpenerElement))]
|
||||
public class OpenerElementCollection : ConfigurationElementCollection
|
||||
{
|
||||
protected override ConfigurationElement CreateNewElement()
|
||||
{
|
||||
return new OpenerElement();
|
||||
}
|
||||
|
||||
protected override object GetElementKey(ConfigurationElement element)
|
||||
{
|
||||
return ((OpenerElement)element).Extension;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
using System.Configuration;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
||||
{
|
||||
public class OwaSupportedBrowsersElement : ConfigurationElement
|
||||
{
|
||||
private const string BrowserKey = "browser";
|
||||
private const string VersionKey = "version";
|
||||
|
||||
[ConfigurationProperty(BrowserKey, IsKey = true, IsRequired = true)]
|
||||
public string Browser
|
||||
{
|
||||
get { return (string)this[BrowserKey]; }
|
||||
set { this[BrowserKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(VersionKey, IsKey = true, IsRequired = true)]
|
||||
public int Version
|
||||
{
|
||||
get { return (int)this[VersionKey]; }
|
||||
set { this[VersionKey] = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
using System.Configuration;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
||||
{
|
||||
[ConfigurationCollection(typeof(OwaSupportedBrowsersElement))]
|
||||
public class OwaSupportedBrowsersElementCollection : ConfigurationElementCollection
|
||||
{
|
||||
protected override ConfigurationElement CreateNewElement()
|
||||
{
|
||||
return new OwaSupportedBrowsersElement();
|
||||
}
|
||||
|
||||
protected override object GetElementKey(ConfigurationElement element)
|
||||
{
|
||||
return ((OwaSupportedBrowsersElement)element).Browser;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,13 +9,17 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
|
|||
private const string WebdavRootKey = "webdavRoot";
|
||||
private const string AuthTimeoutCookieNameKey = "authTimeoutCookieName";
|
||||
private const string AppName = "applicationName";
|
||||
private const string EnterpriseServerUrlNameKey = "enterpriseServer";
|
||||
private const string WebsitePanelConstantUserKey = "websitePanelConstantUser";
|
||||
private const string ElementsRenderingKey = "elementsRendering";
|
||||
private const string Rfc2898CryptographyKey = "rfc2898Cryptography";
|
||||
private const string ConnectionStringsKey = "appConnectionStrings";
|
||||
private const string SessionKeysKey = "sessionKeys";
|
||||
private const string FileIconsKey = "fileIcons";
|
||||
private const string OwaSupportedBrowsersKey = "owaSupportedBrowsers";
|
||||
private const string OfficeOnlineKey = "officeOnline";
|
||||
private const string FilesToIgnoreKey = "filesToIgnore";
|
||||
private const string TypeOpenerKey = "typeOpener";
|
||||
|
||||
public const string SectionName = "webDavExplorerConfigurationSettings";
|
||||
|
||||
|
@ -26,6 +30,13 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
|
|||
set { this[AuthTimeoutCookieNameKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(EnterpriseServerUrlNameKey, IsRequired = true)]
|
||||
public EnterpriseServerElement EnterpriseServerUrl
|
||||
{
|
||||
get { return (EnterpriseServerElement)this[EnterpriseServerUrlNameKey]; }
|
||||
set { this[EnterpriseServerUrlNameKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(WebdavRootKey, IsRequired = true)]
|
||||
public WebdavRootElement WebdavRoot
|
||||
{
|
||||
|
@ -75,11 +86,32 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
|
|||
set { this[FileIconsKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(OwaSupportedBrowsersKey, IsDefaultCollection = false)]
|
||||
public OwaSupportedBrowsersElementCollection OwaSupportedBrowsers
|
||||
{
|
||||
get { return (OwaSupportedBrowsersElementCollection)this[OwaSupportedBrowsersKey]; }
|
||||
set { this[OwaSupportedBrowsersKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(OfficeOnlineKey, IsDefaultCollection = false)]
|
||||
public OfficeOnlineElementCollection OfficeOnline
|
||||
{
|
||||
get { return (OfficeOnlineElementCollection)this[OfficeOnlineKey]; }
|
||||
set { this[OfficeOnlineKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(TypeOpenerKey, IsDefaultCollection = false)]
|
||||
public OpenerElementCollection TypeOpener
|
||||
{
|
||||
get { return (OpenerElementCollection)this[TypeOpenerKey]; }
|
||||
set { this[TypeOpenerKey] = value; }
|
||||
}
|
||||
|
||||
[ConfigurationProperty(FilesToIgnoreKey, IsDefaultCollection = false)]
|
||||
public FilesToIgnoreElementCollection FilesToIgnore
|
||||
{
|
||||
get { return (FilesToIgnoreElementCollection)this[FilesToIgnoreKey]; }
|
||||
set { this[FilesToIgnoreKey] = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -18,6 +18,9 @@ namespace WebsitePanel.WebDav.Core.Config
|
|||
FileIcons = new FileIconsDictionary();
|
||||
HttpErrors = new HttpErrorsCollection();
|
||||
OfficeOnline = new OfficeOnlineCollection();
|
||||
OwaSupportedBrowsers = new OwaSupportedBrowsersCollection();
|
||||
FilesToIgnore = new FilesToIgnoreCollection();
|
||||
FileOpener = new OpenerCollection();
|
||||
}
|
||||
|
||||
public static WebDavAppConfigManager Instance
|
||||
|
@ -45,11 +48,19 @@ namespace WebsitePanel.WebDav.Core.Config
|
|||
get { return _configSection.AuthTimeoutCookieName.Value; }
|
||||
}
|
||||
|
||||
public string EnterpriseServerUrl
|
||||
{
|
||||
get { return _configSection.EnterpriseServerUrl.Value; }
|
||||
}
|
||||
|
||||
public ElementsRendering ElementsRendering { get; private set; }
|
||||
public WebsitePanelConstantUserParameters WebsitePanelConstantUserParameters { get; private set; }
|
||||
public SessionKeysCollection SessionKeys { get; private set; }
|
||||
public FileIconsDictionary FileIcons { get; private set; }
|
||||
public HttpErrorsCollection HttpErrors { get; private set; }
|
||||
public OfficeOnlineCollection OfficeOnline { get; private set; }
|
||||
public OwaSupportedBrowsersCollection OwaSupportedBrowsers { get; private set; }
|
||||
public FilesToIgnoreCollection FilesToIgnore { get; private set; }
|
||||
public OpenerCollection FileOpener { get; private set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
namespace WebsitePanel.WebDav.Core.Entities.Account.Enums
|
||||
{
|
||||
public enum FolderViewTypes
|
||||
{
|
||||
BigIcons,
|
||||
Table
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
using WebsitePanel.WebDav.Core.Entities.Account.Enums;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Entities.Account
|
||||
{
|
||||
public class UserPortalSettings
|
||||
{
|
||||
public FolderViewTypes WebDavViewType { get; set; }
|
||||
}
|
||||
}
|
|
@ -13,6 +13,33 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa
|
|||
public long Size { get; set; }
|
||||
[DataMember]
|
||||
public string Version { get; set; }
|
||||
[DataMember]
|
||||
public bool SupportsCoauth { get; set; }
|
||||
[DataMember]
|
||||
public bool SupportsCobalt { get; set; }
|
||||
[DataMember]
|
||||
public bool SupportsFolders { get; set; }
|
||||
[DataMember]
|
||||
public bool SupportsLocks { get; set; }
|
||||
[DataMember]
|
||||
public bool SupportsScenarioLinks { get; set; }
|
||||
[DataMember]
|
||||
public bool SupportsSecureStore { get; set; }
|
||||
[DataMember]
|
||||
public bool SupportsUpdate { get; set; }
|
||||
[DataMember]
|
||||
public bool UserCanWrite { get; set; }
|
||||
[DataMember]
|
||||
public string DownloadUrl { get; set; }
|
||||
[DataMember]
|
||||
public bool ReadOnly { get; set; }
|
||||
[DataMember]
|
||||
public bool RestrictedWebViewOnly { get; set; }
|
||||
[DataMember]
|
||||
public string ClientUrl { get; set; }
|
||||
//[DataMember]
|
||||
//public bool UserCanNotWriteRelative { get; set; }
|
||||
|
||||
|
||||
//[DataMember]
|
||||
//public string SHA256 { get; set; }
|
||||
|
@ -43,8 +70,6 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa
|
|||
//[DataMember]
|
||||
//public bool DisableTranslation { get; set; }
|
||||
//[DataMember]
|
||||
//public string DownloadUrl { get; set; }
|
||||
//[DataMember]
|
||||
//public string FileSharingUrl { get; set; }
|
||||
//[DataMember]
|
||||
//public string FileUrl { get; set; }
|
||||
|
@ -79,26 +104,12 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa
|
|||
//public bool ProtectInClient { get; set; }
|
||||
//[DataMember]
|
||||
//public bool ReadOnly { get; set; }
|
||||
//[DataMember]
|
||||
//public bool RestrictedWebViewOnly { get; set; }
|
||||
|
||||
|
||||
//[DataMember]
|
||||
//public string SignoutUrl { get; set; }
|
||||
|
||||
//[DataMember]
|
||||
//public bool SupportsCoauth { get; set; }
|
||||
//[DataMember]
|
||||
//public bool SupportsCobalt { get; set; }
|
||||
//[DataMember]
|
||||
//public bool SupportsFolders { get; set; }
|
||||
//[DataMember]
|
||||
//public bool SupportsLocks { get; set; }
|
||||
//[DataMember]
|
||||
//public bool SupportsScenarioLinks { get; set; }
|
||||
//[DataMember]
|
||||
//public bool SupportsSecureStore { get; set; }
|
||||
//[DataMember]
|
||||
//public bool SupportsUpdate { get; set; }
|
||||
|
||||
//[DataMember]
|
||||
//public string TenantId { get; set; }
|
||||
//[DataMember]
|
||||
|
@ -107,8 +118,7 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa
|
|||
//public string TimeZone { get; set; }
|
||||
//[DataMember]
|
||||
//public bool UserCanAttend { get; set; }
|
||||
//[DataMember]
|
||||
//public bool UserCanNotWriteRelative { get; set; }
|
||||
|
||||
//[DataMember]
|
||||
//public bool UserCanPresent { get; set; }
|
||||
//[DataMember]
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
namespace WebsitePanel.WebDav.Core.Entities.Owa
|
||||
{
|
||||
public class PutRelativeFile
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Url { get; set; }
|
||||
public string HostViewUrl { get; set; }
|
||||
public string HostEditUrl { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using WebsitePanel.WebDav.Core.Attributes.Resources;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Extensions
|
||||
{
|
||||
public static class EnumExtensions
|
||||
{
|
||||
public static string GetDescription(this Enum value)
|
||||
{
|
||||
FieldInfo field = value.GetType().GetField(value.ToString());
|
||||
|
||||
DescriptionAttribute attribute
|
||||
= Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute))
|
||||
as DescriptionAttribute;
|
||||
|
||||
return attribute == null ? value.ToString() : attribute.Description;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
namespace WebsitePanel.WebDav.Core.Extensions
|
||||
{
|
||||
public static class StringExtensions
|
||||
{
|
||||
public static string ReplaceLast(this string source, string target, string newValue)
|
||||
{
|
||||
int index = source.LastIndexOf(target);
|
||||
string result = source.Remove(index, target.Length).Insert(index, newValue);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
using System.IO;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Helper
|
||||
{
|
||||
public class SerializeHelper
|
||||
{
|
||||
public static TResult Deserialize<TResult>(string inputString)
|
||||
{
|
||||
TResult result;
|
||||
|
||||
var serializer = new XmlSerializer(typeof(TResult));
|
||||
|
||||
using (TextReader reader = new StringReader(inputString))
|
||||
{
|
||||
result = (TResult)serializer.Deserialize(reader);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string Serialize<TEntity>(TEntity entity)
|
||||
{
|
||||
string result = string.Empty;
|
||||
|
||||
var xmlSerializer = new XmlSerializer(typeof(TEntity));
|
||||
|
||||
using (var stringWriter = new StringWriter())
|
||||
{
|
||||
using (XmlWriter writer = XmlWriter.Create(stringWriter))
|
||||
{
|
||||
xmlSerializer.Serialize(writer, entity);
|
||||
result = stringWriter.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -218,6 +218,68 @@ namespace WebsitePanel.WebDav.Core
|
|||
Open();
|
||||
}
|
||||
|
||||
public void OpenPaged(string path)
|
||||
{
|
||||
_path = new Uri(path);
|
||||
OpenPaged();
|
||||
}
|
||||
|
||||
public void OpenPaged()
|
||||
{
|
||||
var request = (HttpWebRequest)WebRequest.Create(_path);
|
||||
//request.PreAuthenticate = true;
|
||||
request.Method = "SEARCH";
|
||||
|
||||
//TODO Disable SSL
|
||||
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; });
|
||||
|
||||
var credentials = (NetworkCredential)_credentials;
|
||||
if (credentials != null && credentials.UserName != null)
|
||||
{
|
||||
request.Credentials = _credentials;
|
||||
|
||||
string auth = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
|
||||
request.Headers.Add("Authorization", auth);
|
||||
}
|
||||
|
||||
var strQuery = "<?xml version=\"1.0\"?><D:searchrequest xmlns:D = \"DAV:\" >"
|
||||
+ "<D:sql>SELECT \"DAV:displayname\" FROM \"" + _path + "\""
|
||||
+ "WHERE \"DAV:ishidden\" = false"
|
||||
+ "</D:sql></D:searchrequest>";
|
||||
|
||||
try
|
||||
{
|
||||
var bytes = Encoding.UTF8.GetBytes(strQuery);
|
||||
|
||||
request.ContentLength = bytes.Length;
|
||||
|
||||
using (var requestStream = request.GetRequestStream())
|
||||
{
|
||||
// Write the SQL query to the request stream.
|
||||
requestStream.Write(bytes, 0, bytes.Length);
|
||||
}
|
||||
|
||||
request.ContentType = "text/xml";
|
||||
|
||||
using (var response = (HttpWebResponse)request.GetResponse())
|
||||
{
|
||||
using (var responseStream = new StreamReader(response.GetResponseStream()))
|
||||
{
|
||||
string responseString = responseStream.ReadToEnd();
|
||||
ProcessResponse(responseString);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (WebException e)
|
||||
{
|
||||
if (e.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
throw new UnauthorizedException();
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Processes the response from the server.
|
||||
/// </summary>
|
||||
|
@ -301,6 +363,36 @@ namespace WebsitePanel.WebDav.Core
|
|||
XmlCurrentPropNode.NamespaceURI),
|
||||
XmlCurrentPropNode.InnerXml));
|
||||
break;
|
||||
//case "lockdiscovery":
|
||||
//{
|
||||
// if (XmlCurrentPropNode.HasChildNodes == false)
|
||||
// {
|
||||
// break;
|
||||
// }
|
||||
|
||||
// foreach (XmlNode activeLockNode in XmlCurrentPropNode.FirstChild)
|
||||
// {
|
||||
// switch (activeLockNode.LocalName)
|
||||
// {
|
||||
// case "owner":
|
||||
// item.SetProperty(
|
||||
// new Property(
|
||||
// new PropertyName("owner",
|
||||
// activeLockNode.NamespaceURI),
|
||||
// activeLockNode.InnerXml));
|
||||
// break;
|
||||
// case "locktoken":
|
||||
// var lockTokenNode = activeLockNode.FirstChild;
|
||||
// item.SetProperty(
|
||||
// new Property(
|
||||
// new PropertyName("locktoken",
|
||||
// lockTokenNode.NamespaceURI),
|
||||
// lockTokenNode.InnerXml));
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
//}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -326,6 +418,7 @@ namespace WebsitePanel.WebDav.Core
|
|||
SetComment(item.Comment);
|
||||
SetCreatorDisplayName(item.CreatorDisplayName);
|
||||
SetLastModified(item.LastModified);
|
||||
|
||||
foreach (Property property in item.Properties)
|
||||
{
|
||||
SetProperty(property);
|
||||
|
|
|
@ -159,7 +159,7 @@ namespace WebsitePanel.WebDav.Core
|
|||
{
|
||||
_creationDate = DateTime.Parse(creationDate);
|
||||
}
|
||||
|
||||
|
||||
public void SetCreationDate(DateTime creationDate)
|
||||
{
|
||||
_creationDate = creationDate;
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Mime;
|
||||
using System.Net.Security;
|
||||
using System.Net.Sockets;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
|
@ -27,7 +29,6 @@ namespace WebsitePanel.WebDav.Core
|
|||
private bool _checkedOut = false;
|
||||
private string _comment = "";
|
||||
private long _contentLength;
|
||||
private string _contentType = "";
|
||||
private DateTime _creationDate = new DateTime(0);
|
||||
private string _creatorDisplayName = "";
|
||||
private ICredentials _credentials = new NetworkCredential();
|
||||
|
@ -44,6 +45,15 @@ namespace WebsitePanel.WebDav.Core
|
|||
AllowWriteStreamBuffering = false;
|
||||
}
|
||||
|
||||
public WebDavResource(ICredentials credentials, IHierarchyItem item)
|
||||
{
|
||||
SendChunked = false;
|
||||
AllowWriteStreamBuffering = false;
|
||||
|
||||
SetCredentials(credentials);
|
||||
SetHierarchyItem(item);
|
||||
}
|
||||
|
||||
public Uri BaseUri
|
||||
{
|
||||
get { return _baseUri; }
|
||||
|
@ -69,7 +79,13 @@ namespace WebsitePanel.WebDav.Core
|
|||
|
||||
public string ContentType
|
||||
{
|
||||
get { return _contentType; }
|
||||
get
|
||||
{
|
||||
{
|
||||
var property = _properties.FirstOrDefault(x => x.Name.Name == "getcontenttype");
|
||||
return property == null ? MediaTypeNames.Application.Octet : property.StringValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -124,7 +140,7 @@ namespace WebsitePanel.WebDav.Core
|
|||
var webClient = new WebClient();
|
||||
webClient.Credentials = credentials;
|
||||
webClient.Headers.Add("Authorization", auth);
|
||||
|
||||
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
|
||||
webClient.UploadData(Href, "PUT", data);
|
||||
}
|
||||
|
||||
|
@ -143,6 +159,7 @@ namespace WebsitePanel.WebDav.Core
|
|||
webClient.Headers.Add("Authorization", auth);
|
||||
//TODO Disable SSL
|
||||
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate{ return true; });
|
||||
|
||||
return webClient.OpenRead(_href);
|
||||
}
|
||||
|
||||
|
@ -240,14 +257,14 @@ namespace WebsitePanel.WebDav.Core
|
|||
{
|
||||
get
|
||||
{
|
||||
string displayName = _href.AbsoluteUri.Replace(_baseUri.AbsoluteUri, "");
|
||||
string displayName = _href.AbsoluteUri.Trim('/').Replace(_baseUri.AbsoluteUri.Trim('/'), "");
|
||||
displayName = Regex.Replace(displayName, "\\/$", "");
|
||||
Match displayNameMatch = Regex.Match(displayName, "([\\/]+)$");
|
||||
if (displayNameMatch.Success)
|
||||
{
|
||||
displayName = displayNameMatch.Groups[1].Value;
|
||||
}
|
||||
return HttpUtility.UrlDecode(displayName);
|
||||
return HttpUtility.UrlDecode(displayName.Trim('/'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -337,6 +354,69 @@ namespace WebsitePanel.WebDav.Core
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Lock this item.
|
||||
/// </summary>
|
||||
public string Lock()
|
||||
{
|
||||
var credentials = (NetworkCredential)_credentials;
|
||||
string lockToken = string.Empty;
|
||||
|
||||
|
||||
string lockXml =string.Format( "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" +
|
||||
"<D:lockinfo xmlns:D='DAV:'>" +
|
||||
"<D:lockscope><D:exclusive/></D:lockscope>" +
|
||||
"<D:locktype><D:write/></D:locktype>" +
|
||||
"<D:owner>{0}</D:owner>" +
|
||||
"</D:lockinfo>", WspContext.User.Login);
|
||||
|
||||
string auth = "Basic " +
|
||||
Convert.ToBase64String(
|
||||
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
|
||||
|
||||
WebRequest webRequest = WebRequest.Create(Href);
|
||||
|
||||
webRequest.Method = "LOCK";
|
||||
webRequest.Credentials = credentials;
|
||||
webRequest.Headers.Add("Authorization", auth);
|
||||
webRequest.PreAuthenticate = true;
|
||||
webRequest.ContentType = "application/xml";
|
||||
|
||||
// Retrieve the request stream.
|
||||
using (Stream requestStream = webRequest.GetRequestStream())
|
||||
{
|
||||
// Write the lock XML to the destination.
|
||||
requestStream.Write(Encoding.UTF8.GetBytes(lockXml), 0, lockXml.Length);
|
||||
}
|
||||
|
||||
using (WebResponse webResponse = webRequest.GetResponse())
|
||||
{
|
||||
lockToken = webResponse.Headers["Lock-Token"];
|
||||
}
|
||||
|
||||
return lockToken;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lock this item.
|
||||
/// </summary>
|
||||
public void UnLock()
|
||||
{
|
||||
WebRequest webRequest = WebRequest.Create(Href);
|
||||
|
||||
webRequest.Method = "UNLOCK";
|
||||
webRequest.Credentials = _credentials;
|
||||
webRequest.PreAuthenticate = true;
|
||||
|
||||
webRequest.Headers.Add(@"Lock-Token", Properties.First(x => x.Name.Name == "locktoken").StringValue);
|
||||
|
||||
using (WebResponse webResponse = webRequest.GetResponse())
|
||||
{
|
||||
//TODO unlock
|
||||
}
|
||||
}
|
||||
|
||||
public bool AllowWriteStreamBuffering { get; set; }
|
||||
public bool SendChunked { get; set; }
|
||||
|
||||
|
@ -399,15 +479,10 @@ namespace WebsitePanel.WebDav.Core
|
|||
public void SetHref(Uri href)
|
||||
{
|
||||
_href = href;
|
||||
string baseUri = _href.Scheme + "://" + _href.Host;
|
||||
for (int i = 0; i < _href.Segments.Length - 1; i++)
|
||||
{
|
||||
if (_href.Segments[i] != "/")
|
||||
{
|
||||
baseUri += "/" + _href.Segments[i];
|
||||
}
|
||||
}
|
||||
_baseUri = new Uri(baseUri);
|
||||
|
||||
var baseUrl = href.AbsoluteUri.Remove(href.AbsoluteUri.Length - href.Segments.Last().Length);
|
||||
|
||||
_baseUri = new Uri(baseUrl);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Web;
|
||||
using WebsitePanel.WebDav.Core.Client;
|
||||
|
||||
|
@ -8,10 +9,15 @@ namespace WebsitePanel.WebDav.Core.Interfaces.Managers
|
|||
{
|
||||
IEnumerable<IHierarchyItem> OpenFolder(string path);
|
||||
bool IsFile(string path);
|
||||
bool FileExist(string path);
|
||||
byte[] GetFileBytes(string path);
|
||||
void UploadFile(string path, HttpPostedFileBase file);
|
||||
void UploadFile(string path, byte[] bytes);
|
||||
void UploadFile(string path, Stream stream);
|
||||
IEnumerable<IHierarchyItem> SearchFiles(int itemId, string pathPart, string searchValue, string uesrPrincipalName, bool recursive);
|
||||
IResource GetResource(string path);
|
||||
string GetFileUrl(string path);
|
||||
void DeleteResource(string path);
|
||||
void LockFile(string path);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using WebsitePanel.WebDav.Core.Entities.Account;
|
||||
using WebsitePanel.WebDav.Core.Entities.Account.Enums;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Interfaces.Managers.Users
|
||||
{
|
||||
public interface IUserSettingsManager
|
||||
{
|
||||
UserPortalSettings GetUserSettings(int accountId);
|
||||
void UpdateSettings(int accountId, UserPortalSettings settings);
|
||||
void ChangeWebDavViewType(int accountId, FolderViewTypes type);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
using System.IO;
|
||||
using Cobalt;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Interfaces.Owa
|
||||
{
|
||||
public interface ICobaltManager
|
||||
{
|
||||
Atom ProcessRequest(int accessTokenId, Stream requestStream);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using Cobalt;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Interfaces.Owa
|
||||
{
|
||||
public interface IWopiFileManager
|
||||
{
|
||||
CobaltFile Create(int accessTokenId);
|
||||
CobaltFile Get(string filePath);
|
||||
bool Add(string filePath, CobaltFile file);
|
||||
bool Delete(string filePath);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
namespace WebsitePanel.WebDav.Core.Interfaces.Storages
|
||||
{
|
||||
public interface IKeyValueStorage
|
||||
{
|
||||
TV Get<TV>(string id);
|
||||
bool Add<TV>(string id, TV value);
|
||||
bool Delete(string id);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
namespace WebsitePanel.WebDav.Core.Interfaces.Storages
|
||||
{
|
||||
public interface ITtlStorage : IKeyValueStorage
|
||||
{
|
||||
void SetTtl<TV>(string id, TV value);
|
||||
}
|
||||
}
|
|
@ -1,10 +1,15 @@
|
|||
using WebsitePanel.WebDav.Core.Attributes.Resources;
|
||||
using WebsitePanel.WebDav.Core.Resources;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core
|
||||
{
|
||||
namespace Client
|
||||
{
|
||||
public enum ItemType
|
||||
{
|
||||
[LocalizedDescription(typeof(WebDavResources), "ItemTypeResource")]
|
||||
Resource,
|
||||
[LocalizedDescription(typeof(WebDavResources), "ItemTypeFolder")]
|
||||
Folder,
|
||||
Version,
|
||||
VersionHistory
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
using WebsitePanel.WebDav.Core.Entities.Account;
|
||||
using WebsitePanel.WebDav.Core.Entities.Account.Enums;
|
||||
using WebsitePanel.WebDav.Core.Helper;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Managers.Users;
|
||||
using WebsitePanel.WebDav.Core.Wsp.Framework;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Managers.Users
|
||||
{
|
||||
public class UserSettingsManager : IUserSettingsManager
|
||||
{
|
||||
public UserPortalSettings GetUserSettings(int accountId)
|
||||
{
|
||||
string xml = WSP.Services.EnterpriseStorage.GetWebDavPortalUserSettingsByAccountId(accountId);
|
||||
|
||||
if (string.IsNullOrEmpty(xml))
|
||||
{
|
||||
return new UserPortalSettings();
|
||||
}
|
||||
|
||||
return SerializeHelper.Deserialize<UserPortalSettings>(xml);
|
||||
}
|
||||
|
||||
public void UpdateSettings(int accountId, UserPortalSettings settings)
|
||||
{
|
||||
var xml = SerializeHelper.Serialize(settings);
|
||||
|
||||
WSP.Services.EnterpriseStorage.UpdateWebDavPortalUserSettings(accountId, xml);
|
||||
}
|
||||
|
||||
public void ChangeWebDavViewType(int accountId, FolderViewTypes type)
|
||||
{
|
||||
var settings = GetUserSettings(accountId);
|
||||
|
||||
settings.WebDavViewType = type;
|
||||
|
||||
UpdateSettings(accountId, settings);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ using System.IO;
|
|||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web;
|
||||
using System.Xml.Serialization;
|
||||
using log4net;
|
||||
|
@ -13,6 +14,7 @@ using WebsitePanel.WebDav.Core.Config;
|
|||
using WebsitePanel.WebDav.Core.Exceptions;
|
||||
using WebsitePanel.WebDav.Core.Extensions;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Managers;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Security;
|
||||
using WebsitePanel.WebDav.Core.Resources;
|
||||
using WebsitePanel.WebDav.Core.Security.Cryptography;
|
||||
using WebsitePanel.WebDav.Core.Wsp.Framework;
|
||||
|
@ -23,15 +25,17 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
{
|
||||
private readonly ICryptography _cryptography;
|
||||
private readonly WebDavSession _webDavSession;
|
||||
private readonly IWebDavAuthorizationService _webDavAuthorizationService;
|
||||
|
||||
private readonly ILog Log;
|
||||
|
||||
private bool _isRoot = true;
|
||||
private IFolder _currentFolder;
|
||||
|
||||
public WebDavManager(ICryptography cryptography)
|
||||
public WebDavManager(ICryptography cryptography, IWebDavAuthorizationService webDavAuthorizationService)
|
||||
{
|
||||
_cryptography = cryptography;
|
||||
_webDavAuthorizationService = webDavAuthorizationService;
|
||||
Log = LogManager.GetLogger(this.GetType());
|
||||
|
||||
_webDavSession = new WebDavSession();
|
||||
|
@ -43,25 +47,14 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
|
||||
if (string.IsNullOrWhiteSpace(pathPart))
|
||||
{
|
||||
var resources = ConnectToWebDavServer().Select(x => new WebDavResource { Href = new Uri(x.Url), ItemType = ItemType.Folder }).ToArray();
|
||||
|
||||
var items = WSP.Services.EnterpriseStorage.GetEnterpriseFolders(WspContext.User.ItemId);
|
||||
|
||||
foreach (var resource in resources)
|
||||
children = ConnectToWebDavServer().Select(x => new WebDavResource
|
||||
{
|
||||
var folder = items.FirstOrDefault(x => x.Name == resource.DisplayName);
|
||||
|
||||
if (folder == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
resource.ContentLength = folder.Size;
|
||||
resource.AllocatedSpace = folder.FRSMQuotaMB;
|
||||
resource.IsRootItem = true;
|
||||
}
|
||||
|
||||
children = resources;
|
||||
Href = new Uri(x.Url),
|
||||
ItemType = ItemType.Folder,
|
||||
ContentLength = x.Size,
|
||||
AllocatedSpace = x.FRSMQuotaMB,
|
||||
IsRootItem = true
|
||||
}).ToArray();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -74,7 +67,7 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
_currentFolder = _webDavSession.OpenFolder(string.Format("{0}{1}/{2}", WebDavAppConfigManager.Instance.WebdavRoot, WspContext.User.OrganizationId, pathPart.TrimStart('/')));
|
||||
}
|
||||
|
||||
children = _currentFolder.GetChildren().Where(x => !WebDavAppConfigManager.Instance.ElementsRendering.ElementsToIgnore.Contains(x.DisplayName.Trim('/'))).ToArray();
|
||||
children = FilterResult(_currentFolder.GetChildren()).ToArray();
|
||||
}
|
||||
|
||||
List<IHierarchyItem> sortedChildren = children.Where(x => x.ItemType == ItemType.Folder).OrderBy(x => x.DisplayName).ToList();
|
||||
|
@ -83,6 +76,31 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
return sortedChildren;
|
||||
}
|
||||
|
||||
public IEnumerable<IHierarchyItem> SearchFiles(int itemId, string pathPart, string searchValue, string uesrPrincipalName, bool recursive)
|
||||
{
|
||||
pathPart = (pathPart ?? string.Empty).Replace("/","\\");
|
||||
|
||||
SystemFile[] items;
|
||||
|
||||
|
||||
if (string.IsNullOrWhiteSpace(pathPart))
|
||||
{
|
||||
var rootItems = ConnectToWebDavServer().Select(x => x.Name).ToList();
|
||||
rootItems.Insert(0, string.Empty);
|
||||
|
||||
items = WspContext.Services.EnterpriseStorage.SearchFiles(itemId, rootItems.ToArray(), searchValue, uesrPrincipalName, recursive);
|
||||
}
|
||||
else
|
||||
{
|
||||
items = WspContext.Services.EnterpriseStorage.SearchFiles(itemId, new []{pathPart}, searchValue, uesrPrincipalName, recursive);
|
||||
}
|
||||
|
||||
var resources = Convert(items, new Uri(WebDavAppConfigManager.Instance.WebdavRoot).Append(WspContext.User.OrganizationId, pathPart));
|
||||
|
||||
|
||||
return FilterResult(resources);
|
||||
}
|
||||
|
||||
public bool IsFile(string path)
|
||||
{
|
||||
string folder = GetFileFolder(path);
|
||||
|
@ -143,9 +161,55 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
resource.Upload(bytes);
|
||||
}
|
||||
|
||||
public void UploadFile(string path, byte[] bytes)
|
||||
{
|
||||
var resource = new WebDavResource();
|
||||
|
||||
var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot)
|
||||
.Append(WspContext.User.OrganizationId)
|
||||
.Append(path);
|
||||
|
||||
resource.SetHref(fileUrl);
|
||||
resource.SetCredentials(new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword)));
|
||||
|
||||
resource.Upload(bytes);
|
||||
}
|
||||
|
||||
public void UploadFile(string path, Stream stream)
|
||||
{
|
||||
var resource = new WebDavResource();
|
||||
|
||||
var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot)
|
||||
.Append(WspContext.User.OrganizationId)
|
||||
.Append(path);
|
||||
|
||||
resource.SetHref(fileUrl);
|
||||
resource.SetCredentials(new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword)));
|
||||
|
||||
var bytes = ReadFully(stream);
|
||||
|
||||
resource.Upload(bytes);
|
||||
}
|
||||
|
||||
public void LockFile(string path)
|
||||
{
|
||||
var resource = new WebDavResource();
|
||||
|
||||
var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot)
|
||||
.Append(WspContext.User.OrganizationId)
|
||||
.Append(path);
|
||||
|
||||
resource.SetHref(fileUrl);
|
||||
resource.SetCredentials(new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword)));
|
||||
|
||||
resource.Lock();
|
||||
}
|
||||
|
||||
public void DeleteResource(string path)
|
||||
{
|
||||
path = RemoveLeadingFromPath(path, "office365");
|
||||
path = RemoveLeadingFromPath(path, "view");
|
||||
path = RemoveLeadingFromPath(path, "edit");
|
||||
path = RemoveLeadingFromPath(path, WspContext.User.OrganizationId);
|
||||
|
||||
string folderPath = GetFileFolder(path);
|
||||
|
@ -182,6 +246,26 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
}
|
||||
}
|
||||
|
||||
public bool FileExist(string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
string folder = GetFileFolder(path);
|
||||
|
||||
var resourceName = GetResourceName(path);
|
||||
|
||||
OpenFolder(folder);
|
||||
|
||||
var resource = _currentFolder.GetResource(resourceName);
|
||||
|
||||
return resource != null;
|
||||
}
|
||||
catch (InvalidOperationException exception)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public string GetFileUrl(string path)
|
||||
{
|
||||
try
|
||||
|
@ -223,6 +307,7 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rootFolders;
|
||||
}
|
||||
|
||||
|
@ -240,6 +325,33 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
return pathPart.StartsWith('/' + toRemove) ? pathPart.Substring(toRemove.Length + 1) : pathPart;
|
||||
}
|
||||
|
||||
private IEnumerable<WebDavResource> Convert(IEnumerable<SystemFile> files, Uri baseUri)
|
||||
{
|
||||
var convertResult = new List<WebDavResource>();
|
||||
|
||||
var credentials = new NetworkCredential(WspContext.User.Login,
|
||||
_cryptography.Decrypt(WspContext.User.EncryptedPassword),
|
||||
WebDavAppConfigManager.Instance.UserDomain);
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
var webDavitem = new WebDavResource();
|
||||
|
||||
webDavitem.SetCredentials(credentials);
|
||||
|
||||
webDavitem.SetHref(baseUri.Append(file.RelativeUrl.Replace("\\","/")));
|
||||
|
||||
webDavitem.SetItemType(file.IsDirectory? ItemType.Folder : ItemType.Resource);
|
||||
webDavitem.SetLastModified(file.Changed);
|
||||
webDavitem.ContentLength = file.Size;
|
||||
webDavitem.AllocatedSpace = file.FRSMQuotaMB;
|
||||
|
||||
convertResult.Add(webDavitem);
|
||||
}
|
||||
|
||||
return convertResult;
|
||||
}
|
||||
|
||||
private byte[] ReadFully(Stream input)
|
||||
{
|
||||
var buffer = new byte[16 * 1024];
|
||||
|
@ -286,7 +398,31 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
}
|
||||
|
||||
return path.Split('/').Last(); ;
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<IHierarchyItem> FilterResult(IEnumerable<IHierarchyItem> items)
|
||||
{
|
||||
var result = items.ToList();
|
||||
|
||||
foreach (var item in items)
|
||||
{
|
||||
foreach (var itemToIgnore in WebDavAppConfigManager.Instance.FilesToIgnore)
|
||||
{
|
||||
var regex = new Regex(itemToIgnore.Regex);
|
||||
|
||||
Match match = regex.Match(item.DisplayName.Trim('/'));
|
||||
|
||||
if (match.Success && result.Contains(item))
|
||||
{
|
||||
result.Remove(item);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
|
|
@ -0,0 +1,245 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Cobalt;
|
||||
using WebsitePanel.WebDav.Core;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Owa
|
||||
{
|
||||
public class CobaltHostLockingStore : HostLockingStore
|
||||
{
|
||||
public override WhoAmIRequest.OutputType HandleWhoAmI(WhoAmIRequest.InputType input)
|
||||
{
|
||||
WhoAmIRequest.OutputType result = new WhoAmIRequest.OutputType();
|
||||
result.UserIsAnonymous = WspContext.User == null;
|
||||
if (WspContext.User != null)
|
||||
{
|
||||
result.UserEmailAddress = WspContext.User.Login;
|
||||
result.UserLogin = WspContext.User.Login;
|
||||
result.UserName = WspContext.User.DisplayName;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override ServerTimeRequest.OutputType HandleServerTime(ServerTimeRequest.InputType input)
|
||||
{
|
||||
ServerTimeRequest.OutputType result = new ServerTimeRequest.OutputType();
|
||||
result.ServerTime = DateTime.UtcNow;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override LockAndCheckOutStatusRequest.OutputType HandleLockAndCheckOutStatus(LockAndCheckOutStatusRequest.InputType input)
|
||||
{
|
||||
LockAndCheckOutStatusRequest.OutputType result = new LockAndCheckOutStatusRequest.OutputType();
|
||||
result.LockType = 1U;
|
||||
result.CheckOutType = 0U;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override GetExclusiveLockRequest.OutputType HandleGetExclusiveLock(GetExclusiveLockRequest.InputType input)
|
||||
{
|
||||
GetExclusiveLockRequest.OutputType result = new GetExclusiveLockRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override RefreshExclusiveLockRequest.OutputType HandleRefreshExclusiveLock(RefreshExclusiveLockRequest.InputType input)
|
||||
{
|
||||
RefreshExclusiveLockRequest.OutputType result = new RefreshExclusiveLockRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override CheckExclusiveLockAvailabilityRequest.OutputType HandleCheckExclusiveLockAvailability(CheckExclusiveLockAvailabilityRequest.InputType input)
|
||||
{
|
||||
CheckExclusiveLockAvailabilityRequest.OutputType result = new CheckExclusiveLockAvailabilityRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override ConvertExclusiveLockToSchemaLockRequest.OutputType HandleConvertExclusiveLockToSchemaLock(ConvertExclusiveLockToSchemaLockRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
|
||||
{
|
||||
ConvertExclusiveLockToSchemaLockRequest.OutputType result = new ConvertExclusiveLockToSchemaLockRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override ConvertExclusiveLockWithCoauthTransitionRequest.OutputType HandleConvertExclusiveLockWithCoauthTransition(ConvertExclusiveLockWithCoauthTransitionRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
|
||||
{
|
||||
ConvertExclusiveLockWithCoauthTransitionRequest.OutputType result = new ConvertExclusiveLockWithCoauthTransitionRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override GetSchemaLockRequest.OutputType HandleGetSchemaLock(GetSchemaLockRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
|
||||
{
|
||||
GetSchemaLockRequest.OutputType result = new GetSchemaLockRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public override ReleaseExclusiveLockRequest.OutputType HandleReleaseExclusiveLock(ReleaseExclusiveLockRequest.InputType input)
|
||||
{
|
||||
ReleaseExclusiveLockRequest.OutputType result = new ReleaseExclusiveLockRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override ReleaseSchemaLockRequest.OutputType HandleReleaseSchemaLock(ReleaseSchemaLockRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
|
||||
{
|
||||
ReleaseSchemaLockRequest.OutputType result = new ReleaseSchemaLockRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override RefreshSchemaLockRequest.OutputType HandleRefreshSchemaLock(RefreshSchemaLockRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
|
||||
{
|
||||
RefreshSchemaLockRequest.OutputType result = new RefreshSchemaLockRequest.OutputType();
|
||||
result.Lock = LockType.SchemaLock;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override ConvertSchemaLockToExclusiveLockRequest.OutputType HandleConvertSchemaLockToExclusiveLock(ConvertSchemaLockToExclusiveLockRequest.InputType input)
|
||||
{
|
||||
ConvertSchemaLockToExclusiveLockRequest.OutputType result = new ConvertSchemaLockToExclusiveLockRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override CheckSchemaLockAvailabilityRequest.OutputType HandleCheckSchemaLockAvailability(CheckSchemaLockAvailabilityRequest.InputType input)
|
||||
{
|
||||
CheckSchemaLockAvailabilityRequest.OutputType result = new CheckSchemaLockAvailabilityRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override JoinCoauthoringRequest.OutputType HandleJoinCoauthoring(JoinCoauthoringRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
|
||||
{
|
||||
JoinCoauthoringRequest.OutputType result = new JoinCoauthoringRequest.OutputType();
|
||||
result.Lock = LockType.SchemaLock;
|
||||
result.CoauthStatus = CoauthStatusType.Alone;
|
||||
result.TransitionId = Guid.NewGuid();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override ExitCoauthoringRequest.OutputType HandleExitCoauthoring(ExitCoauthoringRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
|
||||
{
|
||||
ExitCoauthoringRequest.OutputType result = new ExitCoauthoringRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override RefreshCoauthoringSessionRequest.OutputType HandleRefreshCoauthoring(RefreshCoauthoringSessionRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
|
||||
{
|
||||
RefreshCoauthoringSessionRequest.OutputType result = new RefreshCoauthoringSessionRequest.OutputType();
|
||||
result.Lock = LockType.SchemaLock;
|
||||
result.CoauthStatus = CoauthStatusType.Alone;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override ConvertCoauthLockToExclusiveLockRequest.OutputType HandleConvertCoauthLockToExclusiveLock(ConvertCoauthLockToExclusiveLockRequest.InputType input)
|
||||
{
|
||||
ConvertCoauthLockToExclusiveLockRequest.OutputType result = new ConvertCoauthLockToExclusiveLockRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override CheckCoauthLockAvailabilityRequest.OutputType HandleCheckCoauthLockAvailability(CheckCoauthLockAvailabilityRequest.InputType input)
|
||||
{
|
||||
CheckCoauthLockAvailabilityRequest.OutputType result = new CheckCoauthLockAvailabilityRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override MarkCoauthTransitionCompleteRequest.OutputType HandleMarkCoauthTransitionComplete(MarkCoauthTransitionCompleteRequest.InputType input)
|
||||
{
|
||||
MarkCoauthTransitionCompleteRequest.OutputType result = new MarkCoauthTransitionCompleteRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override GetCoauthoringStatusRequest.OutputType HandleGetCoauthoringStatus(GetCoauthoringStatusRequest.InputType input)
|
||||
{
|
||||
GetCoauthoringStatusRequest.OutputType result = new GetCoauthoringStatusRequest.OutputType();
|
||||
result.CoauthStatus = CoauthStatusType.Alone;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override Dictionary<string, EditorsTableEntry> QueryEditorsTable()
|
||||
{
|
||||
return new Dictionary<string, EditorsTableEntry>();
|
||||
}
|
||||
|
||||
public override JoinEditingSessionRequest.OutputType HandleJoinEditingSession(JoinEditingSessionRequest.InputType input)
|
||||
{
|
||||
JoinEditingSessionRequest.OutputType result = new JoinEditingSessionRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override RefreshEditingSessionRequest.OutputType HandleRefreshEditingSession(RefreshEditingSessionRequest.InputType input)
|
||||
{
|
||||
RefreshEditingSessionRequest.OutputType result = new RefreshEditingSessionRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override LeaveEditingSessionRequest.OutputType HandleLeaveEditingSession(LeaveEditingSessionRequest.InputType input)
|
||||
{
|
||||
LeaveEditingSessionRequest.OutputType result = new LeaveEditingSessionRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override UpdateEditorMetadataRequest.OutputType HandleUpdateEditorMetadata(UpdateEditorMetadataRequest.InputType input)
|
||||
{
|
||||
UpdateEditorMetadataRequest.OutputType result = new UpdateEditorMetadataRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override RemoveEditorMetadataRequest.OutputType HandleRemoveEditorMetadata(RemoveEditorMetadataRequest.InputType input)
|
||||
{
|
||||
RemoveEditorMetadataRequest.OutputType result = new RemoveEditorMetadataRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override ulong GetEditorsTableWaterline()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public override AmIAloneRequest.OutputType HandleAmIAlone(AmIAloneRequest.InputType input)
|
||||
{
|
||||
AmIAloneRequest.OutputType result = new AmIAloneRequest.OutputType();
|
||||
result.AmIAlone = true;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override DocMetaInfoRequest.OutputType HandleDocMetaInfo(DocMetaInfoRequest.InputType input)
|
||||
{
|
||||
DocMetaInfoRequest.OutputType result = new DocMetaInfoRequest.OutputType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override VersionsRequest.OutputType HandleVersions(VersionsRequest.InputType input)
|
||||
{
|
||||
VersionsRequest.OutputType result = new VersionsRequest.OutputType();
|
||||
result.Enabled = false;
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using Cobalt;
|
||||
using log4net;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Managers;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Owa;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Owa
|
||||
{
|
||||
public class CobaltManager : ICobaltManager
|
||||
{
|
||||
private readonly IWebDavManager _webDavManager;
|
||||
private readonly IWopiFileManager _fileManager;
|
||||
private readonly IAccessTokenManager _tokenManager;
|
||||
private readonly ILog Log;
|
||||
|
||||
public CobaltManager(IWebDavManager webDavManager, IWopiFileManager fileManager,
|
||||
IAccessTokenManager tokenManager)
|
||||
{
|
||||
_webDavManager = webDavManager;
|
||||
_fileManager = fileManager;
|
||||
_tokenManager = tokenManager;
|
||||
|
||||
Log = LogManager.GetLogger(this.GetType());
|
||||
}
|
||||
|
||||
public Atom ProcessRequest(int accessTokenId, Stream requestStream)
|
||||
{
|
||||
var token = _tokenManager.GetToken(accessTokenId);
|
||||
|
||||
var atomRequest = new AtomFromStream(requestStream);
|
||||
|
||||
var requestBatch = new RequestBatch();
|
||||
|
||||
try
|
||||
{
|
||||
var cobaltFile = _fileManager.Get(token.FilePath) ?? _fileManager.Create(accessTokenId);
|
||||
|
||||
Object ctx;
|
||||
ProtocolVersion protocolVersion;
|
||||
|
||||
requestBatch.DeserializeInputFromProtocol(atomRequest, out ctx, out protocolVersion);
|
||||
cobaltFile.CobaltEndpoint.ExecuteRequestBatch(requestBatch);
|
||||
|
||||
|
||||
foreach (var request in requestBatch.Requests)
|
||||
{
|
||||
|
||||
if (request.GetType() == typeof (PutChangesRequest) &&
|
||||
request.PartitionId == FilePartitionId.Content && request.CompletedSuccessfully)
|
||||
{
|
||||
using (var saveStream = new MemoryStream())
|
||||
{
|
||||
CopyStream(cobaltFile, saveStream);
|
||||
_webDavManager.UploadFile(token.FilePath, saveStream.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return requestBatch.SerializeOutputToProtocol(protocolVersion);
|
||||
}
|
||||
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error("Cobalt manager Process request", e);
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private void CopyStream(CobaltFile file, Stream stream)
|
||||
{
|
||||
var tries = 3;
|
||||
|
||||
for (int i = 0; i < tries; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
GenericFdaStream myCobaltStream = new GenericFda(file.CobaltEndpoint, null).GetContentStream();
|
||||
|
||||
myCobaltStream.CopyTo(stream);
|
||||
|
||||
break;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//unable to read update - save failed
|
||||
if (i == tries - 1)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
|
||||
//waiting for cobalt completion
|
||||
Thread.Sleep(50);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Runtime.Caching;
|
||||
using Cobalt;
|
||||
using WebsitePanel.WebDav.Core.Client;
|
||||
using WebsitePanel.WebDav.Core.Config;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Managers;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Owa;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Storages;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Owa
|
||||
{
|
||||
public class CobaltSessionManager : IWopiFileManager
|
||||
{
|
||||
private readonly IWebDavManager _webDavManager;
|
||||
private readonly IAccessTokenManager _tokenManager;
|
||||
private readonly ITtlStorage _storage;
|
||||
|
||||
public CobaltSessionManager(IWebDavManager webDavManager, IAccessTokenManager tokenManager, ITtlStorage storage)
|
||||
{
|
||||
_webDavManager = webDavManager;
|
||||
|
||||
_tokenManager = tokenManager;
|
||||
_storage = storage;
|
||||
}
|
||||
|
||||
public CobaltFile Create(int accessTokenId)
|
||||
{
|
||||
var disposal = new DisposalEscrow(accessTokenId.ToString(CultureInfo.InvariantCulture));
|
||||
|
||||
var content = new CobaltFilePartitionConfig
|
||||
{
|
||||
IsNewFile = true,
|
||||
HostBlobStore = new TemporaryHostBlobStore(new TemporaryHostBlobStore.Config(), disposal, accessTokenId + @".Content"),
|
||||
cellSchemaIsGenericFda = true,
|
||||
CellStorageConfig = new CellStorageConfig(),
|
||||
Schema = CobaltFilePartition.Schema.ShreddedCobalt,
|
||||
PartitionId = FilePartitionId.Content
|
||||
};
|
||||
|
||||
var coauth = new CobaltFilePartitionConfig
|
||||
{
|
||||
IsNewFile = true,
|
||||
HostBlobStore = new TemporaryHostBlobStore(new TemporaryHostBlobStore.Config(), disposal, accessTokenId + @".CoauthMetadata"),
|
||||
cellSchemaIsGenericFda = false,
|
||||
CellStorageConfig = new CellStorageConfig(),
|
||||
Schema = CobaltFilePartition.Schema.ShreddedCobalt,
|
||||
PartitionId = FilePartitionId.CoauthMetadata
|
||||
};
|
||||
|
||||
var wacupdate = new CobaltFilePartitionConfig
|
||||
{
|
||||
IsNewFile = true,
|
||||
HostBlobStore = new TemporaryHostBlobStore(new TemporaryHostBlobStore.Config(), disposal, accessTokenId + @".WordWacUpdate"),
|
||||
cellSchemaIsGenericFda = false,
|
||||
CellStorageConfig = new CellStorageConfig(),
|
||||
Schema = CobaltFilePartition.Schema.ShreddedCobalt,
|
||||
PartitionId = FilePartitionId.WordWacUpdate
|
||||
};
|
||||
|
||||
var partitionConfs = new Dictionary<FilePartitionId, CobaltFilePartitionConfig>
|
||||
{
|
||||
{FilePartitionId.Content, content},
|
||||
{FilePartitionId.WordWacUpdate, wacupdate},
|
||||
{FilePartitionId.CoauthMetadata, coauth}
|
||||
};
|
||||
|
||||
var cobaltFile = new CobaltFile(disposal, partitionConfs, new CobaltHostLockingStore(), null);
|
||||
|
||||
var token = _tokenManager.GetToken(accessTokenId);
|
||||
|
||||
var fileBytes = _webDavManager.GetFileBytes(token.FilePath);
|
||||
|
||||
var atom = new AtomFromByteArray(fileBytes);
|
||||
|
||||
Cobalt.Metrics o1;
|
||||
cobaltFile.GetCobaltFilePartition(FilePartitionId.Content).SetStream(RootId.Default.Value, atom, out o1);
|
||||
cobaltFile.GetCobaltFilePartition(FilePartitionId.Content).GetStream(RootId.Default.Value).Flush();
|
||||
|
||||
Add(token.FilePath, cobaltFile);
|
||||
|
||||
return cobaltFile;
|
||||
}
|
||||
|
||||
public CobaltFile Get(string filePath)
|
||||
{
|
||||
return _storage.Get<CobaltFile>(GetSessionKey(filePath));
|
||||
}
|
||||
|
||||
public bool Add(string filePath, CobaltFile file)
|
||||
{
|
||||
return _storage.Add(GetSessionKey(filePath), file);
|
||||
}
|
||||
|
||||
public bool Delete(string filePath)
|
||||
{
|
||||
return _storage.Delete(GetSessionKey(filePath));
|
||||
}
|
||||
|
||||
private string GetSessionKey(string filePath)
|
||||
{
|
||||
return string.Format("{0}/{1}", WspContext.User.AccountId, filePath);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,33 +4,54 @@ using System.Linq;
|
|||
using System.Net.Mime;
|
||||
using System.Runtime.Serialization.Json;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using WebsitePanel.WebDav.Core.Client;
|
||||
using WebsitePanel.WebDav.Core.Config;
|
||||
using WebsitePanel.WebDav.Core.Entities.Owa;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Managers;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Owa;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Security;
|
||||
using WebsitePanel.WebDav.Core.Security.Authentication.Principals;
|
||||
using WebsitePanel.WebDav.Core.Security.Authorization.Enums;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Owa
|
||||
{
|
||||
public class WopiServer : IWopiServer
|
||||
{
|
||||
private readonly IWebDavManager _webDavManager;
|
||||
private readonly IAccessTokenManager _tokenManager;
|
||||
private readonly IWebDavAuthorizationService _webDavAuthorizationService;
|
||||
|
||||
public WopiServer(IWebDavManager webDavManager)
|
||||
public WopiServer(IWebDavManager webDavManager, IAccessTokenManager tokenManager, IWebDavAuthorizationService webDavAuthorizationService)
|
||||
{
|
||||
_webDavManager = webDavManager;
|
||||
_tokenManager = tokenManager;
|
||||
_webDavAuthorizationService = webDavAuthorizationService;
|
||||
}
|
||||
|
||||
public CheckFileInfo GetCheckFileInfo(string path)
|
||||
{
|
||||
var resource = _webDavManager.GetResource(path);
|
||||
|
||||
var readOnly = _webDavAuthorizationService.GetPermissions(WspContext.User, path).HasFlag(WebDavPermissions.Write) == false;
|
||||
|
||||
var cFileInfo = new CheckFileInfo
|
||||
{
|
||||
BaseFileName = resource.DisplayName,
|
||||
OwnerId = @"4257508bfe174aa28b461536d8b6b648",
|
||||
BaseFileName = resource.DisplayName.Split(new []{'/'},StringSplitOptions.RemoveEmptyEntries).LastOrDefault(),
|
||||
OwnerId = WspContext.User.Login,
|
||||
Size = resource.ContentLength,
|
||||
Version = @"%22%7B59CCD75F%2D0687%2D4F86%2DBBCF%2D059126640640%7D%2C1%22"
|
||||
Version = DateTime.Now.ToString("s"),
|
||||
SupportsCoauth = true,
|
||||
SupportsCobalt = true,
|
||||
SupportsFolders = true,
|
||||
SupportsLocks = true,
|
||||
SupportsScenarioLinks = false,
|
||||
SupportsSecureStore = false,
|
||||
SupportsUpdate = true,
|
||||
UserCanWrite = !readOnly,
|
||||
ReadOnly = readOnly,
|
||||
RestrictedWebViewOnly = false
|
||||
};
|
||||
|
||||
return cFileInfo;
|
||||
|
|
|
@ -68,5 +68,23 @@ namespace WebsitePanel.WebDav.Core.Resources {
|
|||
return ResourceManager.GetString("FolderIsNotEmptyFormat", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Folder.
|
||||
/// </summary>
|
||||
internal static string ItemTypeFolder {
|
||||
get {
|
||||
return ResourceManager.GetString("ItemTypeFolder", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Document.
|
||||
/// </summary>
|
||||
internal static string ItemTypeResource {
|
||||
get {
|
||||
return ResourceManager.GetString("ItemTypeResource", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,4 +120,10 @@
|
|||
<data name="FolderIsNotEmptyFormat" xml:space="preserve">
|
||||
<value>Folder {0} is not empty.</value>
|
||||
</data>
|
||||
<data name="ItemTypeFolder" xml:space="preserve">
|
||||
<value>Folder</value>
|
||||
</data>
|
||||
<data name="ItemTypeResource" xml:space="preserve">
|
||||
<value>Document</value>
|
||||
</data>
|
||||
</root>
|
|
@ -64,8 +64,8 @@ namespace WebsitePanel.WebDav.Core.Security.Authorization
|
|||
|
||||
private IEnumerable<ESPermission> GetFolderEsPermissions(WspPrincipal principal, string rootFolderName)
|
||||
{
|
||||
var dictionary = HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.WebDavRootFoldersPermissions] as
|
||||
Dictionary<string, IEnumerable<ESPermission>>;
|
||||
var dictionary = HttpContext.Current.Session != null ?HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.WebDavRootFoldersPermissions] as
|
||||
Dictionary<string, IEnumerable<ESPermission>> : null;
|
||||
|
||||
if (dictionary == null)
|
||||
{
|
||||
|
@ -80,7 +80,10 @@ namespace WebsitePanel.WebDav.Core.Security.Authorization
|
|||
dictionary.Add(rootFolder.Name, permissions);
|
||||
}
|
||||
|
||||
HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.WebDavRootFoldersPermissions] = dictionary;
|
||||
if (HttpContext.Current.Session != null)
|
||||
{
|
||||
HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.WebDavRootFoldersPermissions] = dictionary;
|
||||
}
|
||||
}
|
||||
|
||||
return dictionary.ContainsKey(rootFolderName) ? dictionary[rootFolderName] : new ESPermission[0];
|
||||
|
@ -88,14 +91,16 @@ namespace WebsitePanel.WebDav.Core.Security.Authorization
|
|||
|
||||
private IEnumerable<ExchangeAccount> GetUserSecurityGroups(WspPrincipal principal)
|
||||
{
|
||||
var groups = HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.UserGroupsKey] as
|
||||
IEnumerable<ExchangeAccount>;
|
||||
var groups = HttpContext.Current.Session != null ? HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.UserGroupsKey] as IEnumerable<ExchangeAccount> : null;
|
||||
|
||||
if (groups == null)
|
||||
{
|
||||
groups = WSP.Services.Organizations.GetSecurityGroupsByMember(principal.ItemId, principal.AccountId);
|
||||
|
||||
HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.UserGroupsKey] = groups;
|
||||
if (HttpContext.Current.Session != null)
|
||||
{
|
||||
HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.UserGroupsKey] = groups;
|
||||
}
|
||||
}
|
||||
|
||||
return groups ?? new ExchangeAccount[0];
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Caching;
|
||||
using Microsoft.Web.Services3.Design;
|
||||
using WebsitePanel.WebDav.Core.Config;
|
||||
using WebsitePanel.WebDav.Core.Interfaces.Storages;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Storages
|
||||
{
|
||||
public class CacheTtlStorage : ITtlStorage
|
||||
{
|
||||
private static readonly ObjectCache Cache;
|
||||
|
||||
static CacheTtlStorage()
|
||||
{
|
||||
Cache = MemoryCache.Default;
|
||||
}
|
||||
|
||||
public TV Get<TV>(string id)
|
||||
{
|
||||
var value = (TV)Cache[id];
|
||||
|
||||
if (!EqualityComparer<TV>.Default.Equals(value, default(TV)))
|
||||
{
|
||||
SetTtl(id, value);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
public bool Add<TV>(string id, TV value)
|
||||
{
|
||||
return Cache.Add(id, value, DateTime.Now.AddMinutes(WebDavAppConfigManager.Instance.OfficeOnline.CobaltFileTtl));
|
||||
}
|
||||
|
||||
public bool Delete(string id)
|
||||
{
|
||||
if (Cache.Any(x => x.Key == id))
|
||||
{
|
||||
Cache.Remove(id);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void SetTtl<TV>(string id, TV value)
|
||||
{
|
||||
Cache.Set(id, value, DateTime.Now.AddMinutes(WebDavAppConfigManager.Instance.OfficeOnline.CobaltFileTtl));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -39,6 +39,19 @@ namespace WebsitePanel.WebDav.Core
|
|||
return folder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns IFolder corresponding to path.
|
||||
/// </summary>
|
||||
/// <param name="path">Path to the folder.</param>
|
||||
/// <returns>Folder corresponding to requested path.</returns>
|
||||
public IFolder OpenFolderPaged(string path)
|
||||
{
|
||||
var folder = new WebDavFolder();
|
||||
folder.SetCredentials(Credentials);
|
||||
folder.OpenPaged(path);
|
||||
return folder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns IResource corresponding to path.
|
||||
/// </summary>
|
||||
|
|
|
@ -35,20 +35,23 @@
|
|||
<Reference Include="log4net">
|
||||
<HintPath>..\packages\log4net.2.0.0\lib\net40-full\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CobaltCore">
|
||||
<HintPath>..\..\Lib\References\Microsoft\Microsoft.CobaltCore.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\Scheduler Domains\WebsitePanel\Bin\Microsoft.Web.Services3.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<HintPath>..\..\Bin\Microsoft.Web.Services3.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.DirectoryServices.AccountManagement" />
|
||||
<Reference Include="System.Runtime.Caching" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Web">
|
||||
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.dll</HintPath>
|
||||
|
@ -85,49 +88,73 @@
|
|||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Base">
|
||||
<HintPath>..\WebsitePanel.WebPortal\Bin\WebsitePanel.EnterpriseServer.Base.dll</HintPath>
|
||||
<HintPath>..\..\Bin\WebsitePanel.EnterpriseServer.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Client">
|
||||
<HintPath>..\WebsitePanel.WebPortal\Bin\WebsitePanel.EnterpriseServer.Client.dll</HintPath>
|
||||
<HintPath>..\..\Bin\WebsitePanel.EnterpriseServer.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.Providers.Base">
|
||||
<HintPath>..\WebsitePanel.WebPortal\Bin\WebsitePanel.Providers.Base.dll</HintPath>
|
||||
<HintPath>..\..\Bin\WebsitePanel.Providers.Base.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Attributes\Resources\LocalizedDescriptionAttribute.cs" />
|
||||
<Compile Include="Config\Entities\AbstractConfigCollection.cs" />
|
||||
<Compile Include="Config\Entities\ElementsRendering.cs" />
|
||||
<Compile Include="Config\Entities\FileIconsDictionary.cs" />
|
||||
<Compile Include="Config\Entities\HttpErrorsCollection.cs" />
|
||||
<Compile Include="Config\Entities\FilesToIgnoreCollection.cs" />
|
||||
<Compile Include="Config\Entities\OfficeOnlineCollection.cs" />
|
||||
<Compile Include="Config\Entities\OwaSupportedBrowsersCollection.cs" />
|
||||
<Compile Include="Config\Entities\SessionKeysCollection.cs" />
|
||||
<Compile Include="Config\Entities\OpenerCollection.cs" />
|
||||
<Compile Include="Config\Entities\WebsitePanelConstantUserParameters.cs" />
|
||||
<Compile Include="Config\IWebDavAppConfig.cs" />
|
||||
<Compile Include="Config\WebConfigSections\ApplicationNameElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\AuthTimeoutCookieNameElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\ElementsRenderingElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\EnterpriseServerElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\FileIconsElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\FileIconsElementCollection.cs" />
|
||||
<Compile Include="Config\WebConfigSections\FilesToIgnoreElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\FilesToIgnoreElementCollection.cs" />
|
||||
<Compile Include="Config\WebConfigSections\OfficeOnlineElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\OfficeOnlineElementCollection.cs" />
|
||||
<Compile Include="Config\WebConfigSections\OpenerElementCollection.cs" />
|
||||
<Compile Include="Config\WebConfigSections\OwaSupportedBrowsersElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\OwaSupportedBrowsersElementCollection.cs" />
|
||||
<Compile Include="Config\WebConfigSections\SessionKeysElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\SessionKeysElementCollection.cs" />
|
||||
<Compile Include="Config\WebConfigSections\OpenerElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\UserDomainElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\WebDavExplorerConfigurationSettingsSection.cs" />
|
||||
<Compile Include="Config\WebConfigSections\WebdavRootElement.cs" />
|
||||
<Compile Include="Config\WebConfigSections\WebsitePanelConstantUserElement.cs" />
|
||||
<Compile Include="Config\WebDavAppConfigManager.cs" />
|
||||
<Compile Include="Entities\Account\Enums\FolderViewTypes.cs" />
|
||||
<Compile Include="Entities\Account\UserPortalSettings.cs" />
|
||||
<Compile Include="Entities\Owa\CheckFileInfo.cs" />
|
||||
<Compile Include="Entities\Owa\PutRelativeFile.cs" />
|
||||
<Compile Include="Exceptions\ConnectToWebDavServerException.cs" />
|
||||
<Compile Include="Exceptions\ResourceNotFoundException.cs" />
|
||||
<Compile Include="Exceptions\UnauthorizedException.cs" />
|
||||
<Compile Include="Exceptions\WebDavException.cs" />
|
||||
<Compile Include="Exceptions\WebDavHttpException.cs" />
|
||||
<Compile Include="Extensions\EnumExtensions.cs" />
|
||||
<Compile Include="Extensions\StringExtensions.cs" />
|
||||
<Compile Include="Extensions\UriExtensions.cs" />
|
||||
<Compile Include="Helper\SerializeHelper.cs" />
|
||||
<Compile Include="IConnectionSettings.cs" />
|
||||
<Compile Include="IFolder.cs" />
|
||||
<Compile Include="IHierarchyItem.cs" />
|
||||
<Compile Include="IItemContent.cs" />
|
||||
<Compile Include="Interfaces\Managers\Users\IUserSettingsManager.cs" />
|
||||
<Compile Include="Interfaces\Storages\IKeyValueStorage.cs" />
|
||||
<Compile Include="Interfaces\Storages\ITtlStorage.cs" />
|
||||
<Compile Include="Managers\Users\UserSettingsManager.cs" />
|
||||
<Compile Include="Owa\CobaltManager.cs" />
|
||||
<Compile Include="Interfaces\Owa\ICobaltManager.cs" />
|
||||
<Compile Include="Interfaces\Owa\IWopiFileManager.cs" />
|
||||
<Compile Include="Interfaces\Security\IWebDavAuthorizationService.cs" />
|
||||
<Compile Include="Managers\AccessTokenManager.cs" />
|
||||
<Compile Include="Interfaces\Managers\IAccessTokenManager.cs" />
|
||||
|
@ -139,6 +166,8 @@
|
|||
<Compile Include="ItemType.cs" />
|
||||
<Compile Include="LockUriTokenPair.cs" />
|
||||
<Compile Include="Managers\WebDavManager.cs" />
|
||||
<Compile Include="Owa\CobaltSessionManager.cs" />
|
||||
<Compile Include="Owa\CobaltHostLockingStore.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Property.cs" />
|
||||
<Compile Include="PropertyName.cs" />
|
||||
|
@ -159,6 +188,7 @@
|
|||
<Compile Include="Security\Authentication\FormsAuthenticationService.cs" />
|
||||
<Compile Include="Security\Authentication\Principals\WspPrincipal.cs" />
|
||||
<Compile Include="Owa\WopiServer.cs" />
|
||||
<Compile Include="Storages\CacheTtlStorage.cs" />
|
||||
<Compile Include="WebDavSession.cs" />
|
||||
<Compile Include="WspContext.cs" />
|
||||
<Compile Include="Wsp\Framework\WSP.cs" />
|
||||
|
@ -169,12 +199,6 @@
|
|||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\WebsitePanel.WebPortal\WebsitePanel.WebPortal.csproj">
|
||||
<Project>{C99EFB18-FFE7-45BB-8CA8-29336F3E8C68}</Project>
|
||||
<Name>WebsitePanel.WebPortal</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\HttpErrors.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
|
|
|
@ -34,7 +34,6 @@ using WebsitePanel.EnterpriseServer;
|
|||
using WebsitePanel.EnterpriseServer.HostedSolution;
|
||||
using WebsitePanel.WebDav.Core.Config;
|
||||
using WebsitePanel.WebDav.Core.Security.Cryptography;
|
||||
using WebsitePanel.WebPortal;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core.Wsp.Framework
|
||||
{
|
||||
|
@ -268,7 +267,7 @@ namespace WebsitePanel.WebDav.Core.Wsp.Framework
|
|||
public void ConfigureEnterpriseServerProxy(WebServicesClientProtocol proxy, bool applyPolicy)
|
||||
{
|
||||
// load ES properties
|
||||
string serverUrl = PortalConfiguration.SiteSettings["EnterpriseServer"];
|
||||
string serverUrl = WebDavAppConfigManager.Instance.EnterpriseServerUrl;
|
||||
|
||||
EnterpriseServerProxyConfigurator cnfg = new EnterpriseServerProxyConfigurator();
|
||||
cnfg.EnterpriseServerUrl = serverUrl;
|
||||
|
|
|
@ -5,11 +5,13 @@ using System.Text;
|
|||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using WebsitePanel.WebDav.Core.Security.Authentication.Principals;
|
||||
using WebsitePanel.WebDav.Core.Wsp.Framework;
|
||||
|
||||
namespace WebsitePanel.WebDav.Core
|
||||
{
|
||||
public class WspContext
|
||||
{
|
||||
public static WspPrincipal User { get { return HttpContext.Current.User as WspPrincipal; } }
|
||||
public static WSP Services { get { return WSP.Services; } }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,249 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<Countries>
|
||||
<Country name="Afghanistan" key="AF" />
|
||||
<Country name="Aland Islands" key="AX" />
|
||||
<Country name="Albania" key="AL" />
|
||||
<Country name="Algeria" key="DZ" />
|
||||
<Country name="American Samoa" key="AS" />
|
||||
<Country name="Andorra" key="AD" />
|
||||
<Country name="Angola" key="AO" />
|
||||
<Country name="Anguilla" key="AI" />
|
||||
<Country name="Antarctica" key="AQ" />
|
||||
<Country name="Antigua and Barbuda" key="AG" />
|
||||
<Country name="Argentina" key="AR" />
|
||||
<Country name="Armenia" key="AM" />
|
||||
<Country name="Aruba" key="AW" />
|
||||
<Country name="Australia" key="AU" />
|
||||
<Country name="Austria" key="AT" />
|
||||
<Country name="Azerbaijan" key="AZ" />
|
||||
<Country name="Bahamas" key="BS" />
|
||||
<Country name="Bahrain" key="BH" />
|
||||
<Country name="Bangladesh" key="BD" />
|
||||
<Country name="Barbados" key="BB" />
|
||||
<Country name="Belarus" key="BY" />
|
||||
<Country name="Belgium" key="BE" />
|
||||
<Country name="Belize" key="BZ" />
|
||||
<Country name="Benin" key="BJ" />
|
||||
<Country name="Bermuda" key="BM" />
|
||||
<Country name="Bhutan" key="BT" />
|
||||
<Country name="Bolivia, Plurinational State of" key="BO" />
|
||||
<Country name="Bosnia and Herzegovina" key="BA" />
|
||||
<Country name="Botswana" key="BW" />
|
||||
<Country name="Bouvet Island" key="BV" />
|
||||
<Country name="Brazil" key="BR" />
|
||||
<Country name="British Indian Ocean Territory" key="IO" />
|
||||
<Country name="Brunei Darussalam" key="BN" />
|
||||
<Country name="Bulgaria" key="BG" />
|
||||
<Country name="Burkina Faso" key="BF" />
|
||||
<Country name="Burundi" key="BI" />
|
||||
<Country name="Cambodia" key="KH" />
|
||||
<Country name="Cameroon" key="CM" />
|
||||
<Country name="Canada" key="CA" />
|
||||
<Country name="Cape Verde" key="CV" />
|
||||
<Country name="Cayman Islands" key="KY" />
|
||||
<Country name="Central African Republic" key="CF" />
|
||||
<Country name="Chad" key="TD" />
|
||||
<Country name="Chile" key="CL" />
|
||||
<Country name="China" key="CN" />
|
||||
<Country name="Christmas Island" key="CX" />
|
||||
<Country name="Cocos (Keeling) Islands" key="CC" />
|
||||
<Country name="Colombia" key="CO" />
|
||||
<Country name="Comoros" key="KM" />
|
||||
<Country name="Congo" key="CG" />
|
||||
<Country name="Congo, the Democratic Republic of the" key="CD" />
|
||||
<Country name="Cook Islands" key="CK" />
|
||||
<Country name="Costa Rica" key="CR" />
|
||||
<Country name="Cote D'Ivoire" key="CI" />
|
||||
<Country name="Croatia" key="HR" />
|
||||
<Country name="Cuba" key="CU" />
|
||||
<Country name="Cyprus" key="CY" />
|
||||
<Country name="Czech Republic" key="CZ" />
|
||||
<Country name="Denmark" key="DK" />
|
||||
<Country name="Djibouti" key="DJ" />
|
||||
<Country name="Dominica" key="DM" />
|
||||
<Country name="Dominican Republic" key="DO" />
|
||||
<Country name="Ecuador" key="EC" />
|
||||
<Country name="Egypt" key="EG" />
|
||||
<Country name="El Salvador" key="SV" />
|
||||
<Country name="Equatorial Guinea" key="GQ" />
|
||||
<Country name="Eritrea" key="ER" />
|
||||
<Country name="Estonia" key="EE" />
|
||||
<Country name="Ethiopia" key="ET" />
|
||||
<Country name="Falkland Islands (Malvinas)" key="FK" />
|
||||
<Country name="Faroe Islands" key="FO" />
|
||||
<Country name="Fiji" key="FJ" />
|
||||
<Country name="Finland" key="FI" />
|
||||
<Country name="France" key="FR" />
|
||||
<Country name="French Guiana" key="GF" />
|
||||
<Country name="French Polynesia" key="PF" />
|
||||
<Country name="French Southern Territories" key="TF" />
|
||||
<Country name="Gabon" key="GA" />
|
||||
<Country name="Gambia" key="GM" />
|
||||
<Country name="Georgia" key="GE" />
|
||||
<Country name="Germany" key="DE" />
|
||||
<Country name="Ghana" key="GH" />
|
||||
<Country name="Gibraltar" key="GI" />
|
||||
<Country name="Greece" key="GR" />
|
||||
<Country name="Greenland" key="GL" />
|
||||
<Country name="Grenada" key="GD" />
|
||||
<Country name="Guadeloupe" key="GP" />
|
||||
<Country name="Guam" key="GU" />
|
||||
<Country name="Guatemala" key="GT" />
|
||||
<Country name="Guernsey" key="GG" />
|
||||
<Country name="Guinea" key="GN" />
|
||||
<Country name="Guinea-Bissau" key="GW" />
|
||||
<Country name="Guyana" key="GY" />
|
||||
<Country name="Haiti" key="HT" />
|
||||
<Country name="Heard Island and Mcdonald Islands" key="HM" />
|
||||
<Country name="Holy See (Vatican City State)" key="VA" />
|
||||
<Country name="Honduras" key="HN" />
|
||||
<Country name="Hong Kong" key="HK" />
|
||||
<Country name="Hungary" key="HU" />
|
||||
<Country name="Iceland" key="IS" />
|
||||
<Country name="India" key="IN" />
|
||||
<Country name="Indonesia" key="ID" />
|
||||
<Country name="Iran, Islamic Republic of" key="IR" />
|
||||
<Country name="Iraq" key="IQ" />
|
||||
<Country name="Ireland" key="IE" />
|
||||
<Country name="Isle of Man" key="IM" />
|
||||
<Country name="Israel" key="IL" />
|
||||
<Country name="Italy" key="IT" />
|
||||
<Country name="Jamaica" key="JM" />
|
||||
<Country name="Japan" key="JP" />
|
||||
<Country name="Jersey" key="JE" />
|
||||
<Country name="Jordan" key="JO" />
|
||||
<Country name="Kazakhstan" key="KZ" />
|
||||
<Country name="Kenya" key="KE" />
|
||||
<Country name="Kiribati" key="KI" />
|
||||
<Country name="Korea, Democratic People's Republic of" key="KP" />
|
||||
<Country name="Korea, Republic of" key="KR" />
|
||||
<Country name="Kuwait" key="KW" />
|
||||
<Country name="Kyrgyzstan" key="KG" />
|
||||
<Country name="Lao People's Democratic Republic" key="LA" />
|
||||
<Country name="Latvia" key="LV" />
|
||||
<Country name="Lebanon" key="LB" />
|
||||
<Country name="Lesotho" key="LS" />
|
||||
<Country name="Liberia" key="LR" />
|
||||
<Country name="Libyan Arab Jamahiriya" key="LY" />
|
||||
<Country name="Liechtenstein" key="LI" />
|
||||
<Country name="Lithuania" key="LT" />
|
||||
<Country name="Luxembourg" key="LU" />
|
||||
<Country name="Macao" key="MO" />
|
||||
<Country name="Macedonia, the Former Yugoslav Republic of" key="MK" />
|
||||
<Country name="Madagascar" key="MG" />
|
||||
<Country name="Malawi" key="MW" />
|
||||
<Country name="Malaysia" key="MY" />
|
||||
<Country name="Maldives" key="MV" />
|
||||
<Country name="Mali" key="ML" />
|
||||
<Country name="Malta" key="MT" />
|
||||
<Country name="Marshall Islands" key="MH" />
|
||||
<Country name="Martinique" key="MQ" />
|
||||
<Country name="Mauritania" key="MR" />
|
||||
<Country name="Mauritius" key="MU" />
|
||||
<Country name="Mayotte" key="YT" />
|
||||
<Country name="Mexico" key="MX" />
|
||||
<Country name="Micronesia, Federated States of" key="FM" />
|
||||
<Country name="Moldova, Republic of" key="MD" />
|
||||
<Country name="Monaco" key="MC" />
|
||||
<Country name="Mongolia" key="MN" />
|
||||
<Country name="Montenegro" key="ME" />
|
||||
<Country name="Montserrat" key="MS" />
|
||||
<Country name="Morocco" key="MA" />
|
||||
<Country name="Mozambique" key="MZ" />
|
||||
<Country name="Myanmar" key="MM" />
|
||||
<Country name="Namibia" key="NA" />
|
||||
<Country name="Nauru" key="NR" />
|
||||
<Country name="Nepal" key="NP" />
|
||||
<Country name="Netherlands" key="NL" />
|
||||
<Country name="Netherlands Antilles" key="AN" />
|
||||
<Country name="New Caledonia" key="NC" />
|
||||
<Country name="New Zealand" key="NZ" />
|
||||
<Country name="Nicaragua" key="NI" />
|
||||
<Country name="Niger" key="NE" />
|
||||
<Country name="Nigeria" key="NG" />
|
||||
<Country name="Niue" key="NU" />
|
||||
<Country name="Norfolk Island" key="NF" />
|
||||
<Country name="Northern Mariana Islands" key="MP" />
|
||||
<Country name="Norway" key="NO" />
|
||||
<Country name="Oman" key="OM" />
|
||||
<Country name="Pakistan" key="PK" />
|
||||
<Country name="Palau" key="PW" />
|
||||
<Country name="Palestinian Territory, Occupied" key="PS" />
|
||||
<Country name="Panama" key="PA" />
|
||||
<Country name="Papua New Guinea" key="PG" />
|
||||
<Country name="Paraguay" key="PY" />
|
||||
<Country name="Peru" key="PE" />
|
||||
<Country name="Philippines" key="PH" />
|
||||
<Country name="Pitcairn" key="PN" />
|
||||
<Country name="Poland" key="PL" />
|
||||
<Country name="Portugal" key="PT" />
|
||||
<Country name="Puerto Rico" key="PR" />
|
||||
<Country name="Qatar" key="QA" />
|
||||
<Country name="Reunion" key="RE" />
|
||||
<Country name="Romania" key="RO" />
|
||||
<Country name="Russian Federation" key="RU" />
|
||||
<Country name="Rwanda" key="RW" />
|
||||
<Country name="Saint Barthelemy" key="BL" />
|
||||
<Country name="Saint Helena" key="SH" />
|
||||
<Country name="Saint Kitts and Nevis" key="KN" />
|
||||
<Country name="Saint Lucia" key="LC" />
|
||||
<Country name="Saint Martin" key="MF" />
|
||||
<Country name="Saint Pierre and Miquelon" key="PM" />
|
||||
<Country name="Saint Vincent and the Grenadines" key="VC" />
|
||||
<Country name="Samoa" key="WS" />
|
||||
<Country name="San Marino" key="SM" />
|
||||
<Country name="Sao Tome and Principe" key="ST" />
|
||||
<Country name="Saudi Arabia" key="SA" />
|
||||
<Country name="Senegal" key="SN" />
|
||||
<Country name="Serbia" key="RS" />
|
||||
<Country name="Seychelles" key="SC" />
|
||||
<Country name="Sierra Leone" key="SL" />
|
||||
<Country name="Singapore" key="SG" />
|
||||
<Country name="Slovakia" key="SK" />
|
||||
<Country name="Slovenia" key="SI" />
|
||||
<Country name="Solomon Islands" key="SB" />
|
||||
<Country name="Somalia" key="SO" />
|
||||
<Country name="South Africa" key="ZA" />
|
||||
<Country name="South Georgia and the South Sandwich Islands" key="GS" />
|
||||
<Country name="Spain" key="ES" />
|
||||
<Country name="Sri Lanka" key="LK" />
|
||||
<Country name="Sudan" key="SD" />
|
||||
<Country name="Suriname" key="SR" />
|
||||
<Country name="Svalbard and Jan Mayen" key="SJ" />
|
||||
<Country name="Swaziland" key="SZ" />
|
||||
<Country name="Sweden" key="SE" />
|
||||
<Country name="Switzerland" key="CH" />
|
||||
<Country name="Syrian Arab Republic" key="SY" />
|
||||
<Country name="Taiwan, Province of China" key="TW" />
|
||||
<Country name="Tajikistan" key="TJ" />
|
||||
<Country name="Tanzania, United Republic of" key="TZ" />
|
||||
<Country name="Thailand" key="TH" />
|
||||
<Country name="Timor-Leste" key="TL" />
|
||||
<Country name="Togo" key="TG" />
|
||||
<Country name="Tokelau" key="TK" />
|
||||
<Country name="Tonga" key="TO" />
|
||||
<Country name="Trinidad and Tobago" key="TT" />
|
||||
<Country name="Tunisia" key="TN" />
|
||||
<Country name="Turkey" key="TR" />
|
||||
<Country name="Turkmenistan" key="TM" />
|
||||
<Country name="Turks and Caicos Islands" key="TC" />
|
||||
<Country name="Tuvalu" key="TV" />
|
||||
<Country name="Uganda" key="UG" />
|
||||
<Country name="Ukraine" key="UA" />
|
||||
<Country name="United Arab Emirates" key="AE" />
|
||||
<Country name="United Kingdom" key="GB" />
|
||||
<Country name="United States" key="US" />
|
||||
<Country name="United States Minor Outlying Islands" key="UM" />
|
||||
<Country name="Uruguay" key="UY" />
|
||||
<Country name="Uzbekistan" key="UZ" />
|
||||
<Country name="Vanuatu" key="VU" />
|
||||
<Country name="Venezuela, Bolivarian Republic of" key="VE" />
|
||||
<Country name="Viet Nam" key="VN" />
|
||||
<Country name="Virgin Islands, British" key="VG" />
|
||||
<Country name="Virgin Islands, U.S." key="VI" />
|
||||
<Country name="Wallis and Futuna" key="WF" />
|
||||
<Country name="Western Sahara" key="EH" />
|
||||
<Country name="Yemen" key="YE" />
|
||||
<Country name="Zambia" key="ZM" />
|
||||
<Country name="Zimbabwe" key="ZW" />
|
||||
</Countries>
|
|
@ -1,411 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<States>
|
||||
<!-- Canada -->
|
||||
<State name="Alberta" key="AB" countryCode="CA" />
|
||||
<State name="British Columbia" key="BC" countryCode="CA" />
|
||||
<State name="Manitoba" key="MB" countryCode="CA" />
|
||||
<State name="New Brunswick" key="NB" countryCode="CA" />
|
||||
<State name="Newfoundland and Labrador" key="NL" countryCode="CA" />
|
||||
<State name="Northwest Territories" key="NT" countryCode="CA" />
|
||||
<State name="Nova Scotia" key="NS" countryCode="CA" />
|
||||
<State name="Nunavut" key="NV" countryCode="CA" />
|
||||
<State name="Ontario" key="ON" countryCode="CA" />
|
||||
<State name="Prince Edward Island" key="PE" countryCode="CA" />
|
||||
<State name="Quebec" key="QC" countryCode="CA" />
|
||||
<State name="Saskatchewan" key="SK" countryCode="CA" />
|
||||
<State name="Yukon Territory" key="YT" countryCode="CA" />
|
||||
|
||||
<!-- US -->
|
||||
<State name="Alabama" key="AL" countryCode="US" />
|
||||
<State name="Alaska" key="AK" countryCode="US" />
|
||||
<State name="Arizona" key="AZ" countryCode="US" />
|
||||
<State name="Arkansas" key="AR" countryCode="US" />
|
||||
<State name="California" key="CA" countryCode="US" />
|
||||
<State name="Colorado" key="CO" countryCode="US" />
|
||||
<State name="Connecticut" key="CT" countryCode="US" />
|
||||
<State name="Delaware" key="DE" countryCode="US" />
|
||||
<State name="District of Columbia" key="DC" countryCode="US" />
|
||||
<State name="Florida" key="FL" countryCode="US" />
|
||||
<State name="Georgia" key="GA" countryCode="US" />
|
||||
<State name="Hawaii" key="HI" countryCode="US" />
|
||||
<State name="Idaho" key="ID" countryCode="US" />
|
||||
<State name="Illinois" key="IL" countryCode="US" />
|
||||
<State name="Indiana" key="IN" countryCode="US" />
|
||||
<State name="Iowa" key="IA" countryCode="US" />
|
||||
<State name="Kansas" key="KS" countryCode="US" />
|
||||
<State name="Kentucky" key="KY" countryCode="US" />
|
||||
<State name="Louisiana" key="LA" countryCode="US" />
|
||||
<State name="Maine" key="ME" countryCode="US" />
|
||||
<State name="Maryland" key="MD" countryCode="US" />
|
||||
<State name="Massachusetts" key="MA" countryCode="US" />
|
||||
<State name="Michigan" key="MI" countryCode="US" />
|
||||
<State name="Minnesota" key="MN" countryCode="US" />
|
||||
<State name="Mississippi" key="MS" countryCode="US" />
|
||||
<State name="Missouri" key="MO" countryCode="US" />
|
||||
<State name="Montana" key="MT" countryCode="US" />
|
||||
<State name="Nebraska" key="NE" countryCode="US" />
|
||||
<State name="Nevada" key="NV" countryCode="US" />
|
||||
<State name="New Hampshire" key="NH" countryCode="US" />
|
||||
<State name="New Jersey" key="NJ" countryCode="US" />
|
||||
<State name="New Mexico" key="NM" countryCode="US" />
|
||||
<State name="New York" key="NY" countryCode="US" />
|
||||
<State name="North Carolina" key="NC" countryCode="US" />
|
||||
<State name="North Dakota" key="ND" countryCode="US" />
|
||||
<State name="Ohio" key="OH" countryCode="US" />
|
||||
<State name="Oklahoma" key="OK" countryCode="US" />
|
||||
<State name="Oregon" key="OR" countryCode="US" />
|
||||
<State name="Pennsylvania" key="PA" countryCode="US" />
|
||||
<State name="Rhode Island" key="RI" countryCode="US" />
|
||||
<State name="South Carolina" key="SC" countryCode="US" />
|
||||
<State name="South Dakota" key="SD" countryCode="US" />
|
||||
<State name="Tennessee" key="TN" countryCode="US" />
|
||||
<State name="Texas" key="TX" countryCode="US" />
|
||||
<State name="Utah" key="UT" countryCode="US" />
|
||||
<State name="Vermont" key="VT" countryCode="US" />
|
||||
<State name="Virginia" key="VA" countryCode="US" />
|
||||
<State name="Washington" key="WA" countryCode="US" />
|
||||
<State name="West Virginia" key="WV" countryCode="US" />
|
||||
<State name="Wisconsin" key="WI" countryCode="US" />
|
||||
<State name="Wyoming" key="WY" countryCode="US" />
|
||||
|
||||
<!-- Russian Federation -->
|
||||
<State name="Altaiskiy Kray" key="22" countryCode="RU" />
|
||||
<State name="Amurskaya Oblast" key="28" countryCode="RU" />
|
||||
<State name="Arkhangelskaya Oblast" key="29" countryCode="RU" />
|
||||
<State name="Astrakhanskaya Oblast" key="30" countryCode="RU" />
|
||||
<State name="Belgorodskaya Oblast" key="31" countryCode="RU" />
|
||||
<State name="Bryanskaya Oblast" key="32" countryCode="RU" />
|
||||
<State name="Chechnya" key="20" countryCode="RU" />
|
||||
<State name="Chelyabinskaya Oblast" key="74" countryCode="RU" />
|
||||
<State name="Chitinskaya Oblast" key="75" countryCode="RU" />
|
||||
<State name="Chukotka Automomous District" key="87" countryCode="RU" />
|
||||
<State name="Chuvash Republic" key="21" countryCode="RU" />
|
||||
<State name="Evenkia Automomous District" key="88" countryCode="RU" />
|
||||
<State name="Irkutskaya Oblast" key="38" countryCode="RU" />
|
||||
<State name="Ivanovskaya Oblast" key="37" countryCode="RU" />
|
||||
<State name="Jewish Autonomous Region" key="79" countryCode="RU" />
|
||||
<State name="Kabardino-Balkaryan Republic" key="07" countryCode="RU" />
|
||||
<State name="Kaliningradskaya Oblast" key="39" countryCode="RU" />
|
||||
<State name="Kaluzhskaya Oblast" key="40" countryCode="RU" />
|
||||
<State name="Kamchatskaya Oblast" key="41" countryCode="RU" />
|
||||
<State name="Kemerovskaya Oblast" key="42" countryCode="RU" />
|
||||
<State name="Khabarovskiy Kray" key="27" countryCode="RU" />
|
||||
<State name="Kirovskaya Oblast" key="43" countryCode="RU" />
|
||||
<State name="Kostromskaya Oblast" key="44" countryCode="RU" />
|
||||
<State name="Krasnodarskiy Kray" key="23" countryCode="RU" />
|
||||
<State name="Krasnoyarskiy Kray" key="24" countryCode="RU" />
|
||||
<State name="Kurganskaya Oblast" key="45" countryCode="RU" />
|
||||
<State name="Kurskaya Oblast" key="46" countryCode="RU" />
|
||||
<State name="Leningradskaya Oblast" key="47" countryCode="RU" />
|
||||
<State name="Lipetskaya Oblast" key="48" countryCode="RU" />
|
||||
<State name="Magadanskaya Oblast" key="49" countryCode="RU" />
|
||||
<State name="Moscow" key="77" countryCode="RU" />
|
||||
<State name="Moskovskaya Oblast" key="50" countryCode="RU" />
|
||||
<State name="Murmanskaya Oblast" key="51" countryCode="RU" />
|
||||
<State name="Nizhegorodskaya Oblast" key="52" countryCode="RU" />
|
||||
<State name="Novgorodskaya Oblast" key="53" countryCode="RU" />
|
||||
<State name="Novosibirskaya Oblast" key="54" countryCode="RU" />
|
||||
<State name="Omskaya Oblast" key="55" countryCode="RU" />
|
||||
<State name="Orenburgskaya Oblast" key="56" countryCode="RU" />
|
||||
<State name="Orlovskaya Oblast" key="57" countryCode="RU" />
|
||||
<State name="Penzenskaya Oblast" key="58" countryCode="RU" />
|
||||
<State name="Permskaya Oblast" key="59" countryCode="RU" />
|
||||
<State name="Primorskiy Kray" key="25" countryCode="RU" />
|
||||
<State name="Pskovskaya Oblast" key="60" countryCode="RU" />
|
||||
<State name="Republic of Adyghe" key="01" countryCode="RU" />
|
||||
<State name="Republic of Altai" key="04" countryCode="RU" />
|
||||
<State name="Republic of Bashkortostan" key="02" countryCode="RU" />
|
||||
<State name="Republic of Buryatia" key="03" countryCode="RU" />
|
||||
<State name="Republic of Daghestan" key="05" countryCode="RU" />
|
||||
<State name="Republic of Ingushetia" key="06" countryCode="RU" />
|
||||
<State name="Republic of Kalmykia" key="08" countryCode="RU" />
|
||||
<State name="Republic of Karelia" key="10" countryCode="RU" />
|
||||
<State name="Republic of Khakassia" key="19" countryCode="RU" />
|
||||
<State name="Republic of Komi" key="11" countryCode="RU" />
|
||||
<State name="Republic of Mari El" key="12" countryCode="RU" />
|
||||
<State name="Republic of Mordovia" key="13" countryCode="RU" />
|
||||
<State name="Republic of North Ossetia - Alania" key="15" countryCode="RU" />
|
||||
<State name="Republic of Sakha" key="14" countryCode="RU" />
|
||||
<State name="Republic of Tuva" key="17" countryCode="RU" />
|
||||
<State name="Rostovskaya Oblast" key="61" countryCode="RU" />
|
||||
<State name="Ryazanskaya Oblast" key="62" countryCode="RU" />
|
||||
<State name="Saint Petersburg" key="78" countryCode="RU" />
|
||||
<State name="Sakhalinskaya Oblast" key="65" countryCode="RU" />
|
||||
<State name="Samarskaya Oblast" key="63" countryCode="RU" />
|
||||
<State name="Saratovskaya Oblast" key="64" countryCode="RU" />
|
||||
<State name="Smolenskaya Oblast" key="67" countryCode="RU" />
|
||||
<State name="Stavropolskiy Kray" key="26" countryCode="RU" />
|
||||
<State name="Sverdlovskaya Oblast" key="66" countryCode="RU" />
|
||||
<State name="Tambovskaya Oblast" key="68" countryCode="RU" />
|
||||
<State name="Tatarstan" key="16" countryCode="RU" />
|
||||
<State name="Tomskaya Oblast" key="70" countryCode="RU" />
|
||||
<State name="Tul'skaya Oblast" key="71" countryCode="RU" />
|
||||
<State name="Tverskaya Oblast" key="69" countryCode="RU" />
|
||||
<State name="Tyumenskaya Oblast" key="72" countryCode="RU" />
|
||||
<State name="Udmurt Republic" key="18" countryCode="RU" />
|
||||
<State name="Ul'yanovskaya Oblast" key="73" countryCode="RU" />
|
||||
<State name="Vladimirskaya Oblast" key="33" countryCode="RU" />
|
||||
<State name="Volgogradskaya Oblast" key="34" countryCode="RU" />
|
||||
<State name="Vologodskaya Oblast" key="35" countryCode="RU" />
|
||||
<State name="Voronezhskaya Oblast" key="36" countryCode="RU" />
|
||||
<State name="Yaroslavskaya Oblast" key="76" countryCode="RU" />
|
||||
|
||||
<!-- Croatia -->
|
||||
<State name="Zagrebačka" key="01" countryCode="HR" />
|
||||
<State name="Krapinsko-zagorska" key="02" countryCode="HR" />
|
||||
<State name="Sisačko-moslavačka" key="03" countryCode="HR" />
|
||||
<State name="Karlovačka" key="04" countryCode="HR" />
|
||||
<State name="Varaždinska" key="05" countryCode="HR" />
|
||||
<State name="Koprivničko-križevačka" key="06" countryCode="HR" />
|
||||
<State name="Bjelovarsko-bilogorska" key="07" countryCode="HR" />
|
||||
<State name="Primorsko-goranska" key="08" countryCode="HR" />
|
||||
<State name="Ličko-senjska" key="09" countryCode="HR" />
|
||||
<State name="Virovitičko-podravska" key="10" countryCode="HR" />
|
||||
<State name="Požeško-slavonska" key="11" countryCode="HR" />
|
||||
<State name="Brodsko-posavska" key="12" countryCode="HR" />
|
||||
<State name="Zadarska" key="13" countryCode="HR" />
|
||||
<State name="Osječko-baranjska" key="14" countryCode="HR" />
|
||||
<State name="Šibensko-kninska" key="15" countryCode="HR" />
|
||||
<State name="Vukovarsko-srijemska" key="16" countryCode="HR" />
|
||||
<State name="Splitsko-dalmatinska" key="17" countryCode="HR" />
|
||||
<State name="Istarska" key="18" countryCode="HR" />
|
||||
<State name="Dubrovačko-neretvanska" key="19" countryCode="HR" />
|
||||
<State name="Međimurska" key="20" countryCode="HR" />
|
||||
<State name="Grad Zagreb" key="21" countryCode="HR" />
|
||||
|
||||
<!-- United Kingdom -->
|
||||
<State name="-- England --" key="116" countryCode="GB" />
|
||||
<State name="Avon" key="01" countryCode="GB" />
|
||||
<State name="Bedfordshire" key="02" countryCode="GB" />
|
||||
<State name="Berkshire" key="03" countryCode="GB" />
|
||||
<State name="Bristol" key="04" countryCode="GB" />
|
||||
<State name="Buckinghamshire" key="05" countryCode="GB" />
|
||||
<State name="Cambridgeshire" key="06" countryCode="GB" />
|
||||
<State name="Cheshire" key="07" countryCode="GB" />
|
||||
<State name="Cleveland" key="08" countryCode="GB" />
|
||||
<State name="Cornwall" key="09" countryCode="GB" />
|
||||
<State name="Cumbria" key="10" countryCode="GB" />
|
||||
<State name="Derbyshire" key="11" countryCode="GB" />
|
||||
<State name="Devon" key="12" countryCode="GB" />
|
||||
<State name="Dorset" key="13" countryCode="GB" />
|
||||
<State name="Durham" key="14" countryCode="GB" />
|
||||
<State name="East Riding of Yorkshire" key="15" countryCode="GB" />
|
||||
<State name="East Sussex" key="16" countryCode="GB" />
|
||||
<State name="Essex" key="17" countryCode="GB" />
|
||||
<State name="Gloucestershire" key="18" countryCode="GB" />
|
||||
<State name="Greater Manchester" key="19" countryCode="GB" />
|
||||
<State name="Hampshire" key="20" countryCode="GB" />
|
||||
<State name="Herefordshire" key="21" countryCode="GB" />
|
||||
<State name="Hertfordshire" key="22" countryCode="GB" />
|
||||
<State name="Humberside" key="23" countryCode="GB" />
|
||||
<State name="Isle of Wight" key="24" countryCode="GB" />
|
||||
<State name="Isles of Scilly" key="25" countryCode="GB" />
|
||||
<State name="Kent" key="26" countryCode="GB" />
|
||||
<State name="Lancashire" key="27" countryCode="GB" />
|
||||
<State name="Leicestershire" key="28" countryCode="GB" />
|
||||
<State name="Lincolnshire" key="29" countryCode="GB" />
|
||||
<State name="London" key="30" countryCode="GB" />
|
||||
<State name="Merseyside" key="31" countryCode="GB" />
|
||||
<State name="Middlesex" key="32" countryCode="GB" />
|
||||
<State name="Norfolk" key="33" countryCode="GB" />
|
||||
<State name="North Yorkshire" key="34" countryCode="GB" />
|
||||
<State name="Northamptonshire" key="35" countryCode="GB" />
|
||||
<State name="Northumberland" key="36" countryCode="GB" />
|
||||
<State name="Nottinghamshire" key="37" countryCode="GB" />
|
||||
<State name="Oxfordshire" key="38" countryCode="GB" />
|
||||
<State name="Rutland" key="39" countryCode="GB" />
|
||||
<State name="Shropshire" key="40" countryCode="GB" />
|
||||
<State name="Somerset" key="41" countryCode="GB" />
|
||||
<State name="South Yorkshire" key="42" countryCode="GB" />
|
||||
<State name="Staffordshire" key="43" countryCode="GB" />
|
||||
<State name="Suffolk" key="44" countryCode="GB" />
|
||||
<State name="Surrey" key="45" countryCode="GB" />
|
||||
<State name="Tyne and Wear" key="46" countryCode="GB" />
|
||||
<State name="Warwickshire" key="47" countryCode="GB" />
|
||||
<State name="West Midlands" key="48" countryCode="GB" />
|
||||
<State name="West Sussex" key="49" countryCode="GB" />
|
||||
<State name="West Yorkshire" key="50" countryCode="GB" />
|
||||
<State name="Wiltshire" key="51" countryCode="GB" />
|
||||
<State name="Worcestershire" key="52" countryCode="GB" />
|
||||
<State name="-- Northern Ireland --" key="117" countryCode="GB" />
|
||||
<State name="Antrim" key="53" countryCode="GB" />
|
||||
<State name="Armagh" key="54" countryCode="GB" />
|
||||
<State name="Down" key="55" countryCode="GB" />
|
||||
<State name="Fermanagh" key="56" countryCode="GB" />
|
||||
<State name="Londonderry" key="57" countryCode="GB" />
|
||||
<State name="Tyrone" key="58" countryCode="GB" />
|
||||
<State name="-- Scotland --" key="118" countryCode="GB" />
|
||||
<State name="Aberdeen City" key="59" countryCode="GB" />
|
||||
<State name="Aberdeenshire" key="60" countryCode="GB" />
|
||||
<State name="Angus" key="61" countryCode="GB" />
|
||||
<State name="Argyll and Bute" key="62" countryCode="GB" />
|
||||
<State name="Borders" key="63" countryCode="GB" />
|
||||
<State name="Clackmannan" key="64" countryCode="GB" />
|
||||
<State name="Dumfries and Galloway" key="65" countryCode="GB" />
|
||||
<State name="East Ayrshire" key="67" countryCode="GB" />
|
||||
<State name="East Dunbartonshire" key="68" countryCode="GB" />
|
||||
<State name="East Lothian" key="69" countryCode="GB" />
|
||||
<State name="East Renfrewshire" key="70" countryCode="GB" />
|
||||
<State name="Edinburgh City" key="71" countryCode="GB" />
|
||||
<State name="Falkirk" key="72" countryCode="GB" />
|
||||
<State name="Fife" key="73" countryCode="GB" />
|
||||
<State name="Glasgow" key="74" countryCode="GB" />
|
||||
<State name="Highland" key="75" countryCode="GB" />
|
||||
<State name="Inverclyde" key="76" countryCode="GB" />
|
||||
<State name="Midlothian" key="77" countryCode="GB" />
|
||||
<State name="Moray" key="78" countryCode="GB" />
|
||||
<State name="North Ayrshire" key="79" countryCode="GB" />
|
||||
<State name="North Lanarkshire" key="80" countryCode="GB" />
|
||||
<State name="Orkney" key="81" countryCode="GB" />
|
||||
<State name="Perthshire and Kinross" key="82" countryCode="GB" />
|
||||
<State name="Renfrewshire" key="83" countryCode="GB" />
|
||||
<State name="Roxburghshire" key="84" countryCode="GB" />
|
||||
<State name="Shetland" key="85" countryCode="GB" />
|
||||
<State name="South Ayrshire" key="86" countryCode="GB" />
|
||||
<State name="South Lanarkshire" key="87" countryCode="GB" />
|
||||
<State name="Stirling" key="88" countryCode="GB" />
|
||||
<State name="West Dunbartonshire" key="89" countryCode="GB" />
|
||||
<State name="West Lothian" key="90" countryCode="GB" />
|
||||
<State name="Western Isles" key="91" countryCode="GB" />
|
||||
<State name="-- Unitary Authorities of Wales --" key="119" countryCode="GB" />
|
||||
<State name="Blaenau Gwent" key="92" countryCode="GB" />
|
||||
<State name="Bridgend" key="93" countryCode="GB" />
|
||||
<State name="Caerphilly" key="94" countryCode="GB" />
|
||||
<State name="Cardiff" key="95" countryCode="GB" />
|
||||
<State name="Carmarthenshire" key="96" countryCode="GB" />
|
||||
<State name="Ceredigion" key="97" countryCode="GB" />
|
||||
<State name="Conwy" key="98" countryCode="GB" />
|
||||
<State name="Denbighshire" key="99" countryCode="GB" />
|
||||
<State name="Flintshire" key="100" countryCode="GB" />
|
||||
<State name="Gwynedd" key="101" countryCode="GB" />
|
||||
<State name="Isle of Anglesey" key="102" countryCode="GB" />
|
||||
<State name="Merthyr Tydfil" key="103" countryCode="GB" />
|
||||
<State name="Monmouthshire" key="104" countryCode="GB" />
|
||||
<State name="Neath Port Talbot" key="105" countryCode="GB" />
|
||||
<State name="Newport" key="106" countryCode="GB" />
|
||||
<State name="Pembrokeshire" key="107" countryCode="GB" />
|
||||
<State name="Powys" key="108" countryCode="GB" />
|
||||
<State name="Rhondda Cynon Taff" key="109" countryCode="GB" />
|
||||
<State name="Swansea" key="110" countryCode="GB" />
|
||||
<State name="Torfaen" key="111" countryCode="GB" />
|
||||
<State name="The Vale of Glamorgan" key="112" countryCode="GB" />
|
||||
<State name="Wrexham" key="113" countryCode="GB" />
|
||||
<State name="-- GB Offshore Dependencies --" key="120" countryCode="GB" />
|
||||
<State name="Channel Islands" key="114" countryCode="GB" />
|
||||
<State name="Isle of Man" Ikey="115" countryCode="GB" />
|
||||
|
||||
<!-- Republic of Ireland -->
|
||||
<State name="Fingal" key="01" countryCode="IE" />
|
||||
<State name=" Dun Laoghaire-Rathdown" key="02" countryCode="IE" />
|
||||
<State name="South Dublin" key="03" countryCode="IE" />
|
||||
<State name="Wicklow" key="04" countryCode="IE" />
|
||||
<State name="Wexford" key="05" countryCode="IE" />
|
||||
<State name="Carlow" key="06" countryCode="IE" />
|
||||
<State name="Kildare" key="07" countryCode="IE" />
|
||||
<State name="Meath " key="08" countryCode="IE" />
|
||||
<State name="Louth" key="09" countryCode="IE" />
|
||||
<State name="Monaghan" key="10" countryCode="IE" />
|
||||
<State name="Cavan" key="11" countryCode="IE" />
|
||||
<State name="Longford" key="12" countryCode="IE" />
|
||||
<State name="Westmeath" key="13" countryCode="IE" />
|
||||
<State name="Offaly" key="14" countryCode="IE" />
|
||||
<State name="Laois" key="15" countryCode="IE" />
|
||||
<State name="Kilkenny " key="16" countryCode="IE" />
|
||||
<State name="Waterford" key="17" countryCode="IE" />
|
||||
<State name="Cork" key="18" countryCode="IE" />
|
||||
<State name="Kerryr" key="19" countryCode="IE" />
|
||||
<State name="Limerick" key="20" countryCode="IE" />
|
||||
<State name="North Tipperary" key="21" countryCode="IE" />
|
||||
<State name="South Tipperary" key="22" countryCode="IE" />
|
||||
<State name="Clare" key="23" countryCode="IE" />
|
||||
<State name="Galway" key="24" countryCode="IE" />
|
||||
<State name="Mayo" key="25" countryCode="IE" />
|
||||
<State name="Roscommon" key="26" countryCode="IE" />
|
||||
<State name="Sligo" key="27" countryCode="IE" />
|
||||
<State name="Leitrim" key="28" countryCode="IE" />
|
||||
<State name="Donegal" key="29" countryCode="IE" />
|
||||
|
||||
<!-- Republic of Turkey -->
|
||||
<State name="Adana" key="01" countryCode="TR" />
|
||||
<State name="Adэyaman" key="02" countryCode="TR" />
|
||||
<State name="Afyonkarahisar" key="03" countryCode="TR" />
|
||||
<State name="Aрrэ" key="04" countryCode="TR" />
|
||||
<State name="Amasya" key="05" countryCode="TR" />
|
||||
<State name="Ankara" key="06" countryCode="TR" />
|
||||
<State name="Antalya" key="07" countryCode="TR" />
|
||||
<State name="Artvin" key="08" countryCode="TR" />
|
||||
<State name="Aydэn" key="09" countryCode="TR" />
|
||||
<State name="Balэkesir" key="10" countryCode="TR" />
|
||||
<State name="Bilecik" key="11" countryCode="TR" />
|
||||
<State name="Bingцl" key="12" countryCode="TR" />
|
||||
<State name="Bitlis" key="13" countryCode="TR" />
|
||||
<State name="Bolu" key="14" countryCode="TR" />
|
||||
<State name="Burdur" key="15" countryCode="TR" />
|
||||
<State name="Bursa" key="16" countryCode="TR" />
|
||||
<State name="Зanakkale" key="17" countryCode="TR" />
|
||||
<State name="Зankэrэ" key="18" countryCode="TR" />
|
||||
<State name="Зorum" key="19" countryCode="TR" />
|
||||
<State name="Denizli" key="20" countryCode="TR" />
|
||||
<State name="Diyarbakэr" key="21" countryCode="TR" />
|
||||
<State name="Edirne" key="22" countryCode="TR" />
|
||||
<State name="Elazэр" key="23" countryCode="TR" />
|
||||
<State name="Erzincan" key="24" countryCode="TR" />
|
||||
<State name="Erzurum" key="25" countryCode="TR" />
|
||||
<State name="Eskiюehir" key="26" countryCode="TR" />
|
||||
<State name="Gaziantep" key="27" countryCode="TR" />
|
||||
<State name="Giresun" key="28" countryCode="TR" />
|
||||
<State name="Gьmьюhane" key="29" countryCode="TR" />
|
||||
<State name="Hakkari" key="30" countryCode="TR" />
|
||||
<State name="Hatay" key="31" countryCode="TR" />
|
||||
<State name="Isparta" key="32" countryCode="TR" />
|
||||
<State name="Mersin" key="33" countryCode="TR" />
|
||||
<State name="Istanbul" key="34" countryCode="TR" />
|
||||
<State name="Эzmir" key="35" countryCode="TR" />
|
||||
<State name="Kars" key="36" countryCode="TR" />
|
||||
<State name="Kastamonu" key="37" countryCode="TR" />
|
||||
<State name="Kayseri" key="38" countryCode="TR" />
|
||||
<State name="Kэrklareli" key="39" countryCode="TR" />
|
||||
<State name="Kэrюehir" key="40" countryCode="TR" />
|
||||
<State name="Kocaeli" key="41" countryCode="TR" />
|
||||
<State name="Konya" key="42" countryCode="TR" />
|
||||
<State name="Kьtahya" key="43" countryCode="TR" />
|
||||
<State name="Malatya" key="44" countryCode="TR" />
|
||||
<State name="Manisa" key="45" countryCode="TR" />
|
||||
<State name="Kahramanmaraю" key="46" countryCode="TR" />
|
||||
<State name="Mardin" key="47" countryCode="TR" />
|
||||
<State name="Muрla" key="48" countryCode="TR" />
|
||||
<State name="Muю" key="49" countryCode="TR" />
|
||||
<State name="Nevюehir" key="50" countryCode="TR" />
|
||||
<State name="Niрde" key="51" countryCode="TR" />
|
||||
<State name="Ordu" key="52" countryCode="TR" />
|
||||
<State name="Rize" key="53" countryCode="TR" />
|
||||
<State name="Sakarya" key="54" countryCode="TR" />
|
||||
<State name="Samsun" key="55" countryCode="TR" />
|
||||
<State name="Siirt" key="56" countryCode="TR" />
|
||||
<State name="Sinop" key="57" countryCode="TR" />
|
||||
<State name="Sivas" key="58" countryCode="TR" />
|
||||
<State name="Tekirdaр" key="59" countryCode="TR" />
|
||||
<State name="Tokat" key="60" countryCode="TR" />
|
||||
<State name="Trabzon" key="61" countryCode="TR" />
|
||||
<State name="Tunceli" key="62" countryCode="TR" />
|
||||
<State name="Юanlэurfa" key="63" countryCode="TR" />
|
||||
<State name="Uюak" key="64" countryCode="TR" />
|
||||
<State name="Van" key="65" countryCode="TR" />
|
||||
<State name="Yozgat" key="66" countryCode="TR" />
|
||||
<State name="Zonguldak" key="67" countryCode="TR" />
|
||||
<State name="Aksaray" key="68" countryCode="TR" />
|
||||
<State name="Bayburt" key="69" countryCode="TR" />
|
||||
<State name="Karaman" key="70" countryCode="TR" />
|
||||
<State name="Kэrэkkale" key="71" countryCode="TR" />
|
||||
<State name="Batman" key="72" countryCode="TR" />
|
||||
<State name="Юэrnak" key="73" countryCode="TR" />
|
||||
<State name="Bartэn" key="74" countryCode="TR" />
|
||||
<State name="Ardahan" key="75" countryCode="TR" />
|
||||
<State name="Iрdэr" key="76" countryCode="TR" />
|
||||
<State name="Yalova" key="77" countryCode="TR" />
|
||||
<State name="Karabьk" key="78" countryCode="TR" />
|
||||
<State name="Kilis" key="79" countryCode="TR" />
|
||||
<State name="Osmaniye" key="80" countryCode="TR" />
|
||||
<State name="Dьzce" key="81" countryCode="TR" />
|
||||
|
||||
</States>
|
|
@ -1,144 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Controls>
|
||||
<!--<Control key="" />-->
|
||||
<!--<Control key="create_organization" />-->
|
||||
|
||||
|
||||
<!--Home-->
|
||||
<Control key="organization_home" />
|
||||
|
||||
|
||||
<!--Organization-->
|
||||
<Control key="users" />
|
||||
<Control key="edit_user" general_key="users" /> <!--?-->
|
||||
<Control key="create_user" general_key="users" />
|
||||
<Control key="user_memberof" general_key="users" />
|
||||
<!--<Control key="organization_user_setup" />-->
|
||||
|
||||
<Control key="secur_groups" />
|
||||
<Control key="create_secur_group" general_key="secur_groups" />
|
||||
<Control key="secur_group_settings" general_key="secur_groups" />
|
||||
<Control key="secur_group_memberof" general_key="secur_groups" />
|
||||
|
||||
<Control key="org_domains" />
|
||||
<Control key="org_add_domain" general_key="org_domains" />
|
||||
|
||||
|
||||
<!--Exchange-->
|
||||
<Control key="mailboxes" />
|
||||
<!--<Control key="archivingmailboxes" />-->
|
||||
<Control key="create_mailbox" general_key="mailboxes" />
|
||||
<Control key="mailbox_settings" general_key="mailboxes" />
|
||||
<Control key="mailbox_mobile" general_key="mailboxes" />
|
||||
<Control key="mailbox_mobile_details" general_key="mailboxes" />
|
||||
<Control key="mailbox_addresses" general_key="mailboxes" />
|
||||
<Control key="mailbox_mailflow" general_key="mailboxes" />
|
||||
<Control key="mailbox_permissions" general_key="mailboxes" />
|
||||
<Control key="mailbox_advanced" general_key="mailboxes" />
|
||||
<Control key="mailbox_setup" general_key="mailboxes" />
|
||||
<Control key="mailbox_memberof" general_key="mailboxes" />
|
||||
|
||||
<Control key="contacts" />
|
||||
<Control key="create_contact" general_key="contacts" />
|
||||
<Control key="contact_settings" general_key="contacts" />
|
||||
<Control key="contact_mailflow" general_key="contacts" />
|
||||
|
||||
<Control key="dlists" />
|
||||
<Control key="create_dlist" general_key="dlists" />
|
||||
<Control key="dlist_settings" general_key="dlists" />
|
||||
<Control key="dlist_addresses" general_key="dlists" />
|
||||
<Control key="dlist_mailflow" general_key="dlists" />
|
||||
<Control key="dlist_permissions" general_key="dlists" />
|
||||
<Control key="dlist_memberof" general_key="dlists" />
|
||||
|
||||
<Control key="disclaimers" />
|
||||
<Control key="disclaimers_settings" general_key="disclaimers" />
|
||||
|
||||
<Control key="public_folders" />
|
||||
<Control key="create_public_folder" general_key="public_folders" />
|
||||
<Control key="public_folder_settings" general_key="public_folders" />
|
||||
<Control key="public_folder_addresses" general_key="public_folders" />
|
||||
<Control key="public_folder_mailflow" general_key="public_folders" />
|
||||
<Control key="public_folder_mailenable" general_key="public_folders" />
|
||||
|
||||
<Control key="domains" />
|
||||
<Control key="add_domain" general_key="domains" />
|
||||
<Control key="domain_records" general_key="domains" />
|
||||
|
||||
<Control key="storage_usage" />
|
||||
<Control key="storage_usage_details" general_key="storage_usage" />
|
||||
<!--<Control key="storage_limits" />-->
|
||||
|
||||
<Control key="activesync_policy" />
|
||||
|
||||
<Control key="mailboxplans" />
|
||||
<Control key="retentionpolicy" />
|
||||
<Control key="retentionpolicytag" />
|
||||
<Control key="add_mailboxplan" general_key="mailboxplans" /> <!--?-->
|
||||
|
||||
|
||||
<!--CRM-->
|
||||
<Control key="CRMOrganizationDetails" />
|
||||
|
||||
<Control key="CRMUsers" />
|
||||
<Control key="CRMUserRoles" general_key="CRMUsers" />
|
||||
<Control key="create_crm_user" general_key="CRMUsers" />
|
||||
|
||||
<Control key="crm_storage_settings" />
|
||||
|
||||
|
||||
<!--SharePoint-->
|
||||
<Control key="sharepoint_sitecollections" />
|
||||
<Control key="sharepoint_edit_sitecollection" general_key="sharepoint_sitecollections" />
|
||||
<Control key="sharepoint_backup_sitecollection" general_key="sharepoint_sitecollections" />
|
||||
<Control key="sharepoint_restore_sitecollection" general_key="sharepoint_sitecollections" />
|
||||
|
||||
<Control key="sharepoint_storage_settings" />
|
||||
|
||||
<Control key="sharepoint_storage_usage" />
|
||||
|
||||
|
||||
<!--BlackBerry-->
|
||||
<Control key="blackberry_users" />
|
||||
<Control key="create_new_blackberry_user" general_key="blackberry_users" />
|
||||
<Control key="edit_blackberry_user" general_key="blackberry_users" />
|
||||
|
||||
|
||||
<!--OCS-->
|
||||
<Control key="ocs_users" />
|
||||
<Control key="create_new_ocs_user" general_key="ocs_users" />
|
||||
<Control key="edit_ocs_user" general_key="ocs_users" />
|
||||
|
||||
|
||||
<!--Lync-->
|
||||
<Control key="lync_users"/>
|
||||
<Control key="create_new_lync_user" general_key="lync_users" />
|
||||
<Control key="edit_lync_user" general_key="lync_users" />
|
||||
|
||||
<Control key="lync_userplans" />
|
||||
<Control key="add_lyncuserplan" general_key="lync_userplans" />
|
||||
|
||||
<Control key="lync_federationdomains" />
|
||||
<Control key="add_lyncfederation_domain" general_key="lync_federationdomains" />
|
||||
|
||||
<Control key="lync_phonenumbers" />
|
||||
<Control key="allocate_phonenumbers" general_key="lync_phonenumbers" />
|
||||
|
||||
|
||||
<!--EnterpriseStorage-->
|
||||
<Control key="enterprisestorage_folders" />
|
||||
<Control key="create_enterprisestorage_folder" general_key="enterprisestorage_folders" />
|
||||
<Control key="enterprisestorage_folder_settings" general_key="enterprisestorage_folders" />
|
||||
|
||||
<Control key="enterprisestorage_drive_maps" />
|
||||
<Control key="create_enterprisestorage_drive_map" general_key="enterprisestorage_drive_maps" />
|
||||
|
||||
<!--RDS-->
|
||||
<Control key="rds_servers" />
|
||||
<Control key="rds_add_server" general_key="rds_servers"/>
|
||||
|
||||
<Control key="rds_collections" />
|
||||
<Control key="rds_create_collection" general_key="rds_collections" />
|
||||
<Control key="rds_collection_edit_apps" general_key="rds_collections" />
|
||||
<Control key="rds_collection_edit_users" general_key="rds_collections" />
|
||||
</Controls>
|
|
@ -1,137 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ModuleDefinitions>
|
||||
<ModuleDefinition id="ecEcommerceSettings">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/EcommerceSystemSettings.ascx" title="ecEcommerceSettings" type="View" />
|
||||
<Control key="credit_card" src="Ecommerce/PaymentMethodCreditCard.ascx" title="ecCreditCardMethod" type="View" />
|
||||
<Control key="2co" src="Ecommerce/PaymentMethod2Checkout.ascx" title="ec2CheckoutMethod" type="View" />
|
||||
<Control key="pp_account" src="Ecommerce/PaymentMethodPayPalAccount.ascx" title="ecPPAccountMethod" type="View" />
|
||||
<Control key="offline" src="Ecommerce/PaymentMethodOffline.ascx" title="ecOfflineMethod" type="View" />
|
||||
<Control key="enom" src="Ecommerce/DomainRegistrarEnom.ascx" title="ecEnomRegistrar" type="View" />
|
||||
<Control key="directi" src="Ecommerce/DomainRegistrarDirecti.ascx" title="ecDirectiRegistrar" type="View" />
|
||||
<Control key="new_invoice" src="Ecommerce/NotificationNewInvoice.ascx" title="ecNotifyNewInvoice" type="View" />
|
||||
<Control key="payment_rcvd" src="Ecommerce/NotificationPaymentReceived.ascx" title="ecNotifyPaymentRcvd" type="View" />
|
||||
<Control key="svc_activated" src="Ecommerce/NotificationServiceActivated.ascx" title="ecNotifySvcActivated" type="View" />
|
||||
<Control key="svc_suspended" src="Ecommerce/NotificationServiceSuspended.ascx" title="ecNotifySvcSuspended" type="View" />
|
||||
<Control key="svc_cancelled" src="Ecommerce/NotificationServiceCancelled.ascx" title="ecNotifySvcCancelled" type="View" />
|
||||
<Control key="terms_conds" src="Ecommerce/TermsAndConditionsEdit.ascx" title="ecTermsAndConds" type="View" />
|
||||
<Control key="prov_settings" src="Ecommerce/ProvisioningSettingsEdit.ascx" title="ecProvSettings" type="View" />
|
||||
<Control key="welcome_msg" src="Ecommerce/StorefrontWelcomeEdit.ascx" title="ecStorefronWelcomeMsg" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecCustomersServices">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/CustomersServices.ascx" title="ecCustomersServices" type="View" icon="3d_level_48.png" />
|
||||
<Control key="view_svc" src="Ecommerce/CustomersServicesViewService.ascx" title="ecServiceDetails" type="View" icon="3d_info_48.png" />
|
||||
<Control key="upgrade_svc" src="Ecommerce/CustomersServicesUpgradeService.ascx" title="ecServiceUpgrade" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecCustomerPaymentProfile">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/CustomerPaymentProfile.ascx" title="ecCustomerPaymentProfile" type="View" icon="3d_level_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecCustomersPayments">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/CustomersPayments.ascx" title="ecCustomersPayments" type="View" icon="reward_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecCustomersInvoices">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/CustomersInvoices.ascx" title="ecCustomersInvoices" type="View" icon="invoice_48.png"/>
|
||||
<Control key="view_invoice" src="Ecommerce/CustomersInvoicesViewInvoice.ascx" title="ecInvoiceDetails" icon="invoice_info_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecStorefrontWelcome">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/StorefrontWelcome.ascx" title="ecStorefrontWelcome" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecQuickSignup">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/QuickSignup.ascx" title="ecQuickSignup" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecViewCategory">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/StorefrontViewCategory.ascx" title="ecViewCategory" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecProductDetails">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/ViewProductDetails.ascx" title="ecProductDetails" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecTaxations">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/Taxations.ascx" title="ecTaxations" type="View" />
|
||||
<Control key="add_tax" src="Ecommerce/TaxationsAddTax.ascx" title="ecAddTax" type="View" />
|
||||
<Control key="edit_tax" src="Ecommerce/TaxationsEditTax.ascx" title="ecEditTax" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecBillingCycles">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/BillingCycles.ascx" title="ecBillingCycles" type="View" />
|
||||
<Control key="add_billingcycle" src="Ecommerce/BillingCyclesAddCycle.ascx" title="ecAddBillingCycle" type="View" />
|
||||
<Control key="edit_billingcycle" src="Ecommerce/BillingCyclesEditCycle.ascx" title="ecEditBillingCycle" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecHostingPlans">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/HostingPlans.ascx" title="ecHostingPlans" type="View" />
|
||||
<Control key="add_hostingplan" src="Ecommerce/HostingPlansAddPlan.ascx" title="ecAddHostingPlan" type="View" />
|
||||
<Control key="edit_hostingplan" src="Ecommerce/HostingPlansEditPlan.ascx" title="ecEditHostingPlan" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecDomainNames">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/DomainNames.ascx" title="ecDomainNames" type="View" />
|
||||
<Control key="add_tld" src="Ecommerce/DomainNamesAddDomain.ascx" title="ecAddDomainName" type="View" />
|
||||
<Control key="edit_tld" src="Ecommerce/DomainNamesEditDomain.ascx" title="ecEditDomainName" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecHostingAddons">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/HostingAddons.ascx" title="ecHostingAddons" type="View" icon="webcam_48.png" />
|
||||
<Control key="add_hostingaddon" src="Ecommerce/HostingAddonsAddAddon.ascx" title="ecAddHostingAddon" type="View" icon="webcam_add_48.png" />
|
||||
<Control key="edit_hostingaddon" src="Ecommerce/HostingAddonsEditAddon.ascx" title="ecEditHostingAddon" type="View" icon="webcam_write_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecCategories">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/Categories.ascx" title="ecCategories" type="View" icon="inventory_48.png" />
|
||||
<Control key="AddItem" src="Ecommerce/CategoriesAddCategory.ascx" title="ecAddCategory" type="View" icon="inventory_add_48.png" />
|
||||
<Control key="EditItem" src="Ecommerce/CategoriesEditCategory.ascx" title="ecEditCategory" type="View" icon="inventory_write_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecOrderCheckout">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/OrderCheckout.ascx" title="ecOrderCheckout" type="View" icon="invoice_next_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecOrderComplete">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/OrderComplete.ascx" title="ecOrderComplete" type="View" icon="invoice_ok_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecOrderFailed">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/OrderFailed.ascx" title="ecOrderFailed" type="View" icon="invoice_close_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecOrderProduct">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/StorefrontOrderProduct.ascx" title="ecOrderProduct" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecStorefrontMenu">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/StorefrontMenu.ascx" title="ecStorefrontCatalogMenu" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ecTermsAndConditions">
|
||||
<Controls>
|
||||
<Control key="" src="Ecommerce/TermsAndConditions.ascx" title="ecTermsAndConditions" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
</ModuleDefinitions>
|
|
@ -1,226 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Pages>
|
||||
|
||||
<include file="ModulesData.config" />
|
||||
|
||||
<Page name="QuickSignup" roles="?" hidden="true" skin="Storefront.ascx" adminskin="Storefront.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecQuickSignup" title="ecQuickSignup" container="Clear.ascx" />
|
||||
</Content>
|
||||
</Page>
|
||||
|
||||
<Page name="ecOrderCheckout" roles="*" hidden="true" skin="Storefront.ascx" adminskin="Storefront.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecOrderCheckout" title="ecOrderCheckout" />
|
||||
</Content>
|
||||
</Page>
|
||||
|
||||
<Page name="ecOrderComplete" roles="*" hidden="true" skin="Storefront.ascx" adminskin="Storefront.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecOrderComplete" title="ecOrderComplete" />
|
||||
</Content>
|
||||
</Page>
|
||||
|
||||
<Page name="ecOrderFailed" roles="*" hidden="true" skin="Storefront.ascx" adminskin="Storefront.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecOrderFailed" title="ecOrderFailed" />
|
||||
</Content>
|
||||
</Page>
|
||||
|
||||
<Page name="ecTermsAndConditions" roles="?" hidden="true" skin="SimpleWhite.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecTermsAndConditions" title="ecTermsAndConditions" container="Clear.ascx" />
|
||||
</Content>
|
||||
</Page>
|
||||
|
||||
<Page name="ecProductDetails" roles="?" hidden="true" skin="SimpleWhite.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecProductDetails" title="ecProductDetails" container="Clear.ascx" />
|
||||
</Content>
|
||||
</Page>
|
||||
|
||||
<Page name="ecOnlineStore" roles="?" hidden="true" skin="Storefront2.ascx" adminskin="Storefront2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="ecStorefrontMenu" title="ecStorefrontCatalogMenu" container="Clear.ascx" />
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecStorefrontWelcome" title="ecStorefrontWelcome" container="Clear.ascx" />
|
||||
</Content>
|
||||
<Pages>
|
||||
<Page name="ecViewCategory" roles="?" hidden="true" skin="Storefront2.ascx" adminskin="Storefront2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="ecStorefrontMenu" title="ecStorefrontCatalogMenu" container="Clear.ascx" />
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecViewCategory" title="ecViewCategory" container="Clear.ascx" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecOrderProduct" roles="?" hidden="true" skin="Storefront2.ascx" adminskin="Storefront2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="ecStorefrontMenu" title="ecStorefrontCatalogMenu" container="Clear.ascx" />
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecOrderProduct" title="ecOrderProduct" container="Clear.ascx" />
|
||||
</Content>
|
||||
</Page>
|
||||
</Pages>
|
||||
</Page>
|
||||
|
||||
<Page name="ecEcommerceAdmin" hidden="true" roles="Administrator,Reseller" enabled="false">
|
||||
<Pages>
|
||||
<Page name="ecEcommerceSettings" roles="Administrator,Reseller" adminskin="Browse1.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecEcommerceSettings" title="ecEcommerceSettings" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecBillingCycles" roles="Administrator,Reseller" adminskin="Browse2.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecBillingCycles" title="ecBillingCycles" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecHostingPlans" roles="Administrator,Reseller" adminskin="Browse2.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecHostingPlans" title="ecHostingPlans" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecHostingAddons" roles="Administrator,Reseller" adminskin="Browse2.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecHostingAddons" title="ecHostingAddons" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecDomainNames" roles="Administrator,Reseller" adminskin="Browse2.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecDomainNames" title="ecDomainNames" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecCategories" roles="Administrator,Reseller" adminskin="Browse2.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecCategories" title="ecCategories" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecTaxations" roles="Administrator,Reseller" adminskin="Browse2.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecTaxations" title="ecTaxations" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecCustomersPayments" roles="Administrator,Reseller" adminskin="Browse1.ascx" skin="Browse1.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecCustomersPayments" title="ecCustomersPayments">
|
||||
<Settings>
|
||||
<Add name="IsReseller" value="True" />
|
||||
</Settings>
|
||||
</Module>
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecCustomersInvoices" roles="Administrator,Reseller" adminskin="Browse1.ascx" skin="Browse1.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecCustomersInvoices" title="ecCustomersInvoices">
|
||||
<Settings>
|
||||
<Add name="IsReseller" value="True" />
|
||||
</Settings>
|
||||
</Module>
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecCustomersServices" roles="Administrator,Reseller" adminskin="Browse1.ascx" skin="Browse1.ascx">
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecCustomersServices" title="ecCustomersServices">
|
||||
<Settings>
|
||||
<Add name="IsReseller" value="True" />
|
||||
</Settings>
|
||||
</Module>
|
||||
</Content>
|
||||
</Page>
|
||||
</Pages>
|
||||
</Page>
|
||||
<Page name="ecMyEcommerce" hidden="true" enabled="false" roles="Reseller,User">
|
||||
<Pages>
|
||||
<Page name="ecPaymentProfile" roles="Reseller,User" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecCustomerPaymentProfile" title="ecCustomerPaymentProfile" />
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecMyPayments" roles="Reseller,User" adminskin="Browse1.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecCustomersPayments" title="ecMyPayments">
|
||||
<Settings>
|
||||
<Add name="IsReseller" value="False" />
|
||||
</Settings>
|
||||
</Module>
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecMyInvoices" roles="Reseller,User" adminskin="Browse1.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecCustomersInvoices" title="ecMyInvoices">
|
||||
<Settings>
|
||||
<Add name="IsReseller" value="False" />
|
||||
</Settings>
|
||||
</Module>
|
||||
</Content>
|
||||
</Page>
|
||||
<Page name="ecMyServices" roles="Reseller,User" adminskin="Browse1.ascx" skin="Browse2.ascx">
|
||||
<Content id="LeftPane">
|
||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||
<ModuleData ref="UserMenu"/>
|
||||
</Module>
|
||||
</Content>
|
||||
<Content id="ContentPane">
|
||||
<Module moduleDefinitionID="ecCustomersServices" title="ecMyServices">
|
||||
<Settings>
|
||||
<Add name="IsReseller" value="False" />
|
||||
</Settings>
|
||||
</Module>
|
||||
</Content>
|
||||
</Page>
|
||||
</Pages>
|
||||
</Page>
|
||||
</Pages>
|
|
@ -1,143 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ModulesData>
|
||||
|
||||
<ModuleData id="UserMenu">
|
||||
<MenuItem pageID="Home" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" selectedUserContext="User"/>
|
||||
<MenuItem pageID="UserCustomers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" selectedUserContext="Administrator,Reseller"/>
|
||||
<MenuItem pageID="UserSpaces" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" selectedUserContext="Administrator,Reseller,User"/>
|
||||
<MenuItem pageID="HostingPlans" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" selectedUserContext="Administrator,Reseller"/>
|
||||
<MenuItem pageID="HostingAddons" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" selectedUserContext="Administrator,Reseller"/>
|
||||
<MenuItem pageID="UserPeers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" selectedUserContext="Administrator,Reseller,User"/>
|
||||
<MenuItem pageID="UserTasks" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" selectedUserContext="Administrator,Reseller,User"/>
|
||||
<MenuItem pageID="AuditLog" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" selectedUserContext="Administrator,Reseller,User"/>
|
||||
<MenuItem pageID="ecOnlineStore" roles="Reseller,ResellerCSR,ResellerHelpdesk,User" selectedUserContext="Reseller,User" ecuser="true" />
|
||||
<MenuItem pageID="ecEcommerceAdmin" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" selectedUserContext="Administrator,Reseller,User" ecadmin="true">
|
||||
<MenuItems>
|
||||
<MenuItem pageID="ecEcommerceSettings" ecommerce="true" />
|
||||
<MenuItem pageID="ecBillingCycles" />
|
||||
<MenuItem pageID="ecHostingPlans" />
|
||||
<MenuItem pageID="ecHostingAddons" />
|
||||
<MenuItem pageID="ecDomainNames" />
|
||||
<MenuItem pageID="ecTaxations" />
|
||||
<MenuItem pageID="ecCategories" />
|
||||
<MenuItem pageID="ecCustomersPayments" />
|
||||
<MenuItem pageID="ecCustomersInvoices" />
|
||||
<MenuItem pageID="ecCustomersServices" />
|
||||
</MenuItems>
|
||||
</MenuItem>
|
||||
<MenuItem pageID="ecMyEcommerce" ecuser="true" roles="Reseller,ResellerCSR,ResellerHelpdesk,User" selectedUserContext="Reseller,User">
|
||||
<MenuItems>
|
||||
<MenuItem pageID="ecPaymentProfile" />
|
||||
<MenuItem pageID="ecMyPayments" />
|
||||
<MenuItem pageID="ecMyInvoices" />
|
||||
<MenuItem pageID="ecMyServices" />
|
||||
</MenuItems>
|
||||
</MenuItem>
|
||||
<!--MenuItem url="http://google.com" title="Google" target="_blank"/-->
|
||||
</ModuleData>
|
||||
|
||||
<ModuleData id="SpaceMenu">
|
||||
|
||||
<MenuItem pageID="SpaceDomains" resourceGroup="OS" />
|
||||
<MenuItem pageID="SpaceWebSites" resourceGroup="Web"/>
|
||||
<MenuItem pageID="SpaceWebIPAddresses" resourceGroup="Web" />
|
||||
<MenuItem pageID="SpaceFtpAccounts" resourceGroup="FTP"/>
|
||||
<MenuItem pageID="SpaceMail" resourceGroup="Mail" disabled="True">
|
||||
<MenuItems>
|
||||
<MenuItem pageID="SpaceMailAccounts" quota="Mail.Accounts"/>
|
||||
<MenuItem pageID="SpaceMailForwardings" quota="Mail.Forwardings"/>
|
||||
<MenuItem pageID="SpaceMailGroups" quota="Mail.Groups"/>
|
||||
<MenuItem pageID="SpaceMailLists" quota="Mail.Lists"/>
|
||||
<MenuItem pageID="SpaceMailDomains" resourceGroup="Mail"/>
|
||||
</MenuItems>
|
||||
</MenuItem>
|
||||
<MenuItem pageID="SpaceDatabases" disabled="True">
|
||||
<MenuItems>
|
||||
<MenuItem pageID="SpaceMsSql2000" resourceGroup="MsSQL2000"/>
|
||||
<MenuItem pageID="SpaceMsSql2005" resourceGroup="MsSQL2005"/>
|
||||
<MenuItem pageID="SpaceMsSql2008" resourceGroup="MsSQL2008"/>
|
||||
<MenuItem pageID="SpaceMsSql2012" resourceGroup="MsSQL2012"/>
|
||||
<MenuItem pageID="SpaceMsSql2014" resourceGroup="MsSQL2014"/>
|
||||
<MenuItem pageID="SpaceMySql4" resourceGroup="MySQL4"/>
|
||||
<MenuItem pageID="SpaceMySql5" resourceGroup="MySQL5"/>
|
||||
</MenuItems>
|
||||
</MenuItem>
|
||||
<MenuItem pageID="SpaceSharePoint" resourceGroup="SharePoint" disabled="True">
|
||||
<MenuItems>
|
||||
<MenuItem pageID="SpaceSharePointSites"/>
|
||||
<MenuItem pageID="SpaceSharePointUsers"/>
|
||||
</MenuItems>
|
||||
</MenuItem>
|
||||
<MenuItem pageID="SpaceVPS" resourceGroup="VPS"/>
|
||||
<MenuItem pageID="SpaceVPSForPC" resourceGroup="VPSForPC"/>
|
||||
<MenuItem pageID="SpaceExchangeServer" resourceGroup="Hosted Organizations"/>
|
||||
<MenuItem pageID="SpaceSharedSSL" resourceGroup="OS" quota="Web.SharedSSL"/>
|
||||
<MenuItem pageID="SpaceAdvancedStatistics" resourceGroup="Statistics"/>
|
||||
<MenuItem pageID="SpaceOdbc" resourceGroup="OS" quota="OS.ODBC"/>
|
||||
<MenuItem pageID="SpaceFileManager" resourceGroup="OS" quota="OS.FileManager"/>
|
||||
<MenuItem pageID="SpaceWebApplicationsGallery" resourceGroup="Web" quota="Web.WebAppGallery"/>
|
||||
<MenuItem pageID="SpaceApplicationsInstaller" resourceGroup="OS" quota="OS.AppInstaller"/>
|
||||
<MenuItem pageID="SpaceScheduledTasks" resourceGroup="OS" quota="OS.ScheduledTasks"/>
|
||||
<!--CO Changes-->
|
||||
<MenuItem pageID="SpaceApplyEnableHardQuotaFeature" resourceGroup="OS" quota=""/>
|
||||
<!--END-->
|
||||
<!--MenuItem url="http://phpmysqladmin.com" title="phpMyAdmin" target="_blank"
|
||||
resourceGroup="MySQL4"/-->
|
||||
|
||||
<MenuItem pageID="LyncPhoneNumbers" resourceGroup="Hosted Organizations" />
|
||||
|
||||
</ModuleData>
|
||||
|
||||
<ModuleData id="SpaceIcons">
|
||||
<Group pageID="SpaceHome" titleresourcekey="System">
|
||||
<Icon pageID="SpaceHome" titleresourcekey="SpaceStatistics" imageUrl="icons/spacehome_48.png" />
|
||||
<Icon pageID="SpaceDomains" resourceGroup="OS" imageUrl="icons/domains_48.png" />
|
||||
<Icon pageID="SpaceFtpAccounts" resourceGroup="FTP" imageUrl="icons/ftp_48.png"/>
|
||||
<Icon pageID="SpaceFileManager" resourceGroup="OS" quota="OS.FileManager" imageUrl="icons/filemanager_48.png"/>
|
||||
<Icon pageID="SpaceApplicationsInstaller" resourceGroup="OS" quota="OS.AppInstaller" imageUrl="icons/applicationsinstaller_48.png"/>
|
||||
<Icon pageID="SpaceScheduledTasks" resourceGroup="OS" quota="OS.ScheduledTasks" imageUrl="icons/scheduledtasks_48.png"/>
|
||||
</Group>
|
||||
<Group pageID="SpaceWeb" titleresourcekey="Web" disabled="True">
|
||||
<Icon pageID="SpaceWebSites" resourceGroup="Web" imageUrl="icons/websites_48.png" />
|
||||
<Icon pageID="SpaceWebIPAddresses" resourceGroup="Web" imageUrl="icons/webipaddresses_48.png" />
|
||||
<Icon pageID="SpaceSharedSSL" resourceGroup="OS" quota="Web.SharedSSL" imageUrl="icons/sharedssl_48.png" />
|
||||
<Icon pageID="SpaceAdvancedStatistics" resourceGroup="Statistics" imageUrl="icons/advancedstatistics_48.png" />
|
||||
<Icon pageID="SpaceWebApplicationsGallery" resourceGroup="Web" quota="Web.WebAppGallery" imageUrl="icons/webapplicationsgallery_48.png"/>
|
||||
</Group>
|
||||
<Group pageID="SpaceMail" titleresourcekey="Email" resourceGroup="Mail" disabled="True">
|
||||
<Icon pageID="SpaceMailAccounts" quota="Mail.Accounts" imageUrl="icons/mail_accounts_48.png"/>
|
||||
<Icon pageID="SpaceMailForwardings" quota="Mail.Forwardings" imageUrl="icons/mail_forwardings_48.png"/>
|
||||
<Icon pageID="SpaceMailGroups" quota="Mail.Groups" imageUrl="icons/mail_groups_48.png"/>
|
||||
<Icon pageID="SpaceMailLists" quota="Mail.Lists" imageUrl="icons/mail_lists_48.png"/>
|
||||
<Icon pageID="SpaceMailDomains" resourceGroup="Mail" imageUrl="icons/mail_domains_48.png"/>
|
||||
</Group>
|
||||
<Group pageID="SpaceDatabases" titleresourcekey="Databases" disabled="True">
|
||||
<Icon pageID="SpaceMsSql2000" resourceGroup="MsSQL2000" imageUrl="icons/mssql_48.png"/>
|
||||
<Icon pageID="SpaceMsSql2005" resourceGroup="MsSQL2005" imageUrl="icons/mssql_48.png"/>
|
||||
<Icon pageID="SpaceMsSql2008" resourceGroup="MsSQL2008" imageUrl="icons/mssql_48.png"/>
|
||||
<Icon pageID="SpaceMsSql2012" resourceGroup="MsSQL2012" imageUrl="icons/mssql_48.png"/>
|
||||
<Icon pageID="SpaceMsSql2014" resourceGroup="MsSQL2014" imageUrl="icons/mssql_48.png"/>
|
||||
<Icon pageID="SpaceMySql4" resourceGroup="MySQL4" imageUrl="icons/mysql_48.png"/>
|
||||
<Icon pageID="SpaceMySql5" resourceGroup="MySQL5" imageUrl="icons/mysql_48.png"/>
|
||||
<Icon pageID="SpaceOdbc" resourceGroup="OS" quota="OS.ODBC" imageUrl="icons/odbc_48.png"/>
|
||||
</Group>
|
||||
<Group pageID="SpaceHome" titleresourcekey="VPS" disabled="True">
|
||||
<Icon pageID="SpaceVPS" resourceGroup="VPS" imageUrl="icons/vps_48.png" />
|
||||
<Icon pageID="SpaceVPSForPC" resourceGroup="VPSForPC" imageUrl="icons/vpsforpc_48.png" />
|
||||
</Group>
|
||||
<!--
|
||||
<Group pageID="SpaceSharePoint" resourceGroup="SharePoint" disabled="True">
|
||||
<Icon pageID="SpaceSharePointSites" imageUrl="icons/colors_48.png"/>
|
||||
<Icon pageID="SpaceSharePointUsers" imageUrl="icons/colors_48.png"/>
|
||||
</Group>
|
||||
-->
|
||||
</ModuleData>
|
||||
|
||||
<ModuleData id="HostedSolutionMenu">
|
||||
<MenuItem pageID="SpaceDomains"/>
|
||||
<MenuItem pageID="Userds"/>
|
||||
<MenuItem pageID="SpaceOrganizationHostedSharePoint" resourceGroup="Hosted SharePoint"/>
|
||||
<MenuItem pageID="SpaceExchanged"/>
|
||||
</ModuleData>
|
||||
|
||||
</ModulesData>
|
|
@ -1,43 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<SiteSettings>
|
||||
<!-- Display Settings -->
|
||||
<PortalName>WebsitePanel</PortalName>
|
||||
<!-- Enterprise Server -->
|
||||
<EnterpriseServer>http://127.0.0.1:9555</EnterpriseServer>
|
||||
<!-- General Settings -->
|
||||
<CultureCookieName>UserCulture</CultureCookieName>
|
||||
<ThemeCookieName>UserTheme</ThemeCookieName>
|
||||
<!-- Mail Settings -->
|
||||
<AdminEmail>
|
||||
</AdminEmail>
|
||||
<SmtpHost>
|
||||
</SmtpHost>
|
||||
<SmtpPort>
|
||||
</SmtpPort>
|
||||
<SmtpUsername>
|
||||
</SmtpUsername>
|
||||
<SmtpPassword>
|
||||
</SmtpPassword>
|
||||
<FromEmail>
|
||||
</FromEmail>
|
||||
<!-- Pages -->
|
||||
<DefaultPage>Home</DefaultPage>
|
||||
<LoginPage>Login</LoginPage>
|
||||
<UserHomePage>Home</UserHomePage>
|
||||
<UserCustomersPage>UserCustomers</UserCustomersPage>
|
||||
<SpaceHomePage>SpaceHome</SpaceHomePage>
|
||||
<NestedSpacesPage>NestedSpaces</NestedSpacesPage>
|
||||
<UsersSearchPage>SearchUsers</UsersSearchPage>
|
||||
<SpacesSearchPage>SearchSpaces</SpacesSearchPage>
|
||||
<LoggedUserAccountPage>LoggedUserDetails</LoggedUserAccountPage>
|
||||
<!-- Skins and Containers -->
|
||||
<PortalSkin>Browse2.ascx</PortalSkin>
|
||||
<PortalContainer>Browse.ascx</PortalContainer>
|
||||
<AdminSkin>Edit.ascx</AdminSkin>
|
||||
<AdminContainer>Edit.ascx</AdminContainer>
|
||||
<!-- SSL Settings -->
|
||||
<UseSSL>false</UseSSL>
|
||||
<HideDemoCheckbox>false</HideDemoCheckbox>
|
||||
<HideThemeAndLocale>false</HideThemeAndLocale>
|
||||
<ExcludedRolesToLogin></ExcludedRolesToLogin>
|
||||
</SiteSettings>
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<SupportedLocales>
|
||||
<Locale name="English" key="en-US" fallback="" />
|
||||
</SupportedLocales>
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Themes>
|
||||
<Theme name="Default" title="Energy Blue" />
|
||||
</Themes>
|
|
@ -1,664 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ModuleDefinitions>
|
||||
|
||||
<!-- Common Modules -->
|
||||
<ModuleDefinition id="SystemSettings">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SystemSettings.ascx" title="SearchUsers" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="TextHTML">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/TextHTML.ascx" title="TextHTML" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<!-- Common Modules -->
|
||||
<ModuleDefinition id="SearchUsers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SearchUsers.ascx" title="SearchUsers" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SearchSpaces">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SearchSpaces.ascx" title="SearchSpaces" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<!-- User Account -->
|
||||
<ModuleDefinition id="LoggedUserDetails">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/LoggedUserEditDetails.ascx" title="LoggedUserDetails" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserAccountMenu">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UserAccountMenu.ascx" title="UserAccountMenu" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserCustomers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UserCustomers.ascx" title="UserCustomersSummary" type="View" />
|
||||
<Control key="create_user" src="WebsitePanel/UserCreateUserAccount.ascx" title="UserCreateUserAccount" type="View" icon="user_add_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserCustomersSummary">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UserCustomersSummary.ascx" title="UserCustomersSummary" type="View" />
|
||||
<Control key="create_user" src="WebsitePanel/UserCreateUserAccount.ascx" title="UserCreateUserAccount" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserSpaces">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UserSpaces.ascx" title="UserSpaces" type="View" />
|
||||
<Control key="create_space" src="WebsitePanel/UserCreateSpace.ascx" title="UserCreateSpace" type="View" icon="sphere_add_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserNotes">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UserAccountNotes.ascx" title="UserAccountNotes" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserDetails">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UserAccountDetails.ascx" title="UserAccountDetails" type="View" />
|
||||
<Control key="summary_letter" src="WebsitePanel/UserAccountSummaryLetter.ascx" title="UserAccountSummaryLetter" type="View" icon="admin_info_48.png" />
|
||||
<Control key="edit_details" src="WebsitePanel/UserAccountEditDetails.ascx" title="UserAccountEditDetails" type="View" icon="admin_write_48.png" />
|
||||
<Control key="change_password" src="WebsitePanel/UserAccountChangePassword.ascx" title="UserAccountChangePassword" type="View" icon="admin_lock_48.png" />
|
||||
<Control key="delete" src="WebsitePanel/UserDeleteUserAccount.ascx" title="UserDeleteUserAccount" type="View" icon="admin_close_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserResellerSettings">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UserAccountSettings.ascx" title="UserAccountSettings" type="View" />
|
||||
<Control key="mail_templates" src="WebsitePanel/UserAccountMailTemplateSettings.ascx" title="UserAccountMailTemplateSettings" type="View" icon="user_config_48.png" />
|
||||
<Control key="policies" src="WebsitePanel/UserAccountPolicySettings.ascx" title="UserAccountPolicySettings" type="View" icon="user_config_48.png" />
|
||||
<Control key="edit_settings" src="WebsitePanel/SettingsEditor.ascx" title="UserAccountSettingsEditor" type="View" icon="user_config_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserTools">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UserAccountTools.ascx" title="UserAccountTools" type="View" />
|
||||
<Control key="backup" src="WebsitePanel/BackupWizard.ascx" title="BackupUser" type="View" />
|
||||
<Control key="restore" src="WebsitePanel/RestoreWizard.ascx" title="RestoreUser" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="Tasks">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/Tasks.ascx" title="Tasks" type="View" />
|
||||
<Control key="view_details" src="WebsitePanel/TasksTaskDetails.ascx" title="TasksTaskDetails" type="View" icon="hourglass_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
|
||||
<!-- Space -->
|
||||
<ModuleDefinition id="SpaceMenu">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceMenu.ascx" title="SpaceMenu" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="HostedSolutionMenu">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceMenu.ascx" title="SpaceMenu" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="SpaceQuotas">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceQuotas.ascx" title="SpaceQuotas" type="View" />
|
||||
<Control key="view_quotas" src="WebsitePanel/SpaceViewQuotas.ascx" title="SpaceViewQuotas" type="View" icon="sphere_level_48.png" />
|
||||
<Control key="view_addon" src="WebsitePanel/SpaceViewAddon.ascx" title="SpaceViewAddon" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SpaceNestedSpacesSummary">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceNestedSpacesSummary.ascx" title="SpaceNestedSpacesSummary" type="View" />
|
||||
<Control key="spaces" src="WebsitePanel/SpaceNestedSpaces.ascx" title="SpaceNestedSpaces" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SpaceNotes">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceNotes.ascx" title="SpaceNotes" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SpaceDetails">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceDetails.ascx" title="SpaceDetails" type="View" />
|
||||
<Control key="edit_details" src="WebsitePanel/SpaceEditDetails.ascx" title="SpaceEditDetails" type="View" icon="sphere_write_48.png" />
|
||||
<Control key="summary_letter" src="WebsitePanel/SpaceSummaryLetter.ascx" title="SpaceSummaryLetter" type="View" icon="sphere_info_48.png" />
|
||||
<Control key="delete" src="WebsitePanel/SpaceDeleteSpace.ascx" title="SpaceDeleteSpace" type="View" icon="sphere_close_48.png" />
|
||||
<Control key="edit_addon" src="WebsitePanel/SpaceEditAddon.ascx" title="SpaceEditAddon" type="View" icon="sphere_star_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SpaceSettings">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceSettings.ascx" title="SpaceSettings" type="View" />
|
||||
<Control key="edit_settings" src="WebsitePanel/SpaceSettingsEditor.ascx" title="SpaceSettingsEditor" type="View" icon="sphere_config_48.png" />
|
||||
<Control key="edit_globaldns" src="WebsitePanel/SpaceEditDnsRecords.ascx" title="SpaceEditDnsRecords" type="View" icon="sphere_config_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SpaceTools">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceTools.ascx" title="SpaceTools" type="View" />
|
||||
<Control key="backup" src="WebsitePanel/BackupWizard.ascx" title="BackupSpace" type="View" />
|
||||
<Control key="restore" src="WebsitePanel/RestoreWizard.ascx" title="RestoreSpace" type="View" />
|
||||
<Control key="import" src="WebsitePanel/SpaceImportResources.ascx" title="ImportSpaceResources" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="NestedSpaces">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SpaceNestedSpaces.ascx" title="SpaceNestedSpaces" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
|
||||
<ModuleDefinition id="IPAddresses">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/IPAddresses.ascx" title="IPAddressesManager" type="View" />
|
||||
<Control key="add_ip" src="WebsitePanel/IPAddressesAddIPAddress.ascx" title="AddIPAddress" type="View" icon="adress_add_48.png" />
|
||||
<Control key="edit_ip" src="WebsitePanel/IPAddressesEditIPAddress.ascx" title="EditIPAddress" type="View" icon="adress_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="PhoneNumbers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/PhoneNumbers.ascx" title="PhoneNumbers" type="View" />
|
||||
<Control key="add_phone" src="WebsitePanel/PhoneNumbersAddPhoneNumber.ascx" title="AddPhoneNumber" type="View" icon="adress_add_48.png" />
|
||||
<Control key="edit_phone" src="WebsitePanel/PhoneNumbersEditPhoneNumber.ascx" title="EditPhoneNumber" type="View" icon="adress_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="RDSServers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/RDSServers.ascx" title="RDSServers" type="View" />
|
||||
<Control key="add_rdsserver" src="WebsitePanel/RDSServersAddserver.ascx" title="RDSServersAddserver" type="View" icon="computer_add_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="Servers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/Servers.ascx" title="Servers" type="View" />
|
||||
<Control key="add_ip" src="WebsitePanel/IPAddressesAddIPAddress.ascx" title="AddIPAddress" type="View" icon="adress_add_48.png" />
|
||||
<Control key="add_server" src="WebsitePanel/ServersAddServer.ascx" title="AddServer" type="View" icon="computer_add_48.png" />
|
||||
<Control key="add_service" src="WebsitePanel/ServersAddService.ascx" title="AddNewService" type="View" icon="computer_config_48.png" />
|
||||
<Control key="edit_eventviewer" src="WebsitePanel/ServersEditEventViewer.ascx" title="ServerEventViewer" type="View" icon="table_48.png" />
|
||||
<Control key="edit_ip" src="WebsitePanel/IPAddressesEditIPAddress.ascx" title="EditIPAddress" type="View" icon="adress_48.png" />
|
||||
<Control key="edit_processes" src="WebsitePanel/ServersEditSystemProcesses.ascx" title="ManageServerSystemProcesses" type="View" icon="windows_window_48.png" />
|
||||
<Control key="edit_reboot" src="WebsitePanel/ServersEditReboot.ascx" title="RebootServer" type="View" icon="switch_off_48.png" />
|
||||
<Control key="edit_server" src="WebsitePanel/ServersEditServer.ascx" title="ServerProperties" type="View" icon="computer_48.png" />
|
||||
<Control key="edit_service" src="WebsitePanel/ServersEditService.ascx" title="ServiceProperties" type="View" icon="computer_config_48.png" />
|
||||
<Control key="edit_termservices" src="WebsitePanel/ServersEditTerminalConnections.ascx" title="ManageTerminalConnections" type="View" icon="windows_window_zoom_48.png" />
|
||||
<Control key="edit_winservices" src="WebsitePanel/ServersEditWindowsServices.ascx" title="ManageWindowsServices" type="View" icon="windows_window_config_48.png" />
|
||||
<Control key="edit_platforminstaller" src="WebsitePanel/ServersEditWebPlatformInstaller.ascx" title="ManagePlatformInstaller" type="View" icon="computer_config_48.png" />
|
||||
<Control key="backup" src="WebsitePanel/BackupWizard.ascx" title="BackupServer" type="View" />
|
||||
<Control key="restore" src="WebsitePanel/RestoreWizard.ascx" title="RestoreServer" type="View" />
|
||||
<Control key="edit_htaccessfolder" src="WebsitePanel/WebSitesEditHeliconApeFolder.ascx" title="HeliconApeFolderProperties" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="VirtualServers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/VirtualServers.ascx" title="VirtualServers" type="View" />
|
||||
<Control key="add_server" src="WebsitePanel/VirtualServersAddServer.ascx" title="AddNewVirtualServer" type="View" icon="network_add_48.png" />
|
||||
<Control key="add_services" src="WebsitePanel/VirtualServersAddServices.ascx" title="AddVirtualServerServices" type="View" icon="network_config_48.png" />
|
||||
<Control key="edit_server" src="WebsitePanel/VirtualServersEditServer.ascx" title="EditVirtualServer" type="View" icon="network_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MyUsers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/Users.ascx" title="Users" type="View" />
|
||||
<Control key="delete_user" src="WebsitePanel/UsersDeleteUser.ascx" title="DeleteUserAccount" type="View" />
|
||||
<Control key="edit_user" src="WebsitePanel/UsersEditUser.ascx" title="EditUserDetails" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UserPeers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/Peers.ascx" title="PeerAccounts" type="View" />
|
||||
<Control key="edit_peer" src="WebsitePanel/PeersEditPeer.ascx" title="EditPeerAccount" type="View" icon="motion_blur_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="HostingPlans">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/HostingPlans.ascx" title="HostingPlans" type="View" />
|
||||
<Control key="edit_plan" src="WebsitePanel/HostingPlansEditPlan.ascx" title="EditHostingPlan" type="View" icon="inventory_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="HostingAddons">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/HostingAddons.ascx" title="HostingAddOns" type="View" />
|
||||
<Control key="edit_addon" src="WebsitePanel/HostingAddonsEditAddon.ascx" title="EditHostingAddOn" type="View" icon="inventory_add_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="Domains">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/Domains.ascx" title="Domains" type="View" />
|
||||
<Control key="add_domain" src="WebsitePanel/DomainsAddDomainSelectType.ascx" title="AddNewDomain" type="View" icon="world_add_48.png" />
|
||||
<Control key="add_domain_step2" src="WebsitePanel/DomainsAddDomain.ascx" title="AddNewDomain" type="View" icon="world_add_48.png" />
|
||||
<Control key="edit_item" src="WebsitePanel/DomainsEditDomain.ascx" title="EditDomain" type="View" icon="world_48.png" />
|
||||
<Control key="zone_records" src="WebsitePanel/DnsZoneRecords.ascx" title="DNSZoneRecords" type="View" icon="world_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
|
||||
|
||||
<ModuleDefinition id="HostedSharePointSiteCollections">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/HostedSharePointSiteCollections.ascx" title="HostedSharePointSiteCollections" type="View" icon="colors_48.png"/>
|
||||
<Control key="edit_item" src="WebsitePanel/HostedSharePointEditSiteCollection.ascx" title="HostedSharePointSiteCollection" type="View" icon="colors_48.png" />
|
||||
<Control key="backup" src="WebsitePanel/HostedSharePointBackupSiteCollection.ascx" title="HostedSharePointBackupSiteCollection" type="View"/>
|
||||
<Control key="restore" src="WebsitePanel/HostedSharePointRestoreSiteCollection.ascx" title="HostedSharePointRestoreSiteCollection" type="View"/>
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
|
||||
<ModuleDefinition id="FileManager">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/FileManager.ascx" title="HostingSpaceFiles" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="WebSites">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/WebSites.ascx" title="WebSites" type="View" />
|
||||
<Control key="add_pointer" src="WebsitePanel/WebSitesAddPointer.ascx" title="AddWebSiteDomainPointer" type="View" />
|
||||
<Control key="add_site" src="WebsitePanel/WebSitesAddSite.ascx" title="AddWebSite" type="View" icon="location_add_48.png" />
|
||||
<Control key="add_vdir" src="WebsitePanel/WebSitesAddVirtualDir.ascx" title="AddVirtualDirectory" type="View" icon="file_add_48.png" />
|
||||
<Control key="edit_item" src="WebsitePanel/WebSitesEditSite.ascx" title="WebSiteProperties" type="View" icon="location_48.png" />
|
||||
<Control key="edit_vdir" src="WebsitePanel/WebSitesEditVirtualDir.ascx" title="VirtualDirectoryProperties" type="View" icon="file_48.png" />
|
||||
<Control key="edit_webfolder" src="WebsitePanel/WebSitesEditWebFolder.ascx" title="SecuredFolderProperties" type="View" />
|
||||
<Control key="edit_webgroup" src="WebsitePanel/WebSitesEditWebGroup.ascx" title="SecureGroupProperties" type="View" />
|
||||
<Control key="edit_webuser" src="WebsitePanel/WebSitesEditWebUser.ascx" title="SecureUserProperties" type="View" />
|
||||
<Control key="add_domain" src="WebsitePanel/DomainsAddDomain.ascx" title="AddDomain" type="View" />
|
||||
<Control key="edit_htaccessfolder" src="WebsitePanel/WebSitesEditHeliconApeFolder.ascx" title="HeliconApeFolderProperties" type="View" />
|
||||
<Control key="edit_htaccessfolderauth" src="WebsitePanel/WebSitesEditHeliconApeFolderAuth.ascx" title="HeliconApeFolderAuthProperties" type="View" />
|
||||
<Control key="edit_htaccessgroup" src="WebsitePanel/WebSitesEditHeliconApeGroup.ascx" title="HeliconApeGroupProperties" type="View" />
|
||||
<Control key="edit_htaccessuser" src="WebsitePanel/WebSitesEditHeliconApeUser.ascx" title="HeliconApeUserProperties" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="WebSiteIPAddresses">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/WebSitesIPAddresses.ascx" title="WebSitesIPAddresses" type="View" />
|
||||
<Control key="allocate_addresses" src="WebsitePanel/WebSitesAllocateIPAddresses.ascx" title="WebSitesAllocateIPAddresses" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="LyncPhoneNumbers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/LyncPhoneNumbers.ascx" title="LyncPhoneNumbers" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="FtpAccounts">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/FtpAccounts.ascx" title="FTPAccounts" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/FtpAccountEditAccount.ascx" title="FTPAccountProperties" type="View" icon="folder_up_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MailAccounts">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/MailAccounts.ascx" title="MailAccounts" type="View" />
|
||||
<Control key="add_domain" src="WebsitePanel/DomainsAddDomain.ascx" title="AddNewDomain" type="View" icon="" />
|
||||
<Control key="edit_item" src="WebsitePanel/MailAccountsEditAccount.ascx" title="MailAccountProperties" type="View" icon="accounting_mail_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MailForwardings">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/MailForwardings.ascx" title="MailForwardings" type="View" />
|
||||
<Control key="add_domain" src="WebsitePanel/DomainsAddDomain.ascx" title="AddNewDomain" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/MailForwardingsEditForwarding.ascx" title="MailForwardingProperties" type="View" icon="safe-mail_next_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MailGroups">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/MailGroups.ascx" title="MailGroups" type="View" />
|
||||
<Control key="add_domain" src="WebsitePanel/DomainsAddDomain.ascx" title="AddNewDomain" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/MailGroupsEditGroup.ascx" title="MailGroupProperties" type="View" icon="contacts_mail_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MailLists">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/MailLists.ascx" title="MailLists" type="View" />
|
||||
<Control key="add_domain" src="WebsitePanel/DomainsAddDomain.ascx" title="AddNewDomain" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/MailListsEditList.ascx" title="MailListProperties" type="View" icon="discussion_group_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MailDomains">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/MailDomains.ascx" title="MailDomains" type="View" />
|
||||
<Control key="add_domain" src="WebsitePanel/DomainsAddDomain.ascx" title="AddNewDomain" type="View" />
|
||||
<Control key="add_pointer" src="WebsitePanel/MailDomainsAddPointer.ascx" title="AddMailDomainPointer" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/MailDomainsEditDomain.ascx" title="MailDomainProperties" type="View" icon="web_mail_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SqlDatabases">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SqlDatabases.ascx" title="SQLDatabases" type="View" />
|
||||
<Control key="backup" src="WebsitePanel/SqlBackupDatabase.ascx" title="BackupSQLDatabase" type="View" icon="database2_save_48.png" />
|
||||
<Control key="edit_item" src="WebsitePanel/SqlEditDatabase.ascx" title="SQLDatabaseProperties" type="View" icon="database2_48.png" />
|
||||
<Control key="restore" src="WebsitePanel/SqlRestoreDatabase.ascx" title="RestoreSQLDatabase" type="View" icon="database2_reload_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SqlUsers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SqlUsers.ascx" title="SQLUsers" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/SqlEditUser.ascx" title="SQLUserProperties" type="View" icon="db_user_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SharePointUsers">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SharePointUsers.ascx" title="SharePointUsers" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/SharePointUsersEditUser.ascx" title="SharePointUserProperties" type="View" icon="user_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SharePointGroups">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SharePointGroups.ascx" title="SharePointGroups" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/SharePointGroupsEditGroup.ascx" title="SharePointGroup" type="View" icon="group_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="AdvancedStatistics">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/Statistics.ascx" title="AdvancedStatistics" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/StatisticsEditStatistics.ascx" title="AdvancedStatisticsInstallation" type="View" icon="stadistics_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="UsersWizard">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/UsersCreationWizard.ascx" title="AccountCreationWizard" type="View" />
|
||||
<Control key="complete" src="WebsitePanel/UsersCreationWizardComplete.ascx" title="AccountCreationComplete" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="WebApplicationsGallery">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/WebApplicationGallery.ascx" title="WebApplicationsGallery" type="View" />
|
||||
<Control key="complete" src="WebsitePanel/InstallerInstallApplicationComplete.ascx" title="InstallationComplete" type="View" icon="dvd_disc_ok_48.png" />
|
||||
<Control key="edit" src="WebsitePanel/WebApplicationGalleryInstall.ascx" title="DownloadWebApplication" type="View" icon="dvd_disc_48.png" />
|
||||
<Control key="editParams" src="WebsitePanel/WebApplicationGalleryParams.ascx" title="WebApplicationParameters" type="View" icon="dvd_disc_48.png" />
|
||||
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
|
||||
<ModuleDefinition id="Login">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/Login.ascx" title="SignIn" type="View" />
|
||||
<Control key="forgot_password" src="WebsitePanel/LoginForgotPassword.ascx" title="PasswordReminder" type="View" />
|
||||
<Control key="scpa" src="WebsitePanel/SetupControlPanelAccounts.ascx" title="SetupControlPanelAccounts" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="AuditLog">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/AuditLog.ascx" title="AuditLog" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ScheduledTasks">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/Schedules.ascx" title="ScheduledTasks" type="View" />
|
||||
<Control key="edit" src="WebsitePanel/SchedulesEditSchedule.ascx" title="ScheduledTaskProperties" type="View" icon="calendar_month_2_clock_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="OverusageReport">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/OverusageReport.ascx" title="OverusageReport" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="DiskspaceReport">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/DiskspaceReport.ascx" title="DiskSpaceSummary" type="View" />
|
||||
<Control key="edit" src="WebsitePanel/DiskspaceReportPackageDetails.ascx" title="HostingSpaceDiskSpaceDetails" type="View" icon="stadistics_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="BandwidthReport">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/BandwidthReport.ascx" title="BandwidthReport" type="View" />
|
||||
<Control key="edit" src="WebsitePanel/BandwidthReportPackageDetails.ascx" title="HostingSpaceBandwidthDetails" type="View" icon="stadistics_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MyWeb">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/IconsPad.ascx" title="Icons" type="View" />
|
||||
<Control key="edit" src="WebsitePanel/IconsPadEditIcon.ascx" title="EditIconProperties" type="View" />
|
||||
<Control key="settings" src="WebsitePanel/IconsPadSettings.ascx" title="IconsPadSettings" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MyMail">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/IconsPad.ascx" title="Icons" type="View" />
|
||||
<Control key="edit" src="WebsitePanel/IconsPadEditIcon.ascx" title="EditIconProperties" type="View" />
|
||||
<Control key="settings" src="WebsitePanel/IconsPadSettings.ascx" title="IconsPadSettings" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MyDatabases">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/IconsPad.ascx" title="Icons" type="View" />
|
||||
<Control key="edit" src="WebsitePanel/IconsPadEditIcon.ascx" title="EditIconProperties" type="View" />
|
||||
<Control key="settings" src="WebsitePanel/IconsPadSettings.ascx" title="IconsPadSettings" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="MyExtras">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/IconsPad.ascx" title="Icons" type="View" />
|
||||
<Control key="edit" src="WebsitePanel/IconsPadEditIcon.ascx" title="EditIconProperties" type="View" />
|
||||
<Control key="settings" src="WebsitePanel/IconsPadSettings.ascx" title="IconsPadSettings" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="ODBC">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/OdbcSources.ascx" title="ODBCDSNs" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/OdbcEditSource.ascx" title="ODBCDSNProperties" type="View" icon="export_db_back_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<ModuleDefinition id="SharePointSites">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SharePointSites.ascx" title="SharePointSites" type="View" />
|
||||
<Control key="backup" src="WebsitePanel/SharePointBackupSite.ascx" title="BackupSharePointSite" type="View" />
|
||||
<Control key="edit_item" src="WebsitePanel/SharePointEditSite.ascx" title="SharePointSite" type="View" icon="colors_48.png" />
|
||||
<Control key="install_webparts" src="WebsitePanel/SharePointInstallWebPartPackage.ascx" title="InstallSharePointWebPartsPackage" type="View" />
|
||||
<Control key="restore" src="WebsitePanel/SharePointRestoreSite.ascx" title="RestoreSharePointSite" type="View" />
|
||||
<Control key="webparts" src="WebsitePanel/SharePointWebPartPackages.ascx" title="InstalledSharePointWebPartPackages" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="SharedSSL">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/SharedSSLFolders.ascx" title="SharedSSLFolders" type="View" />
|
||||
<Control key="add" src="WebsitePanel/SharedSSLAddFolder.ascx" title="AddSharedSSLFolder" type="View" icon="world_lock_48.png" />
|
||||
<Control key="edit_item" src="WebsitePanel/SharedSSLEditFolder.ascx" title="SharedSSLFolderProperties" type="View" icon="world_lock_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="ExchangeServer">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/ExchangeServer/Organizations.ascx" title="Organizations" type="View" />
|
||||
<Control key="edit_user" src="WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx" title="OrganizationUserGeneralSettings" type="View" />
|
||||
<Control key="users" src="WebsitePanel/ExchangeServer/OrganizationUsers.ascx" title="OrganizationUsers" type="View" />
|
||||
<Control key="create_user" src="WebsitePanel/ExchangeServer/OrganizationCreateUser.ascx" title="CreateUser" type="View" />
|
||||
<Control key="create_organization" src="WebsitePanel/ExchangeServer/OrganizationCreateOrganization.ascx" title="OrganizationCreateOrganization" type="View" />
|
||||
<Control key="organization_home" src="WebsitePanel/ExchangeServer/OrganizationHome.ascx" title="OrganizationHome" type="View" />
|
||||
<Control key="organization_user_setup" src="WebsitePanel/ExchangeServer/OrganizationUserSetupInstructions.ascx" title="OrganizationUserSetupInstructions" type="View" />
|
||||
<Control key="mailboxes" src="WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx" title="ExchangeMailboxes" type="View" />
|
||||
<Control key="archivingmailboxes" src="WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx" title="ExchangeArchivingMailboxes" type="View" />
|
||||
<Control key="create_mailbox" src="WebsitePanel/ExchangeServer/ExchangeCreateMailbox.ascx" title="ExchangeCreateMailbox" type="View" />
|
||||
<Control key="mailbox_settings" src="WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx" title="ExchangeMailboxGeneralSettings" type="View" />
|
||||
<Control key="mailbox_mobile" src="WebsitePanel/ExchangeServer/ExchangeMailboxMobile.ascx" title="ExchangeMailboxMobile" type="View" />
|
||||
<Control key="mailbox_mobile_details" src="WebsitePanel/ExchangeServer/ExchangeMailboxMobileDetails.ascx" title="ExchangeMailboxMobile" type="View" />
|
||||
<Control key="mailbox_addresses" src="WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx" title="ExchangeMailboxEmailAddresses" type="View" />
|
||||
<Control key="mailbox_mailflow" src="WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx" title="ExchangeMailboxMailFlowSettings" type="View" />
|
||||
<Control key="mailbox_permissions" src="WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx" title="ExchangeMailboxPermissions" type="View" />
|
||||
<Control key="mailbox_advanced" src="WebsitePanel/ExchangeServer/ExchangeMailboxAdvancedSettings.ascx" title="ExchangeMailboxAdvancedSettings" type="View" />
|
||||
<Control key="mailbox_setup" src="WebsitePanel/ExchangeServer/ExchangeMailboxSetupInstructions.ascx" title="ExchangeMailboxSetupInstructions" type="View" />
|
||||
<Control key="contacts" src="WebsitePanel/ExchangeServer/ExchangeContacts.ascx" title="ExchangeContacts" type="View" />
|
||||
<Control key="create_contact" src="WebsitePanel/ExchangeServer/ExchangeCreateContact.ascx" title="ExchangeCreateContact" type="View" />
|
||||
<Control key="contact_settings" src="WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx" title="ExchangeContactGeneralSettings" type="View" />
|
||||
<Control key="contact_mailflow" src="WebsitePanel/ExchangeServer/ExchangeContactMailFlowSettings.ascx" title="ExchangeContactMailFlowSettings" type="View" />
|
||||
<Control key="dlists" src="WebsitePanel/ExchangeServer/ExchangeDistributionLists.ascx" title="ExchangeDistributionLists" type="View" />
|
||||
<Control key="create_dlist" src="WebsitePanel/ExchangeServer/ExchangeCreateDistributionList.ascx" title="ExchangeCreateDistributionList" type="View" />
|
||||
<Control key="dlist_settings" src="WebsitePanel/ExchangeServer/ExchangeDistributionListGeneralSettings.ascx" title="ExchangeDistributionListGeneralSettings" type="View" />
|
||||
<Control key="dlist_addresses" src="WebsitePanel/ExchangeServer/ExchangeDistributionListEmailAddresses.ascx" title="ExchangeDistributionListEmailAddresses" type="View" />
|
||||
<Control key="dlist_mailflow" src="WebsitePanel/ExchangeServer/ExchangeDistributionListMailFlowSettings.ascx" title="ExchangeDistributionListMailFlowSettings" type="View" />
|
||||
<Control key="dlist_permissions" src="WebsitePanel/ExchangeServer/ExchangeDistributionListPermissions.ascx" title="ExchangeDistributionListMailFlowSettings" type="View" />
|
||||
|
||||
<Control key="mailbox_memberof" src="WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx" title="ExchangeMailboxMemberOf" type="View" />
|
||||
<Control key="dlist_memberof" src="WebsitePanel/ExchangeServer/ExchangeDistributionListMemberOf.ascx" title="ExchangeDistributionListMemberOf" type="View" />
|
||||
<Control key="user_memberof" src="WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx" title="UserMemberOf" type="View" />
|
||||
|
||||
<Control key="disclaimers" src="WebsitePanel/ExchangeServer/ExchangeDisclaimers.ascx" title="ExchangeDisclaimers" type="View" />
|
||||
<Control key="disclaimers_settings" src="WebsitePanel/ExchangeServer/ExchangeDisclaimerGeneralSettings.ascx" title="ExchangeDisclaimerGeneralSettings" type="View" />
|
||||
|
||||
<Control key="public_folders" src="WebsitePanel/ExchangeServer/ExchangePublicFolders.ascx" title="ExchangePublicFolders" type="View" />
|
||||
<Control key="create_public_folder" src="WebsitePanel/ExchangeServer/ExchangeCreatePublicFolder.ascx" title="ExchangeCreatePublicFolder" type="View" />
|
||||
<Control key="public_folder_settings" src="WebsitePanel/ExchangeServer/ExchangePublicFolderGeneralSettings.ascx" title="ExchangePublicFolderGeneralSettings" type="View" />
|
||||
<Control key="public_folder_addresses" src="WebsitePanel/ExchangeServer/ExchangePublicFolderEmailAddresses.ascx" title="ExchangePublicFolderEmailAddresses" type="View" />
|
||||
<Control key="public_folder_mailflow" src="WebsitePanel/ExchangeServer/ExchangePublicFolderMailFlowSettings.ascx" title="ExchangePublicFolderMailFlowSettings" type="View" />
|
||||
<Control key="public_folder_mailenable" src="WebsitePanel/ExchangeServer/ExchangePublicFolderMailEnable.ascx" title="ExchangePublicFolderMailEnable" type="View" />
|
||||
<Control key="domains" src="WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx" title="ExchangeDomainNames" type="View" />
|
||||
<Control key="org_domains" src="WebsitePanel/ExchangeServer/OrganizationDomainNames.ascx" title="OrganizationDomainNames" type="View" />
|
||||
<Control key="org_add_domain" src="WebsitePanel/ExchangeServer/OrganizationAddDomainName.ascx" title="OrganizationAddDomainName" type="View" />
|
||||
<Control key="add_domain" src="WebsitePanel/ExchangeServer/ExchangeAddDomainName.ascx" title="ExchangeAddDomainName" type="View" />
|
||||
<Control key="domain_records" src="WebsitePanel/ExchangeServer/ExchangeDomainRecords.ascx" title="ExchangeDomainRecords" type="View" />
|
||||
<Control key="storage_usage" src="WebsitePanel/ExchangeServer/ExchangeStorageUsage.ascx" title="ExchangeStorageUsage" type="View" />
|
||||
<Control key="storage_usage_details" src="WebsitePanel/ExchangeServer/ExchangeStorageUsageBreakdown.ascx" title="ExchangeStorageUsageBreakdown" type="View" />
|
||||
<Control key="storage_limits" src="WebsitePanel/ExchangeServer/ExchangeStorageLimits.ascx" title="ExchangeStorageLimits" type="View" />
|
||||
<Control key="activesync_policy" src="WebsitePanel/ExchangeServer/ExchangeActiveSyncSettings.ascx" title="ExchangeActiveSyncSettings" type="View" />
|
||||
<Control key="mailboxplans" src="WebsitePanel/ExchangeServer/ExchangeMailboxPlans.ascx" title="ExchangeMailboxPlans" type="View" />
|
||||
<Control key="retentionpolicy" src="WebsitePanel/ExchangeServer/ExchangeMailboxPlans.ascx" title="ExchangeRetentionPolicy" type="View" />
|
||||
<Control key="retentionpolicytag" src="WebsitePanel/ExchangeServer/ExchangeRetentionPolicyTag.ascx" title="ExchangeRetentionPolicyTag" type="View" />
|
||||
<Control key="add_mailboxplan" src="WebsitePanel/ExchangeServer/ExchangeAddMailboxPlan.ascx" title="ExchangeAddMailboxPlan" type="View" />
|
||||
|
||||
<Control key="CRMOrganizationDetails" src="WebsitePanel/CRM/CRMOrganizationDetails.ascx" title="ExchangeActiveSyncSettings" type="View" />
|
||||
<Control key="CRMUsers" src="WebsitePanel/CRM/CRMUsers.ascx" title="CRM Users" type="View" />
|
||||
<Control key="CRMUserRoles" src="WebsitePanel/CRM/CRMUserRoles.ascx" title="CRM User Roles" type="View" />
|
||||
<Control key="create_crm_user" src="WebsitePanel/CRM/CreateCRMUser.ascx" title="Create CRM User" type="View" />
|
||||
<Control key="crm_storage_settings" src="WebsitePanel/CRM/CRMStorageSettings.ascx" title="CRMRestoreSiteCollection" type="View"/>
|
||||
|
||||
|
||||
<Control key="sharepoint_sitecollections" src="WebsitePanel/HostedSharePointSiteCollections.ascx" title="HostedSharePointSiteCollections" type="View" icon="colors_48.png"/>
|
||||
<Control key="sharepoint_edit_sitecollection" src="WebsitePanel/HostedSharePointEditSiteCollection.ascx" title="HostedSharePointSiteCollection" type="View" icon="colors_48.png" />
|
||||
<Control key="sharepoint_backup_sitecollection" src="WebsitePanel/HostedSharePointBackupSiteCollection.ascx" title="HostedSharePointBackupSiteCollection" type="View"/>
|
||||
<Control key="sharepoint_restore_sitecollection" src="WebsitePanel/HostedSharePointRestoreSiteCollection.ascx" title="HostedSharePointRestoreSiteCollection" type="View"/>
|
||||
<Control key="sharepoint_storage_settings" src="WebsitePanel/HostedSharePointStorageSettings.ascx" title="HostedSharePointRestoreSiteCollection" type="View"/>
|
||||
<Control key="sharepoint_storage_usage" src="WebsitePanel/HostedSharePointStorageUsage.ascx" title="HostedSharePointRestoreSiteCollection" type="View"/>
|
||||
|
||||
|
||||
<Control key="blackberry_users" src="WebsitePanel/BlackBerry/BlackBerryUsers.ascx" title="BlackBerry Users" type="View" />
|
||||
<Control key="create_new_blackberry_user" src="WebsitePanel/BlackBerry/CreateNewBlackBerryUser.ascx" title="Create New BlackBerry User" type="View" />
|
||||
<Control key="edit_blackberry_user" src="WebsitePanel/BlackBerry/EditBlackBerryUser.ascx" title="Edit BlackBerry User" type="View" />
|
||||
|
||||
<Control key="ocs_users" src="WebsitePanel/OCS/OCSUsers.ascx" title="OCS Users" type="View" />
|
||||
<Control key="create_new_ocs_user" src="WebsitePanel/OCS/CreateOCSUser.ascx" title="Create New OCS User" type="View" />
|
||||
<Control key="edit_ocs_user" src="WebsitePanel/OCS/EditOCSUser.ascx" title="Edit OCS User" type="View" />
|
||||
|
||||
<Control key="lync_users" src="WebsitePanel/Lync/LyncUsers.ascx" title="Lync Users" type="View" />
|
||||
<Control key="create_new_lync_user" src="WebsitePanel/Lync/LyncCreateUser.ascx" title="Create New Lync User" type="View" />
|
||||
<Control key="lync_userplans" src="WebsitePanel/Lync/LyncUserPlans.ascx" title="LyncUserPlans" type="View" />
|
||||
<Control key="lync_federationdomains" src="WebsitePanel/Lync/LyncFederationDomains.ascx" title="LyncFederationDomains" type="View" />
|
||||
<Control key="add_lyncfederation_domain" src="WebsitePanel/Lync/LyncAddFederationDomain.ascx" title="LyncAddFederationDomain" type="View" />
|
||||
<Control key="add_lyncuserplan" src="WebsitePanel/Lync/LyncAddLyncUserPlan.ascx" title="LyncAddLyncUserPlan" type="View" />
|
||||
<Control key="edit_lync_user" src="WebsitePanel/Lync/LyncEditUser.ascx" title="Edit Lync User" type="View" />
|
||||
|
||||
<Control key="secur_groups" src="WebsitePanel/ExchangeServer/OrganizationSecurityGroups.ascx" title="OrganizationSecurityGroups" type="View" />
|
||||
<Control key="create_secur_group" src="WebsitePanel/ExchangeServer/OrganizationCreateSecurityGroup.ascx" title="OrganizationSecurityGroup" type="View" />
|
||||
<Control key="secur_group_settings" src="WebsitePanel/ExchangeServer/OrganizationSecurityGroupGeneralSettings.ascx" title="OrganizationSecurityGroup" type="View" />
|
||||
<Control key="secur_group_memberof" src="WebsitePanel/ExchangeServer/OrganizationSecurityGroupMemberOf.ascx" title="OrganizationSecurityGroupMemberOf" type="View" />
|
||||
|
||||
<Control key="enterprisestorage_folders" src="WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx" title="Enterprise Storage Folders" type="View" />
|
||||
<Control key="create_enterprisestorage_folder" src="WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx" title="Create New ES Folder" type="View" />
|
||||
<Control key="enterprisestorage_folder_settings" src="WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx" title="Edit ES Folder" type="View" />
|
||||
<Control key="enterprisestorage_drive_maps" src="WebsitePanel/ExchangeServer/EnterpriseStorageDriveMaps.ascx" title="Enterprise Storage Drive Maps" type="View" />
|
||||
<Control key="create_enterprisestorage_drive_map" src="WebsitePanel/ExchangeServer/EnterpriseStorageCreateDriveMap.ascx" title="Create New ES Drive Map" type="View" />
|
||||
|
||||
<Control key="lync_phonenumbers" src="WebsitePanel/Lync/LyncPhoneNumbers.ascx" title="LyncPhoneNumbers" type="View" />
|
||||
<Control key="allocate_phonenumbers" src="WebsitePanel/Lync/LyncAllocatePhoneNumbers.ascx" title="LyncPhoneNumbers" type="View" />
|
||||
|
||||
<Control key="rds_servers" src="WebsitePanel/RDS/AssignedRDSServers.ascx" title="RDSServers" type="View" />
|
||||
<Control key="rds_add_server" src="WebsitePanel/RDS/AddRDSServer.ascx" title="AddRDSServer" type="View" />
|
||||
<Control key="rds_collections" src="WebsitePanel/RDS/RDSCollections.ascx" title="RDSCollections" type="View" />
|
||||
<Control key="rds_create_collection" src="WebsitePanel/RDS/RDSCreateCollection.ascx" title="RDSCreateCollection" type="View" />
|
||||
<Control key="rds_collection_edit_apps" src="WebsitePanel/RDS/RDSEditCollectionApps.ascx" title="RDSEditCollectionApps" type="View" />
|
||||
<Control key="rds_collection_edit_users" src="WebsitePanel/RDS/RDSEditCollectionUsers.ascx" title="RDSEditCollectionUsers" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="VPS">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/VPS/VdcHome.ascx" title="VdcHome" type="View" />
|
||||
<Control key="vdc_create_server" src="WebsitePanel/VPS/VdcCreateServer.ascx" title="VdcCreateServer" type="View" />
|
||||
<Control key="vdc_import_server" src="WebsitePanel/VPS/VdcImportServer.ascx" title="VdcImportServer" type="View" />
|
||||
<Control key="vdc_external_network" src="WebsitePanel/VPS/VdcExternalNetwork.ascx" title="VdcExternalNetwork" type="View" />
|
||||
<Control key="vdc_management_network" src="WebsitePanel/VPS/VdcManagementNetwork.ascx" title="VdcManagementNetwork" type="View" />
|
||||
<Control key="vdc_allocate_external_ip" src="WebsitePanel/VPS/VdcAddExternalAddress.ascx" title="VdcAddExternalAddress" type="View" />
|
||||
<Control key="vdc_private_network" src="WebsitePanel/VPS/VdcPrivateNetwork.ascx" title="VdcPrivateNetwork" type="View" />
|
||||
<Control key="vdc_permissions" src="WebsitePanel/VPS/VdcPermissions.ascx" title="VdcPermissions" type="View" />
|
||||
<Control key="vdc_audit_log" src="WebsitePanel/VPS/VdcAuditLog.ascx" title="VdcAuditLog" type="View" />
|
||||
|
||||
<Control key="vps_general" src="WebsitePanel/VPS/VpsDetailsGeneral.ascx" title="VpsDetailsGeneral" type="View" />
|
||||
<Control key="vps_config" src="WebsitePanel/VPS/VpsDetailsConfiguration.ascx" title="VpsDetailsConfiguration" type="View" />
|
||||
<Control key="vps_edit_config" src="WebsitePanel/VPS/VpsDetailsEditConfiguration.ascx" title="VpsDetailsEditConfiguration" type="View" />
|
||||
<Control key="vps_dvd" src="WebsitePanel/VPS/VpsDetailsDvd.ascx" title="VpsDetailsDvd" type="View" />
|
||||
<Control key="vps_insert_dvd" src="WebsitePanel/VPS/VpsDetailsInsertDvd.ascx" title="VpsDetailsInsertDvd" type="View" />
|
||||
<Control key="vps_snapshots" src="WebsitePanel/VPS/VpsDetailsSnapshots.ascx" title="VpsDetailsSnapshots" type="View" />
|
||||
<Control key="vps_network" src="WebsitePanel/VPS/VpsDetailsNetwork.ascx" title="VpsDetailsNetwork" type="View" />
|
||||
<Control key="vps_add_external_ip" src="WebsitePanel/VPS/VpsDetailsAddExternalAddress.ascx" title="VpsDetailsAddExternalAddress" type="View" />
|
||||
<Control key="vps_add_private_ip" src="WebsitePanel/VPS/VpsDetailsAddPrivateAddress.ascx" title="VpsDetailsAddPrivateAddress" type="View" />
|
||||
<Control key="vps_permissions" src="WebsitePanel/VPS/VpsDetailsPermissions.ascx" title="VpsDetailsNetworking" type="View" />
|
||||
<Control key="vps_tools" src="WebsitePanel/VPS/VpsDetailsTools.ascx" title="VpsDetailsTools" type="View" />
|
||||
<Control key="vps_audit_log" src="WebsitePanel/VPS/VpsDetailsAuditLog.ascx" title="VpsDetailsAuditLog" type="View" />
|
||||
<Control key="vps_help" src="WebsitePanel/VPS/VpsDetailsHelp.ascx" title="VpsDetailsHelp" type="View" />
|
||||
<Control key="vps_tools_delete" src="WebsitePanel/VPS/VpsToolsDeleteServer.ascx" title="VpsToolsDeleteServer" type="View" />
|
||||
<Control key="vps_tools_move" src="WebsitePanel/VPS/VpsMoveServer.ascx" title="VpsMoveServer" type="View" />
|
||||
<Control key="vps_tools_reinstall" src="WebsitePanel/VPS/VpsToolsReinstallServer.ascx" title="VpsToolsReinstallServer" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<ModuleDefinition id="VPSForPC">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/VPSForPC/VdcHome.ascx" title="VdcHome" type="View" />
|
||||
<Control key="vdc_create_server" src="WebsitePanel/VPSForPC/VdcCreateServer.ascx" title="VdcCreateServer" type="View" />
|
||||
<Control key="vdc_import_server" src="WebsitePanel/VPSForPC/VdcImportServer.ascx" title="VdcImportServer" type="View" />
|
||||
<Control key="vdc_FastCreate_server" src="WebsitePanel/VPSForPC/VdcFastCreateServer.ascx" title="VdcFastCreateServer" type="View" />
|
||||
<Control key="vdc_external_network" src="WebsitePanel/VPSForPC/VdcExternalNetwork.ascx" title="VdcExternalNetwork" type="View" />
|
||||
<Control key="vdc_management_network" src="WebsitePanel/VPSForPC/VdcManagementNetwork.ascx" title="VdcManagementNetwork" type="View" />
|
||||
<Control key="vdc_allocate_external_ip" src="WebsitePanel/VPSForPC/VdcAddExternalAddress.ascx" title="VdcAddExternalAddress" type="View" />
|
||||
<Control key="vdc_private_network" src="WebsitePanel/VPSForPC/VdcPrivateNetwork.ascx" title="VdcPrivateNetwork" type="View" />
|
||||
<Control key="vdc_permissions" src="WebsitePanel/VPSForPC/VdcPermissions.ascx" title="VdcPermissions" type="View" />
|
||||
<Control key="vdc_audit_log" src="WebsitePanel/VPSForPC/VdcAuditLog.ascx" title="VdcAuditLog" type="View" />
|
||||
<Control key="vdc_account_vlan_network" src="WebsitePanel/VPSForPC/VdcAccountVLanNetwork.ascx" title="VdcAccountVLanNetwork" type="View" />
|
||||
<Control key="vdc_account_vLan_add" src="WebsitePanel/VPSForPC/VdcAccountVLanAdd.ascx" title="VdcAccountVLanAdd" type="View" />
|
||||
|
||||
<Control key="vps_general" src="WebsitePanel/VPSForPC/VpsDetailsGeneral.ascx" title="VpsDetailsGeneral" type="View" />
|
||||
<Control key="vps_config" src="WebsitePanel/VPSForPC/VpsDetailsConfiguration.ascx" title="VpsDetailsConfiguration" type="View" />
|
||||
<Control key="vps_edit_config" src="WebsitePanel/VPSForPC/VpsDetailsEditConfiguration.ascx" title="VpsDetailsEditConfiguration" type="View" />
|
||||
<Control key="vps_dvd" src="WebsitePanel/VPSForPC/VpsDetailsDvd.ascx" title="VpsDetailsDvd" type="View" />
|
||||
<Control key="vps_insert_dvd" src="WebsitePanel/VPSForPC/VpsDetailsInsertDvd.ascx" title="VpsDetailsInsertDvd" type="View" />
|
||||
<Control key="vps_snapshots" src="WebsitePanel/VPSForPC/VpsDetailsSnapshots.ascx" title="VpsDetailsSnapshots" type="View" />
|
||||
<Control key="vps_network" src="WebsitePanel/VPSForPC/VpsDetailsNetwork.ascx" title="VpsDetailsNetwork" type="View" />
|
||||
<Control key="vps_add_external_ip" src="WebsitePanel/VPSForPC/VpsDetailsAddExternalAddress.ascx" title="VpsDetailsAddExternalAddress" type="View" />
|
||||
<Control key="vps_add_private_ip" src="WebsitePanel/VPSForPC/VpsDetailsAddPrivateAddress.ascx" title="VpsDetailsAddPrivateAddress" type="View" />
|
||||
<Control key="vps_permissions" src="WebsitePanel/VPSForPC/VpsDetailsPermissions.ascx" title="VpsDetailsNetworking" type="View" />
|
||||
<Control key="vps_tools" src="WebsitePanel/VPSForPC/VpsDetailsTools.ascx" title="VpsDetailsTools" type="View" />
|
||||
<Control key="vps_audit_log" src="WebsitePanel/VPSForPC/VpsDetailsAuditLog.ascx" title="VpsDetailsAuditLog" type="View" />
|
||||
<Control key="vps_help" src="WebsitePanel/VPSForPC/VpsDetailsHelp.ascx" title="VpsDetailsHelp" type="View" />
|
||||
<Control key="vps_tools_delete" src="WebsitePanel/VPSForPC/VpsToolsDeleteServer.ascx" title="VpsToolsDeleteServer" type="View" />
|
||||
<Control key="vps_tools_move" src="WebsitePanel/VPSForPC/VpsMoveServer.ascx" title="VpsMoveServer" type="View" />
|
||||
<Control key="vps_tools_reinstall" src="WebsitePanel/VPSForPC/VpsToolsReinstallServer.ascx" title="VpsToolsReinstallServer" type="View" />
|
||||
<Control key="vps_events_log" src="WebsitePanel/VPSForPC/VpsEventsLog.ascx" title="VpsEventsLog" type="View" />
|
||||
<Control key="vps_alerts_log" src="WebsitePanel/VPSForPC/VpsAlertsLog.ascx" title="VpsAlertsLog" type="View" />
|
||||
<Control key="vps_monitoring" src="WebsitePanel/VPSForPC/VpsMonitoring.ascx" title="VpsMonitoring" type="View" />
|
||||
<Control key="vps_checkpoints" src="WebsitePanel/VPSForPC/VpsCheckPoints.ascx" title="VpsCheckPoints" type="View" />
|
||||
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
|
||||
<!-- CO Chnages-->
|
||||
<ModuleDefinition id="ApplyEnableHardQuotaFeature">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/ApplyEnableHardQuotaFeature.ascx" title="ApplyEnableHardQuotaFeature" type="View" icon="calendar_month_2_clock_48.png" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
<!--END-->
|
||||
|
||||
<!-- Hosted Organization -->
|
||||
<ModuleDefinition id="OrganizationMenu">
|
||||
<Controls>
|
||||
<Control key="" src="WebsitePanel/OrganizationMenu.ascx" title="OrganizationMenu" type="View" />
|
||||
</Controls>
|
||||
</ModuleDefinition>
|
||||
</ModuleDefinitions>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue