This commit is contained in:
vfedosevich 2015-02-26 23:19:19 -08:00
commit e9c7b0868b
580 changed files with 247313 additions and 5211 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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 = "";

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -327,5 +327,12 @@ namespace WebsitePanel.Providers.HostedSolution
set { isVip = value; }
}
private bool userMustChangePassword;
public bool UserMustChangePassword
{
get { return userMustChangePassword; }
set { userMustChangePassword = value; }
}
}
}

View file

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

View file

@ -144,6 +144,8 @@ namespace WebsitePanel.Providers.OS
set { this.url = value; }
}
public string RelativeUrl { get; set; }
public string DriveLetter
{
get { return this.driveLetter; }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,8 @@
namespace WebsitePanel.WebDav.Core.Entities.Account.Enums
{
public enum FolderViewTypes
{
BigIcons,
Table
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -159,7 +159,7 @@ namespace WebsitePanel.WebDav.Core
{
_creationDate = DateTime.Parse(creationDate);
}
public void SetCreationDate(DateTime creationDate)
{
_creationDate = creationDate;

View file

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

View file

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

View file

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

View file

@ -0,0 +1,10 @@
using System.IO;
using Cobalt;
namespace WebsitePanel.WebDav.Core.Interfaces.Owa
{
public interface ICobaltManager
{
Atom ProcessRequest(int accessTokenId, Stream requestStream);
}
}

View file

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

View file

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

View file

@ -0,0 +1,7 @@
namespace WebsitePanel.WebDav.Core.Interfaces.Storages
{
public interface ITtlStorage : IKeyValueStorage
{
void SetTtl<TV>(string id, TV value);
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<SupportedLocales>
<Locale name="English" key="en-US" fallback="" />
</SupportedLocales>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Themes>
<Theme name="Default" title="Energy Blue" />
</Themes>

View file

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