Released windows auth, connect to ES.Services.

This commit is contained in:
ITRANSITION\e.revyakin 2014-12-03 11:43:26 +03:00
parent 2569e55609
commit d29c347ff4
294 changed files with 329583 additions and 2315 deletions

View file

@ -1,7 +1,6 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.

View file

@ -5,7 +5,8 @@
</configSections>
<!-- Connection strings -->
<connectionStrings>
<add name="EnterpriseServer" connectionString="Server=(local)\SQLExpress;Database=WebsitePanel;uid=sa;pwd=Password12" providerName="System.Data.SqlClient"/>
<!--<add name="EnterpriseServer" connectionString="Server=(local)\SQLExpress;Database=WebsitePanel;uid=sa;pwd=Password12" providerName="System.Data.SqlClient"/>-->
<add name="EnterpriseServer" connectionString="Data Source=CHERNETSI\BENQMSSERVER;Initial Catalog=WebsitePanel;uid=sa;pwd=Password12;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<!-- Encryption util settings -->

View file

@ -75,6 +75,12 @@ namespace WebsitePanel.EnterpriseServer
return OrganizationController.GetOrganizations(packageId, recursive);
}
[WebMethod]
public Organization GetOrganizationById(string organizationId)
{
return OrganizationController.GetOrganizationById(organizationId);
}
[WebMethod]
public string GetOrganizationUserSummuryLetter(int itemId, int accountId, bool pmm, bool emailMode, bool signup)
{

View file

@ -0,0 +1,6 @@
namespace WebsitePanel.WebDav.Core.Exceptions
{
public class UnauthorizedException : WebDavHttpException
{
}
}

View file

@ -0,0 +1,8 @@
using System;
namespace WebsitePanel.WebDav.Core.Exceptions
{
public class WebDavException : Exception
{
}
}

View file

@ -0,0 +1,6 @@
namespace WebsitePanel.WebDav.Core.Exceptions
{
public class WebDavHttpException : WebDavException
{
}
}

View file

@ -0,0 +1,32 @@
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public interface IConnectionSettings
{
bool AllowWriteStreamBuffering { get; set; }
bool SendChunked { get; set; }
int TimeOut { get; set; }
}
public class WebDavConnectionSettings
{
private int _timeOut = 30000;
public WebDavConnectionSettings()
{
SendChunked = false;
AllowWriteStreamBuffering = false;
}
public bool AllowWriteStreamBuffering { get; set; }
public bool SendChunked { get; set; }
public int TimeOut
{
get { return _timeOut; }
set { _timeOut = value; }
}
}
}
}

View file

@ -0,0 +1,354 @@
using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using WebsitePanel.WebDav.Core.Exceptions;
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public interface IFolder : IHierarchyItem
{
IResource CreateResource(string name);
IFolder CreateFolder(string name);
IHierarchyItem[] GetChildren();
IResource GetResource(string name);
}
public class WebDavFolder : WebDavHierarchyItem, IFolder
{
private IHierarchyItem[] _children = new IHierarchyItem[0];
private Uri _path;
/// <summary>
/// The constructor
/// </summary>
public WebDavFolder()
{
}
/// <summary>
/// The constructor
/// </summary>
/// <param name="path">Path to the folder.</param>
public WebDavFolder(string path)
{
_path = new Uri(path);
}
/// <summary>
/// The constructor
/// </summary>
/// <param name="path">Path to the folder.</param>
public WebDavFolder(Uri path)
{
_path = path;
}
/// <summary>
/// Creates a resource with a specified name.
/// </summary>
/// <param name="name">Name of the new resource.</param>
/// <returns>Newly created resource.</returns>
public IResource CreateResource(string name)
{
var resource = new WebDavResource();
try
{
resource.SetHref(new Uri(Href.AbsoluteUri + name));
var credentials = (NetworkCredential) _credentials;
string auth = "Basic " +
Convert.ToBase64String(
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
var request = (HttpWebRequest) WebRequest.Create(resource.Href);
request.Method = "PUT";
request.Credentials = credentials;
request.ContentType = "text/xml";
request.Accept = "text/xml";
request.Headers["translate"] = "f";
request.Headers.Add("Authorization", auth);
using (var response = (HttpWebResponse) request.GetResponse())
{
if (response.StatusCode == HttpStatusCode.Created ||
response.StatusCode == HttpStatusCode.NoContent)
{
Open(Href);
resource = (WebDavResource) GetResource(name);
resource.SetCredentials(_credentials);
}
}
}
catch (Exception e)
{
}
return resource;
}
/// <summary>
/// Creates new folder with specified name as child of this one.
/// </summary>
/// <param name="name">Name of the new folder.</param>
/// <returns>IFolder</returns>
public IFolder CreateFolder(string name)
{
var folder = new WebDavFolder();
try
{
var credentials = (NetworkCredential) _credentials;
var request = (HttpWebRequest) WebRequest.Create(Href.AbsoluteUri + name);
request.Method = "MKCOL";
request.Credentials = credentials;
string auth = "Basic " +
Convert.ToBase64String(
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
request.Headers.Add("Authorization", auth);
using (var response = (HttpWebResponse) request.GetResponse())
{
if (response.StatusCode == HttpStatusCode.Created ||
response.StatusCode == HttpStatusCode.NoContent)
{
folder.SetCredentials(_credentials);
folder.Open(Href.AbsoluteUri + name + "/");
}
}
}
catch (Exception e)
{
}
return folder;
}
/// <summary>
/// Returns children of this folder.
/// </summary>
/// <returns>Array that include child folders and resources.</returns>
public IHierarchyItem[] GetChildren()
{
return _children;
}
/// <summary>
/// Gets the specified resource from server.
/// </summary>
/// <param name="name">Name of the resource.</param>
/// <returns>Resource corresponding to requested name.</returns>
public IResource GetResource(string name)
{
IHierarchyItem item =
_children.Single(i => i.ItemType == ItemType.Resource && i.DisplayName.Trim('/') == name.Trim('/'));
var resource = new WebDavResource();
resource.SetCredentials(_credentials);
resource.SetHierarchyItem(item);
return resource;
}
/// <summary>
/// Opens the folder.
/// </summary>
public void Open()
{
var request = (HttpWebRequest) WebRequest.Create(_path);
request.PreAuthenticate = true;
request.Method = "PROPFIND";
request.ContentType = "application/xml";
request.Headers["Depth"] = "1";
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);
}
try
{
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>
/// Opens the folder
/// </summary>
/// <param name="path">Path of the folder to open.</param>
public void Open(string path)
{
_path = new Uri(path);
Open();
}
/// <summary>
/// Opens the folder
/// </summary>
/// <param name="path">Path of the folder to open.</param>
public void Open(Uri path)
{
_path = path;
Open();
}
/// <summary>
/// Processes the response from the server.
/// </summary>
/// <param name="response">The raw response from the server.</param>
private void ProcessResponse(string response)
{
try
{
var XmlDoc = new XmlDocument();
XmlDoc.LoadXml(response);
XmlNodeList XmlResponseList = XmlDoc.GetElementsByTagName("D:response");
if (XmlResponseList.Count == 0)
{
XmlResponseList = XmlDoc.GetElementsByTagName("d:response");
}
var children = new WebDavHierarchyItem[XmlResponseList.Count];
int counter = 0;
foreach (XmlNode XmlCurrentResponse in XmlResponseList)
{
var item = new WebDavHierarchyItem();
item.SetCredentials(_credentials);
foreach (XmlNode XmlCurrentNode in XmlCurrentResponse.ChildNodes)
{
switch (XmlCurrentNode.LocalName)
{
case "href":
string href = XmlCurrentNode.InnerText;
if (!Regex.Match(href, "^https?:\\/\\/").Success)
{
href = _path.Scheme + "://" + _path.Host + href;
}
item.SetHref(href, _path);
break;
case "propstat":
foreach (XmlNode XmlCurrentPropStatNode in XmlCurrentNode)
{
switch (XmlCurrentPropStatNode.LocalName)
{
case "prop":
foreach (XmlNode XmlCurrentPropNode in XmlCurrentPropStatNode)
{
switch (XmlCurrentPropNode.LocalName)
{
case "creationdate":
item.SetCreationDate(XmlCurrentPropNode.InnerText);
break;
case "getcontentlanguage":
item.SetProperty(
new Property(
new PropertyName("getcontentlanguage",
XmlCurrentPropNode.NamespaceURI),
XmlCurrentPropNode.InnerText));
break;
case "getcontentlength":
item.SetProperty(
new Property(
new PropertyName("getcontentlength",
XmlCurrentPropNode.NamespaceURI),
XmlCurrentPropNode.InnerText));
break;
case "getcontenttype":
item.SetProperty(
new Property(
new PropertyName("getcontenttype",
XmlCurrentPropNode.NamespaceURI),
XmlCurrentPropNode.InnerText));
break;
case "getlastmodified":
item.SetLastModified(XmlCurrentPropNode.InnerText);
break;
case "resourcetype":
item.SetProperty(
new Property(
new PropertyName("resourcetype",
XmlCurrentPropNode.NamespaceURI),
XmlCurrentPropNode.InnerXml));
break;
}
}
break;
case "status":
break;
}
}
break;
}
}
if (item.DisplayName != String.Empty)
{
children[counter] = item;
counter++;
}
else
{
SetItemType(ItemType.Folder);
SetHref(item.Href.AbsoluteUri, item.Href);
SetCreationDate(item.CreationDate);
SetComment(item.Comment);
SetCreatorDisplayName(item.CreatorDisplayName);
SetLastModified(item.LastModified);
foreach (Property property in item.Properties)
{
SetProperty(property);
}
}
}
int childrenCount = 0;
foreach (IHierarchyItem item in children)
{
if (item != null)
{
childrenCount++;
}
}
_children = new IHierarchyItem[childrenCount];
counter = 0;
foreach (IHierarchyItem item in children)
{
if (item != null)
{
_children[counter] = item;
counter++;
}
}
}
catch (XmlException e)
{
}
}
}
}
}

View file

@ -0,0 +1,255 @@
using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Xml;
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public interface IHierarchyItem : IConnectionSettings
{
string Comment { get; }
DateTime CreationDate { get; }
string CreatorDisplayName { get; }
string DisplayName { get; }
Uri Href { get; }
ItemType ItemType { get; }
DateTime LastModified { get; }
Property[] Properties { get; }
Property[] GetAllProperties();
PropertyName[] GetPropertyNames();
Property[] GetPropertyValues(PropertyName[] names);
void Delete();
}
public class WebDavHierarchyItem : WebDavConnectionSettings, IHierarchyItem
{
private Uri _baseUri;
private string _comment = "";
private DateTime _creationDate = new DateTime(0);
private string _creatorDisplayName = "";
protected ICredentials _credentials = new NetworkCredential();
private Uri _href;
private ItemType _itemType;
private DateTime _lastModified = new DateTime(0);
private Property[] _properties = {};
public string Comment
{
get { return _comment; }
}
public DateTime CreationDate
{
get { return _creationDate; }
}
public string CreatorDisplayName
{
get { return _creatorDisplayName; }
}
public string DisplayName
{
get
{
string displayName = _href.AbsoluteUri.Replace(_baseUri.AbsoluteUri, "");
displayName = Regex.Replace(displayName, "\\/$", "");
Match displayNameMatch = Regex.Match(displayName, "([\\/]+)$");
if (displayNameMatch.Success)
{
displayName = displayNameMatch.Groups[1].Value;
}
return HttpUtility.UrlDecode(displayName);
}
}
public Uri Href
{
get { return _href; }
}
public ItemType ItemType
{
get { return _itemType; }
}
public DateTime LastModified
{
get { return _lastModified; }
}
public Property[] Properties
{
get { return _properties; }
}
public Property[] GetAllProperties()
{
return _properties;
}
public PropertyName[] GetPropertyNames()
{
return _properties.Select(p => p.Name).ToArray();
}
public Property[] GetPropertyValues(PropertyName[] names)
{
return (from p in _properties from pn in names where pn.Equals(p.Name) select p).ToArray();
}
public void Delete()
{
var credentials = (NetworkCredential) _credentials;
string auth = "Basic " +
Convert.ToBase64String(
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
WebRequest webRequest = WebRequest.Create(Href);
webRequest.Method = "DELETE";
webRequest.Credentials = credentials;
webRequest.Headers.Add("Authorization", auth);
using (WebResponse webResponse = webRequest.GetResponse())
{
using (Stream responseStream = webResponse.GetResponseStream())
{
var buffer = new byte[8192];
string result = "";
int bytesRead = 0;
do
{
bytesRead = responseStream.Read(buffer, 0, buffer.Length);
if (bytesRead > 0)
{
result += Encoding.UTF8.GetString(buffer, 0, bytesRead);
}
} while (bytesRead > 0);
}
}
}
public void Delete(LockUriTokenPair[] lockTokens)
{
}
public void Delete(string lockToken)
{
}
public void SetComment(string comment)
{
_comment = comment;
}
public void SetCreationDate(string creationDate)
{
_creationDate = DateTime.Parse(creationDate);
}
public void SetCreationDate(DateTime creationDate)
{
_creationDate = creationDate;
}
public void SetCreatorDisplayName(string creatorDisplayName)
{
_creatorDisplayName = creatorDisplayName;
}
public void SetItemType(ItemType itemType)
{
_itemType = itemType;
}
public void SetHref(string href, Uri baseUri)
{
_href = new Uri(href);
_baseUri = baseUri;
}
public void SetLastModified(string lastModified)
{
_lastModified = DateTime.Parse(lastModified);
}
public void SetLastModified(DateTime lastModified)
{
_lastModified = lastModified;
}
public void SetProperty(Property property)
{
if (property.Name.Name == "resourcetype" && property.StringValue != String.Empty)
{
var XmlDoc = new XmlDocument();
try
{
if (property.StringValue == "collection")
{
_itemType = ItemType.Folder;
}
else
{
XmlDoc.LoadXml(property.StringValue);
property.StringValue = XmlDoc.DocumentElement.LocalName;
switch (property.StringValue)
{
case "collection":
_itemType = ItemType.Folder;
break;
default:
break;
}
}
}
catch (XmlException e)
{
}
}
bool propertyFound = false;
foreach (Property prop in _properties)
{
if (prop.Name.Equals(property.Name))
{
prop.StringValue = property.StringValue;
propertyFound = true;
}
}
if (!propertyFound)
{
var newProperties = new Property[_properties.Length + 1];
for (int i = 0; i < _properties.Length; i++)
{
newProperties[i] = _properties[i];
}
newProperties[_properties.Length] = property;
_properties = newProperties;
}
}
public void SetProperty(PropertyName propertyName, string value)
{
SetProperty(new Property(propertyName, value));
}
public void SetProperty(string name, string nameSpace, string value)
{
SetProperty(new Property(name, nameSpace, value));
}
public void SetCredentials(ICredentials credentials)
{
_credentials = credentials;
}
}
}
}

View file

@ -0,0 +1,20 @@
using System.IO;
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public interface IItemContent
{
long ContentLength { get; }
string ContentType { get; }
void Download(string filename);
byte[] Download();
void Upload(string filename);
Stream GetReadStream();
Stream GetWriteStream(long contentLength);
Stream GetWriteStream(string contentType, long contentLength);
}
}
}

View file

@ -0,0 +1,521 @@
using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Web;
using System.Xml;
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public interface IResource : IItemContent, IHierarchyItem, IConnectionSettings
{
bool CheckedOut { get; }
bool VersionControlled { get; }
}
public class WebDavResource : IResource
{
// IResource
private Uri _baseUri;
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();
private Uri _href;
private ItemType _itemType;
private DateTime _lastModified = new DateTime(0);
private Property[] _properties = {};
private int _timeOut = 30000;
private bool _versionControlled = false;
public WebDavResource()
{
SendChunked = false;
AllowWriteStreamBuffering = false;
}
public Uri BaseUri
{
get { return _baseUri; }
}
public bool CheckedOut
{
get { return _checkedOut; }
}
public bool VersionControlled
{
get { return _versionControlled; }
}
// IItemContent
public long ContentLength
{
get { return _contentLength; }
}
public string ContentType
{
get { return _contentType; }
}
/// <summary>
/// Downloads content of the resource to a file specified by filename
/// </summary>
/// <param name="filename">Full path of a file to be downloaded to</param>
public void Download(string filename)
{
var webClient = new WebClient();
webClient.DownloadFile(_href, filename);
}
public byte[] Download()
{
try
{
var webClient = new WebClient();
return webClient.DownloadData(_href);
}
catch (WebException exception)
{
throw;
}
}
/// <summary>
/// Uploads content of a file specified by filename to the server
/// </summary>
/// <param name="filename">Full path of a file to be uploaded from</param>
public void Upload(string filename)
{
var credentials = (NetworkCredential) _credentials;
string auth = "Basic " +
Convert.ToBase64String(
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
var webClient = new WebClient();
webClient.Credentials = credentials;
webClient.Headers.Add("Authorization", auth);
webClient.UploadFile(Href, "PUT", filename);
}
/// <summary>
/// Loads content of the resource from WebDAV server.
/// </summary>
/// <returns>Stream to read resource content.</returns>
public Stream GetReadStream()
{
var credentials = (NetworkCredential) _credentials;
string auth = "Basic " +
Convert.ToBase64String(
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
var webClient = new WebClient();
webClient.Credentials = credentials;
webClient.Headers.Add("Authorization", auth);
return webClient.OpenRead(_href);
}
/// <summary>
/// Saves resource's content to WebDAV server.
/// </summary>
/// <param name="contentLength">Length of data to be written.</param>
/// <returns>Stream to write resource content.</returns>
public Stream GetWriteStream(long contentLength)
{
return GetWriteStream("application/octet-stream", contentLength);
}
/// <summary>
/// Saves resource's content to WebDAV server.
/// </summary>
/// <param name="contentType">Media type of the resource.</param>
/// <param name="contentLength">Length of data to be written.</param>
/// <returns>Stream to write resource content.</returns>
public Stream GetWriteStream(string contentType, long contentLength)
{
var tcpClient = new TcpClient(Href.Host, Href.Port);
if (tcpClient.Connected)
{
var credentials = (NetworkCredential) _credentials;
string auth = "Basic " +
Convert.ToBase64String(
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
try
{
if (TimeOut != Timeout.Infinite)
{
tcpClient.SendTimeout = TimeOut;
tcpClient.ReceiveTimeout = TimeOut;
}
else
{
tcpClient.SendTimeout = 0;
tcpClient.ReceiveTimeout = 0;
}
}
catch (SocketException e)
{
tcpClient.SendTimeout = 0;
tcpClient.ReceiveTimeout = 0;
}
NetworkStream networkStream = tcpClient.GetStream();
if (networkStream.CanTimeout)
{
try
{
networkStream.WriteTimeout = TimeOut;
networkStream.ReadTimeout = TimeOut;
}
catch (Exception e)
{
}
}
byte[] methodBuffer = Encoding.UTF8.GetBytes("PUT " + Href.AbsolutePath + " HTTP/1.1\r\n");
byte[] hostBuffer = Encoding.UTF8.GetBytes("Host: " + Href.Host + "\r\n");
byte[] contentLengthBuffer = Encoding.UTF8.GetBytes("Content-Length: " + contentLength + "\r\n");
byte[] authorizationBuffer = Encoding.UTF8.GetBytes("Authorization: " + auth + "\r\n");
byte[] connectionBuffer = Encoding.UTF8.GetBytes("Connection: Close\r\n\r\n");
networkStream.Write(methodBuffer, 0, methodBuffer.Length);
networkStream.Write(hostBuffer, 0, hostBuffer.Length);
networkStream.Write(contentLengthBuffer, 0, contentLengthBuffer.Length);
networkStream.Write(authorizationBuffer, 0, authorizationBuffer.Length);
networkStream.Write(connectionBuffer, 0, connectionBuffer.Length);
return networkStream;
}
throw new IOException("could not connect to server");
}
// IHierarchyItem
public string Comment
{
get { return _comment; }
}
public DateTime CreationDate
{
get { return _creationDate; }
}
public string CreatorDisplayName
{
get { return _creatorDisplayName; }
}
public string DisplayName
{
get
{
string displayName = _href.AbsoluteUri.Replace(_baseUri.AbsoluteUri, "");
displayName = Regex.Replace(displayName, "\\/$", "");
Match displayNameMatch = Regex.Match(displayName, "([\\/]+)$");
if (displayNameMatch.Success)
{
displayName = displayNameMatch.Groups[1].Value;
}
return HttpUtility.UrlDecode(displayName);
}
}
public Uri Href
{
get { return _href; }
}
public ItemType ItemType
{
get { return _itemType; }
}
public DateTime LastModified
{
get { return _lastModified; }
}
public Property[] Properties
{
get { return _properties; }
}
// IHierarchyItem Methods
/// <summary>
/// Retrieves all custom properties exposed by the item.
/// </summary>
/// <returns>This method returns the array of custom properties exposed by the item.</returns>
public Property[] GetAllProperties()
{
return _properties;
}
/// <summary>
/// Returns names of all custom properties exposed by this item.
/// </summary>
/// <returns></returns>
public PropertyName[] GetPropertyNames()
{
return _properties.Select(p => p.Name).ToArray();
}
/// <summary>
/// Retrieves values of specific properties.
/// </summary>
/// <param name="names"></param>
/// <returns>Array of requested properties with values.</returns>
public Property[] GetPropertyValues(PropertyName[] names)
{
return (from p in _properties from pn in names where pn.Equals(p.Name) select p).ToArray();
}
/// <summary>
/// Deletes this item.
/// </summary>
public void Delete()
{
var credentials = (NetworkCredential) _credentials;
string auth = "Basic " +
Convert.ToBase64String(
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
WebRequest webRequest = WebRequest.Create(Href);
webRequest.Method = "DELETE";
webRequest.Credentials = credentials;
webRequest.Headers.Add("Authorization", auth);
using (WebResponse webResponse = webRequest.GetResponse())
{
using (Stream responseStream = webResponse.GetResponseStream())
{
var buffer = new byte[8192];
string result = "";
int bytesRead = 0;
do
{
bytesRead = responseStream.Read(buffer, 0, buffer.Length);
if (bytesRead > 0)
{
result += Encoding.UTF8.GetString(buffer, 0, bytesRead);
}
} while (bytesRead > 0);
}
}
}
public bool AllowWriteStreamBuffering { get; set; }
public bool SendChunked { get; set; }
public int TimeOut
{
get { return _timeOut; }
set { _timeOut = value; }
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetComment(string comment)
{
_comment = comment;
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetCreationDate(string creationDate)
{
_creationDate = DateTime.Parse(creationDate);
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetCreationDate(DateTime creationDate)
{
_creationDate = creationDate;
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetCreatorDisplayName(string creatorDisplayName)
{
_creatorDisplayName = creatorDisplayName;
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetHref(string href, Uri baseUri)
{
_href = new Uri(href);
_baseUri = baseUri;
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
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);
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetLastModified(string lastModified)
{
_lastModified = DateTime.Parse(lastModified);
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetLastModified(DateTime lastModified)
{
_lastModified = lastModified;
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetProperty(Property property)
{
if (property.Name.Name == "resourcetype" && property.StringValue != String.Empty)
{
var XmlDoc = new XmlDocument();
try
{
XmlDoc.LoadXml(property.StringValue);
property.StringValue = XmlDoc.DocumentElement.LocalName;
switch (property.StringValue)
{
case "collection":
_itemType = ItemType.Folder;
break;
default:
break;
}
}
catch (Exception e)
{
}
}
bool propertyFound = false;
foreach (Property prop in _properties)
{
if (prop.Name.Equals(property.Name))
{
prop.StringValue = property.StringValue;
propertyFound = true;
}
}
if (!propertyFound)
{
var newProperties = new Property[_properties.Length + 1];
for (int i = 0; i < _properties.Length; i++)
{
newProperties[i] = _properties[i];
}
if (property.Name.Name == "getcontentlength")
{
try
{
_contentLength = Convert.ToInt64(property.StringValue);
}
catch (Exception)
{
}
}
newProperties[_properties.Length] = property;
_properties = newProperties;
}
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetProperty(PropertyName propertyName, string value)
{
SetProperty(new Property(propertyName, value));
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetProperty(string name, string nameSpace, string value)
{
SetProperty(new Property(name, nameSpace, value));
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetProperties(Property[] properties)
{
foreach (Property property in properties)
{
SetProperty(property);
}
}
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetCredentials(ICredentials credentials)
{
_credentials = credentials;
}
// IConnectionSettings
/// <summary>
/// For internal use only.
/// </summary>
/// <param name="comment"></param>
public void SetHierarchyItem(IHierarchyItem item)
{
SetComment(item.Comment);
SetCreationDate(item.CreationDate);
SetCreatorDisplayName(item.CreatorDisplayName);
SetHref(item.Href);
SetLastModified(item.LastModified);
SetProperties(item.Properties);
}
}
}
}

View file

@ -0,0 +1,53 @@
using System.IO;
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public interface IResumableUpload
{
void CancelUpload();
void CancelUpload(string lockToken);
long GetBytesUploaded();
Stream GetWriteStream(long startIndex, long contentLength, long resourceTotalSize);
Stream GetWriteStream(long startIndex, long contentLength, long resourceTotalSize, string contentType);
Stream GetWriteStream(long startIndex, long contentLength, long resourceTotalSize, string contentType,
string lockToken);
}
public class WebDavResumableUpload
{
private long _bytesUploaded = 0;
public void CancelUpload()
{
}
public void CancelUpload(string lockToken)
{
}
public long GetBytesUploaded()
{
return _bytesUploaded;
}
public Stream GetWriteStream(long startIndex, long contentLength, long resourceTotalSize)
{
return new MemoryStream();
}
public Stream GetWriteStream(long startIndex, long contentLength, long resourceTotalSize, string contentType)
{
return new MemoryStream();
}
public Stream GetWriteStream(long startIndex, long contentLength, long resourceTotalSize, string contentType,
string lockToken)
{
return new MemoryStream();
}
}
}
}

View file

@ -0,0 +1,13 @@
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public enum ItemType
{
Resource,
Folder,
Version,
VersionHistory
}
}
}

View file

@ -0,0 +1,17 @@
using System;
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public class LockUriTokenPair
{
public readonly Uri Href;
public readonly string lockToken;
public LockUriTokenPair(Uri href, string lockToken)
{
}
}
}
}

View file

@ -0,0 +1,39 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("WebsitePanel.WebDav.Core")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WebsitePanel.WebDav.Core")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("6d5fcace-d8d1-4340-a905-d882b8f3c7fe")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View file

@ -0,0 +1,34 @@
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public class Property
{
public readonly PropertyName Name;
private string _value = "";
public Property(PropertyName name, string value)
{
Name = name;
StringValue = value;
}
public Property(string name, string nameSpace, string value)
{
Name = new PropertyName(name, nameSpace);
StringValue = value;
}
public string StringValue
{
get { return _value; }
set { _value = value; }
}
public override string ToString()
{
return StringValue;
}
}
}
}

View file

@ -0,0 +1,40 @@
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public sealed class PropertyName
{
public readonly string Name;
public readonly string NamespaceUri;
public PropertyName(string name, string namespaceUri)
{
Name = name;
NamespaceUri = namespaceUri;
}
public override bool Equals(object obj)
{
if (obj.GetType() == GetType())
{
if (((PropertyName) obj).Name == Name && ((PropertyName) obj).NamespaceUri == NamespaceUri)
{
return true;
}
}
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
public override string ToString()
{
return Name;
}
}
}
}

View file

@ -0,0 +1,64 @@
using System;
using System.Net;
namespace WebsitePanel.WebDav.Core
{
/// <summary>
/// WebDav.Client Namespace.
/// </summary>
/// <see cref="http://doc.webdavsystem.com/ITHit.WebDAV.Client.html"/>
namespace Client
{
public class WebDavSession
{
public ICredentials Credentials { get; set; }
/// <summary>
/// Returns IFolder corresponding to path.
/// </summary>
/// <param name="path">Path to the folder.</param>
/// <returns>Folder corresponding to requested path.</returns>
public IFolder OpenFolder(string path)
{
var folder = new WebDavFolder();
folder.SetCredentials(Credentials);
folder.Open(path);
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 OpenFolder(Uri path)
{
var folder = new WebDavFolder();
folder.SetCredentials(Credentials);
folder.Open(path);
return folder;
}
/// <summary>
/// Returns IResource corresponding to path.
/// </summary>
/// <param name="path">Path to the resource.</param>
/// <returns>Resource corresponding to requested path.</returns>
public IResource OpenResource(string path)
{
return OpenResource(new Uri(path));
}
/// <summary>
/// Returns IResource corresponding to path.
/// </summary>
/// <param name="path">Path to the resource.</param>
/// <returns>Resource corresponding to requested path.</returns>
public IResource OpenResource(Uri path)
{
IFolder folder = OpenFolder(path);
return folder.GetResource(path.Segments[path.Segments.Length - 1]);
}
}
}
}

View file

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{BA147805-9EF1-45F2-BF32-A5825D4E950D}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>WebsitePanel.WebDav.Core</RootNamespace>
<AssemblyName>WebsitePanel.WebDav.Core</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Web">
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Exceptions\UnauthorizedException.cs" />
<Compile Include="Exceptions\WebDavException.cs" />
<Compile Include="Exceptions\WebDavHttpException.cs" />
<Compile Include="IConnectionSettings.cs" />
<Compile Include="IFolder.cs" />
<Compile Include="IHierarchyItem.cs" />
<Compile Include="IItemContent.cs" />
<Compile Include="IResource.cs" />
<Compile Include="IResumableUpload.cs" />
<Compile Include="ItemType.cs" />
<Compile Include="LockUriTokenPair.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Property.cs" />
<Compile Include="PropertyName.cs" />
<Compile Include="WebDavSession.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View file

@ -0,0 +1,249 @@
<?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

@ -0,0 +1,411 @@
<?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

@ -0,0 +1,144 @@
<?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

@ -0,0 +1,137 @@
<?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

@ -0,0 +1,226 @@
<?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

@ -0,0 +1,143 @@
<?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

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<SiteSettings>
<!-- Display Settings -->
<PortalName>WebsitePanel</PortalName>
<!-- Enterprise Server -->
<EnterpriseServer>http://localhost:9002</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

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

View file

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

View file

@ -0,0 +1,664 @@
<?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>

View file

@ -0,0 +1,774 @@
<?xml version="1.0" encoding="utf-8"?>
<Pages>
<include file="ModulesData.config" />
<Page name="Login" roles="?" skin="Login.ascx" adminskin="Login.ascx" hidden="True">
<Content id="ContentPane">
<Module moduleDefinitionID="Login" title="SignIn" container="Login.ascx" />
</Content>
</Page>
<Page name="LoggedUserDetails" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Edit.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="LoggedUserDetails" title="LoggedUserDetails" icon="user_write_48.png" container="Edit.ascx" />
</Content>
</Page>
<Page name="SearchUsers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Browse1.ascx">
<Content id="ContentPane">
<Module moduleDefinitionID="SearchUsers" title="SearchUsers" icon="user_zoom_48.png" container="Edit.ascx" />
</Content>
</Page>
<Page name="SearchSpaces" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Browse1.ascx">
<Content id="ContentPane">
<Module moduleDefinitionID="SearchSpaces" title="SearchSpaces" icon="sphere_zoom_48.png" container="Edit.ascx" />
</Content>
</Page>
<Page name="Home" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" skin="Browse3.ascx" align="right">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="UserCustomersSummary" title="UserCustomersSummary" container="Browse.ascx" icon="group_48.png"/>
<Module moduleDefinitionID="UserSpaces" title="UserSpaces" container="Browse.ascx" viewRoles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" icon="sphere_48.png">
<ModuleData ref="SpaceIcons"/>
</Module>
<Module moduleDefinitionID="UserNotes" title="UserNotes" container="Browse.ascx" viewRoles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" icon="notes_48.png" />
</Content>
<Content id="RightPane">
<Module moduleDefinitionID="UserDetails" title="UserDetails" container="Clear.ascx" />
<Module moduleDefinitionID="UserResellerSettings" title="UserResellerSettings" container="Clear.ascx" viewRoles="Administrator,Reseller" />
</Content>
</Page>
<!-- User Account Menu Pages -->
<Page name="UserCustomers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="UserCustomers" title="UserCustomers" icon="group_48.png" />
</Content>
</Page>
<Page name="UserSpaces" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx" >
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="UserSpaces" title="UserSpaces" icon="sphere_48.png" readOnlyRoles="PlatformHelpdesk,ResellerHelpdesk" />
</Content>
</Page>
<Page name="UserPeers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="UserPeers" title="UserPeers" icon="motion_blur_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content>
</Page>
<Page name="HostingPlans" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="HostingPlans" title="HostingPlans" icon="inventory_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content>
</Page>
<Page name="HostingAddons" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="HostingAddons" title="HostingAddons" icon="inventory_add_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content>
</Page>
<Page name="UserTasks" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="Tasks" title="Tasks" icon="hourglass_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content>
</Page>
<Page name="AuditLog" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="AuditLog" title="AuditLog" icon="record_48.png" />
</Content>
</Page>
<!-- Space Home Page -->
<Page name="SpaceHome" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Browse3.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SpaceQuotas" title="SpaceQuotas" container="Browse.ascx" icon="stadistics_48.png" />
<Module moduleDefinitionID="SpaceNestedSpacesSummary" title="SpaceNestedSpacesSummary" container="Browse.ascx" viewRoles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" icon="sphere_down_48.png" />
<Module moduleDefinitionID="SpaceNotes" title="SpaceNotes" container="Browse.ascx" viewRoles="Administrator,Reseller" icon="notes_48.png" />
</Content>
<Content id="RightPane">
<Module moduleDefinitionID="SpaceDetails" title="SpaceDetails" container="Clear.ascx" />
<Module moduleDefinitionID="SpaceSettings" title="SpaceSettings" container="Clear.ascx" viewRoles="Administrator,Reseller"/>
<Module moduleDefinitionID="SpaceTools" title="SpaceTools" container="Clear.ascx" />
</Content>
</Page>
<!-- Nested Spaces Page -->
<Page name="NestedSpaces" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="NestedSpaces" title="NestedSpaces" icon="sphere_down_48.png" />
</Content>
</Page>
<Page name="SpaceOrganizationHostedSharePoint" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="HostedSolutionMenu" title="HostedSolutionMenu" container="Clear.ascx">
<ModuleData ref="HostedSolutionMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="HostedSharePointSiteCollections" title="HostedSharePointSiteCollections" icon="colors_48.png" />
</Content>
</Page>
<Page name="SpaceDomains" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="Domains" title="Domains" icon="world_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content>
</Page>
<Page name="SpaceWeb" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="WebSites" title="WebSites" icon="location_48.png" />
</Content>
</Page>
<Page name="SpaceWebSites" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="WebSites" title="WebSites" icon="location_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceWebIPAddresses" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="WebSiteIPAddresses" title="WebSiteIPAddresses" icon="adress_48.png" />
</Content>
</Page>
<Page name="LyncPhoneNumbers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="LyncPhoneNumbers" title="LyncPhoneNumbers" icon="adress_48.png" />
</Content>
</Page>
<Page name="SpaceFtpAccounts" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="FtpAccounts" title="FtpAccounts" icon="folder_up_48.png" />
</Content>
</Page>
<Page name="SpaceMail" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True"/>
<Page name="SpaceMailAccounts" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="MailAccounts" title="MailAccounts" icon="accounting_mail_48.png" />
</Content>
</Page>
<Page name="SpaceMailForwardings" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="MailForwardings" title="MailForwardings" icon="safe-mail_next_48.png" />
</Content>
</Page>
<Page name="SpaceMailGroups" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="MailGroups" title="MailGroups" icon="contacts_mail_48.png" />
</Content>
</Page>
<Page name="SpaceMailLists" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="MailLists" title="MailLists" icon="discussion_group_48.png" />
</Content>
</Page>
<Page name="SpaceMailDomains" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="MailDomains" title="MailDomains" icon="web_mail_48.png" />
</Content>
</Page>
<Page name="SpaceDatabases" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True"/>
<Page name="SpaceMsSql2000" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="Sql2000Databases" icon="mssql_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2000" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="Sql2000Users" icon="db_user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2000" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceMsSql2005" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="Sql2005Databases" icon="mssql_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2005" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="Sql2005Users" icon="db_user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2005" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceMsSql2008" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="Sql2008Databases" icon="mssql_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2008" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="Sql2008Users" icon="db_user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2008" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceMsSql2012" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="Sql2012Databases" icon="mssql_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2012" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="Sql2012Users" icon="db_user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2012" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceMsSql2014" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="Sql2014Databases" icon="mssql_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2014" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="Sql2014Users" icon="db_user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2014" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceMySql4" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="MySql4Databases" icon="mysql_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MySQL4" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="MySql4Users" icon="db_user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MySQL4" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceMySql5" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="MySql5Databases" icon="mysql_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MySQL5" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="MySql5Users" icon="db_user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MySQL5" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceSharedSSL" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SharedSSL" title="SharedSSL" icon="world_lock_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceAdvancedStatistics" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="AdvancedStatistics" title="AdvancedStatistics" icon="stadistics_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceOdbc" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="ODBC" title="ODBC" icon="export_db_back_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceScheduledTasks" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="ScheduledTasks" title="ScheduledTasks" icon="calendar_month_2_clock_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceFileManager" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="FileManager" title="FileManager" icon="cabinet_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceWebApplicationsGallery" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="WebApplicationsGallery" title="WebApplicationsGallery" container="Browse.ascx" icon="dvd_disc_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceSharePoint" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True"/>
<Page name="SpaceSharePointSites" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="HostedSolutionMenu" title="HostedSolutionMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SharePointSites" title="SharePointSites" icon="colors_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceSharePointUsers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SharePointUsers" title="SharePointUsers" icon="user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
<Module moduleDefinitionID="SharePointGroups" title="SharePointGroups" icon="group_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="Backup" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<!-- Do not remove this stub page -->
</Page>
<Page name="SpaceExchangeServer" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Exchange.ascx" adminskin="Exchange.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
<Module moduleDefinitionID="OrganizationMenu" title="OrganizationMenu" container="Clear.ascx">
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="ExchangeServer" title="ExchangeServer" icon="" container="Exchange.ascx" admincontainer="Exchange.ascx" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceVPS" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="VPS.ascx" adminskin="VPS.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="VPS" title="VirtualPrivateServers" icon="" container="VPS.ascx" admincontainer="VPS.ascx" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="SpaceVPSForPC" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="VPS.ascx" adminskin="VPS.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="VPSForPC" title="VirtualPrivateServersForPrivateCloud" icon="" container="VPSForPC.ascx" admincontainer="VPSForPC.ascx" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<Page name="OverusageReport" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" hidden="True" skin="Browse1.ascx">
<Content id="ContentPane">
<Module moduleDefinitionID="OverusageReport" title="OverusageReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content>
</Page>
<Page name="Reporting" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" enabled="false" align="left">
<Content id="LeftPane">
<Module moduleDefinitionID="User" title="User" container="Clear.ascx" />
<Module moduleDefinitionID="HostingSpace" title="HostingSpace" container="Clear.ascx" />
</Content>
<Pages>
<Page name="DiskspaceReport" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" skin="Browse1.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="DiskspaceReport" title="DiskspaceReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content>
</Page>
<Page name="BandwidthReport" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" skin="Browse1.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="BandwidthReport" title="BandwidthReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content>
</Page>
</Pages>
</Page>
<Page name="Configuration" roles="Administrator" enabled="false" align="left">
<Pages>
<Page name="VirtualServers" roles="Administrator" skin="Browse1.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="VirtualServers" title="VirtualServers" container="Edit.ascx" icon="network_48.png" />
</Content>
</Page>
<Page name="Servers" roles="Administrator" skin="Browse1.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="Servers" title="Servers" container="Edit.ascx" icon="computer_48.png" />
</Content>
</Page>
<Page name="RDSServers" roles="Administrator" skin="Browse1.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="RDSServers" title="RDSServers" icon="computer_48.png" container="Edit.ascx"/>
</Content>
</Page>
<Page name="IPAddresses" roles="Administrator" skin="Browse1.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="IPAddresses" title="IPAddresses" container="Edit.ascx" icon="adress_48.png" />
</Content>
</Page>
<Page name="PhoneNumbers" roles="Administrator" skin="Browse1.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="PhoneNumbers" title="PhoneNumbers" container="Edit.ascx" icon="adress_48.png" />
</Content>
</Page>
<Page name="SystemSettings" roles="Administrator" skin="Browse1.ascx">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SystemSettings" title="SystemSettings" container="Edit.ascx" icon="tool_48.png" />
</Content>
</Page>
</Pages>
</Page>
<!-- CO Changes -->
<Page name="SpaceApplyEnableHardQuotaFeature" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="ApplyEnableHardQuotaFeature" title="ApplyEnableHardQuotaFeature" icon="cabinet_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
</Content>
</Page>
<!--END-->
</Pages>

View file

@ -0,0 +1,90 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18449
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Resources.Resource {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option or rebuild the Visual Studio project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Web.Application.StronglyTypedResourceProxyBuilder", "12.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class errors {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal errors() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Resources.Resource.errors", global::System.Reflection.Assembly.Load("App_GlobalResources"));
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to Fatal error.
/// </summary>
internal static string Default {
get {
return ResourceManager.GetString("Default", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The requested content was not found.
/// </summary>
internal static string _404 {
get {
return ResourceManager.GetString("_404", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The following server error was encountered.
/// </summary>
internal static string _500 {
get {
return ResourceManager.GetString("_500", resourceCulture);
}
}
}
}

View file

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Default" xml:space="preserve">
<value>Fatal error</value>
</data>
<data name="_404" xml:space="preserve">
<value>The requested content was not found</value>
</data>
<data name="_500" xml:space="preserve">
<value>The following server error was encountered</value>
</data>
</root>

View file

@ -0,0 +1,38 @@
using System.Web.Optimization;
namespace WebsitePanel.WebDavPortal
{
public class BundleConfig
{
// For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
bundles.Add(new ScriptBundle("~/bundles/appScripts").Include(
"~/Scripts/appScripts/recalculateResourseHeight.js",
"~/Scripts/appScripts/uploadingData2.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"));
// Set EnableOptimizations to false for debugging. For more information,
// visit http://go.microsoft.com/fwlink/?LinkId=301862
BundleTable.EnableOptimizations = true;
}
}
}

View file

@ -0,0 +1,13 @@
using System.Web;
using System.Web.Mvc;
namespace WebsitePanel.WebDavPortal
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
}

View file

@ -0,0 +1,31 @@
using System.Web.Mvc;
using System.Web.Routing;
namespace WebsitePanel.WebDavPortal
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "FilePathRoute",
url: "root/{*pathPart}",
defaults: new { controller = "FileSystem", action = "ShowContent", pathPart = UrlParameter.Optional }
);
routes.MapRoute(
name: "Office365DocumentRoute",
url: "office365/root/{*pathPart}",
defaults: new { controller = "FileSystem", action = "ShowOfficeDocument", pathPart = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Account", action = "Login" }
);
}
}
}

View file

@ -0,0 +1,17 @@
using System.Configuration;
using WebsitePanel.WebDavPortal.WebConfigSections;
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public abstract class AbstractConfigCollection
{
protected WebDavExplorerConfigurationSettingsSection ConfigSection;
protected AbstractConfigCollection()
{
ConfigSection =
(WebDavExplorerConfigurationSettingsSection)
ConfigurationManager.GetSection(WebDavExplorerConfigurationSettingsSection.SectionName);
}
}
}

View file

@ -0,0 +1,39 @@
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using WebsitePanel.WebDavPortal.WebConfigSections;
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public class ConnectionStringsCollection : AbstractConfigCollection
{
private readonly IEnumerable<AppConnectionStringsElement> _appConnectionStringsElements;
public ConnectionStringsCollection()
{
_appConnectionStringsElements = ConfigSection.ConnectionStrings.Cast<AppConnectionStringsElement>();
}
public string WebDavServer
{
get
{
AppConnectionStringsElement connectionStr =
_appConnectionStringsElements.FirstOrDefault(
x => x.Key == AppConnectionStringsElement.WebdavConnectionStringKey);
return connectionStr != null ? connectionStr.ConnectionString : null;
}
}
public string LdapServer
{
get
{
AppConnectionStringsElement connectionStr =
_appConnectionStringsElements.FirstOrDefault(
x => x.Key == AppConnectionStringsElement.LdapConnectionStringKey);
return connectionStr != null ? connectionStr.ConnectionString : null;
}
}
}
}

View file

@ -0,0 +1,14 @@
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public class ElementsRendering : AbstractConfigCollection
{
public int DefaultCount { get; private set; }
public int AddElementsCount { get; private set; }
public ElementsRendering()
{
DefaultCount = ConfigSection.ElementsRendering.DefaultCount;
AddElementsCount = ConfigSection.ElementsRendering.AddElementsCount;
}
}
}

View file

@ -0,0 +1,60 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using WebsitePanel.WebDavPortal.WebConfigSections;
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public class FileIconsDictionary : AbstractConfigCollection, IReadOnlyDictionary<string, string>
{
private readonly IDictionary<string, string> _fileIcons;
public FileIconsDictionary()
{
DefaultPath = ConfigSection.FileIcons.DefaultPath;
_fileIcons = ConfigSection.FileIcons.Cast<FileIconsElement>().ToDictionary(x => x.Extension, y => y.Path);
}
public string DefaultPath { get; private set; }
public IEnumerator<KeyValuePair<string, string>> GetEnumerator()
{
return _fileIcons.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public int Count
{
get { return _fileIcons.Count; }
}
public bool ContainsKey(string extension)
{
return _fileIcons.ContainsKey(extension);
}
public bool TryGetValue(string extension, out string path)
{
return _fileIcons.TryGetValue(extension, out path);
}
public string this[string extension]
{
get { return ContainsKey(extension) ? _fileIcons[extension] : DefaultPath; }
}
public IEnumerable<string> Keys
{
get { return _fileIcons.Keys; }
}
public IEnumerable<string> Values
{
get { return _fileIcons.Values; }
}
}
}

View file

@ -0,0 +1,22 @@
using System.Globalization;
using Resources.Resource;
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public class HttpErrorsCollection
{
public string this[int statusCode]
{
get
{
var message = errors.ResourceManager.GetString("_" + statusCode.ToString(CultureInfo.InvariantCulture));
return message ?? Default;
}
}
public string Default
{
get { return errors.Default; }
}
}
}

View file

@ -0,0 +1,42 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using WebsitePanel.WebDavPortal.WebConfigSections;
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public class OfficeOnlineCollection : AbstractConfigCollection, IReadOnlyCollection<string>
{
private readonly IList<string> _officeExtensions;
public OfficeOnlineCollection()
{
IsEnabled = ConfigSection.OfficeOnline.IsEnabled;
Url = ConfigSection.OfficeOnline.Url;
_officeExtensions = ConfigSection.OfficeOnline.Cast<OfficeOnlineElement>().Select(x => x.Extension).ToList();
}
public bool IsEnabled { get; private set; }
public string Url { get; private set; }
public IEnumerator<string> GetEnumerator()
{
return _officeExtensions.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public int Count
{
get { return _officeExtensions.Count; }
}
public bool Contains(string extension)
{
return _officeExtensions.Contains(extension);
}
}
}

View file

@ -0,0 +1,16 @@
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public class Rfc2898CryptographyParameters : AbstractConfigCollection
{
public string PasswordHash { get; private set; }
public string SaltKey { get; private set; }
public string VIKey { get; private set; }
public Rfc2898CryptographyParameters()
{
PasswordHash = ConfigSection.Rfc2898Cryptography.PasswordHash;
SaltKey = ConfigSection.Rfc2898Cryptography.SaltKey;
VIKey = ConfigSection.Rfc2898Cryptography.VIKey;
}
}
}

View file

@ -0,0 +1,55 @@
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using WebsitePanel.WebDavPortal.WebConfigSections;
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public class SessionKeysCollection : AbstractConfigCollection
{
private readonly IEnumerable<SessionKeysElement> _sessionKeys;
public SessionKeysCollection()
{
_sessionKeys = ConfigSection.SessionKeys.Cast<SessionKeysElement>();
}
public string AccountInfo
{
get
{
SessionKeysElement sessionKey =
_sessionKeys.FirstOrDefault(x => x.Key == SessionKeysElement.AccountInfoKey);
return sessionKey != null ? sessionKey.Value : null;
}
}
public string WebDavManager
{
get
{
SessionKeysElement sessionKey =
_sessionKeys.FirstOrDefault(x => x.Key == SessionKeysElement.WebDavManagerKey);
return sessionKey != null ? sessionKey.Value : null;
}
}
public string ResourseRenderCount
{
get
{
SessionKeysElement sessionKey = _sessionKeys.FirstOrDefault(x => x.Key == SessionKeysElement.ResourseRenderCountKey);
return sessionKey != null ? sessionKey.Value : null;
}
}
public string ItemId
{
get
{
SessionKeysElement sessionKey = _sessionKeys.FirstOrDefault(x => x.Key == SessionKeysElement.ItemIdSessionKey);
return sessionKey != null ? sessionKey.Value : null;
}
}
}
}

View file

@ -0,0 +1,14 @@
namespace WebsitePanel.WebDavPortal.Config.Entities
{
public class WebsitePanelConstantUserParameters : AbstractConfigCollection
{
public string Login { get; private set; }
public string Password { get; private set; }
public WebsitePanelConstantUserParameters()
{
Login = ConfigSection.WebsitePanelConstantUser.Login;
Password = ConfigSection.WebsitePanelConstantUser.Password;
}
}
}

View file

@ -0,0 +1,18 @@
using WebsitePanel.WebDavPortal.Config.Entities;
namespace WebsitePanel.WebDavPortal.Config
{
public interface IWebDavAppConfig
{
string UserDomain { get; }
string ApplicationName { get; }
ElementsRendering ElementsRendering { get; }
WebsitePanelConstantUserParameters WebsitePanelConstantUserParameters { get; }
Rfc2898CryptographyParameters Rfc2898CryptographyParameters { get; }
ConnectionStringsCollection ConnectionStrings { get; }
SessionKeysCollection SessionKeys { get; }
FileIconsDictionary FileIcons { get; }
HttpErrorsCollection HttpErrors { get; }
OfficeOnlineCollection OfficeOnline { get; }
}
}

View file

@ -0,0 +1,49 @@
using System.Configuration;
using WebsitePanel.WebDavPortal.Config.Entities;
using WebsitePanel.WebDavPortal.WebConfigSections;
namespace WebsitePanel.WebDavPortal.Config
{
public class WebDavAppConfigManager : IWebDavAppConfig
{
private static WebDavAppConfigManager _instance;
private readonly WebDavExplorerConfigurationSettingsSection _configSection;
private WebDavAppConfigManager()
{
_configSection = ((WebDavExplorerConfigurationSettingsSection) ConfigurationManager.GetSection(WebDavExplorerConfigurationSettingsSection.SectionName));
Rfc2898CryptographyParameters = new Rfc2898CryptographyParameters();
WebsitePanelConstantUserParameters = new WebsitePanelConstantUserParameters();
ElementsRendering = new ElementsRendering();
ConnectionStrings = new ConnectionStringsCollection();
SessionKeys = new SessionKeysCollection();
FileIcons = new FileIconsDictionary();
HttpErrors = new HttpErrorsCollection();
OfficeOnline = new OfficeOnlineCollection();
}
public static WebDavAppConfigManager Instance
{
get { return _instance ?? (_instance = new WebDavAppConfigManager()); }
}
public string UserDomain
{
get { return _configSection.UserDomain.Value; }
}
public string ApplicationName
{
get { return _configSection.ApplicationName.Value; }
}
public ElementsRendering ElementsRendering { get; private set; }
public WebsitePanelConstantUserParameters WebsitePanelConstantUserParameters { get; private set; }
public Rfc2898CryptographyParameters Rfc2898CryptographyParameters { get; private set; }
public ConnectionStringsCollection ConnectionStrings { 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; }
}
}

View file

@ -0,0 +1,7 @@
namespace WebsitePanel.WebDavPortal.Constants
{
public static class DirectoryEntryPropertyNameConstants
{
public const string DistinguishedName = "distinguishedName";
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View file

@ -0,0 +1,35 @@
body {
padding-top: 50px;
padding-bottom: 20px;
}
/* Set padding to keep content from hitting the edges */
.body-content {
padding-left: 15px;
padding-right: 15px;
}
/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea {
max-width: 280px;
}
/* User styles */
.icon-size {
width: 100px;
height: 100px;
}
.element-container {
margin-bottom: 15px;
text-align:center;
}
#errorMessage {
color: red;
font-weight: bold;
padding-top: 5px;
}

View file

@ -0,0 +1,457 @@
/*!
* Bootstrap v3.3.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
}
.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default:disabled,
.btn-default[disabled] {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #2b669a;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #2d6ca2;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #2d6ca2;
border-color: #2b669a;
}
.btn-primary:disabled,
.btn-primary[disabled] {
background-color: #2d6ca2;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success:disabled,
.btn-success[disabled] {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info:disabled,
.btn-info[disabled] {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning:disabled,
.btn-warning[disabled] {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger:disabled,
.btn-danger[disabled] {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #357ebd;
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #3071a9;
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
background-repeat: repeat-x;
border-color: #3278b3;
}
.list-group-item.active .badge,
.list-group-item.active:hover .badge,
.list-group-item.active:focus .badge {
text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
}
/*# sourceMappingURL=bootstrap-theme.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,110 @@
using System;
using System.Configuration;
using System.DirectoryServices;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using Microsoft.Win32;
using Ninject;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Portal;
using WebsitePanel.Providers.HostedSolution;
using WebsitePanel.WebDavPortal.Config;
using WebsitePanel.WebDavPortal.Cryptography;
using WebsitePanel.WebDavPortal.DependencyInjection;
using WebsitePanel.WebDavPortal.Exceptions;
using WebsitePanel.WebDavPortal.Models;
namespace WebsitePanel.WebDavPortal.Controllers
{
public class AccountController : Controller
{
private readonly IKernel _kernel = new StandardKernel(new NinjectSettings {AllowNullInjection = true}, new WebDavExplorerAppModule());
[HttpGet]
public ActionResult Login()
{
try
{
const string userName = "serveradmin";
string correctPassword = "wsp_2012" + Environment.NewLine;
const bool createPersistentCookie = true;
var authTicket = new FormsAuthenticationTicket(2, userName, DateTime.Now, DateTime.Now.AddMinutes(60), true, correctPassword);
var encryptedTicket = FormsAuthentication.Encrypt(authTicket);
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
if (createPersistentCookie)
authCookie.Expires = authTicket.Expiration;
Response.Cookies.Add(authCookie);
const string organizationId = "System";
var itemId = ES.Services.Organizations.GetOrganizationById(organizationId).Id;
var folders = ES.Services.EnterpriseStorage.GetEnterpriseFolders(itemId);
}
catch (System.Exception exception)
{
}
//============
object isAuthentication = _kernel.Get<AccountModel>();
if (isAuthentication != null)
return RedirectToAction("ShowContent", "FileSystem");
return View();
}
[HttpPost]
public ActionResult Login(AccountModel model)
{
var ldapConnectionString = WebDavAppConfigManager.Instance.ConnectionStrings.LdapServer;
if (ldapConnectionString == null || !Regex.IsMatch(ldapConnectionString, @"^LDAP://([\w-]+.)+[\w-]+(/[\w- ./?%&=])?$"))
return View(new AccountModel { LdapError = "LDAP server address is invalid" });
var principal = new WebDavPortalIdentity(model.Login, model.Password);
bool isAuthenticated = principal.Identity.IsAuthenticated;
var organizationId = principal.GetOrganizationId();
ViewBag.LdapIsAuthentication = isAuthenticated;
if (isAuthenticated)
{
AutheticationToServicesUsingWebsitePanelUser();
var organization = ES.Services.Organizations.GetOrganizationById(organizationId);
if (organization == null)
throw new NullReferenceException();
Session[WebDavAppConfigManager.Instance.SessionKeys.ItemId] = organization.Id;
try
{
Session[WebDavAppConfigManager.Instance.SessionKeys.WebDavManager] = new WebDavManager(new NetworkCredential(WebDavAppConfigManager.Instance.UserDomain + "\\" + model.Login, model.Password));
Session[WebDavAppConfigManager.Instance.SessionKeys.AccountInfo] = model;
}
catch (ConnectToWebDavServerException exception)
{
return View(new AccountModel { LdapError = exception.Message });
}
return RedirectToAction("ShowContent", "FileSystem");
}
return View(new AccountModel { LdapError = "The user name or password is incorrect" });
}
private void AutheticationToServicesUsingWebsitePanelUser()
{
var crypto = _kernel.Get<ICryptography>();
var websitePanelLogin = crypto.Decrypt(WebDavAppConfigManager.Instance.WebsitePanelConstantUserParameters.Login);
var websitePanelPassword = crypto.Decrypt(WebDavAppConfigManager.Instance.WebsitePanelConstantUserParameters.Password);
var authTicket = new FormsAuthenticationTicket(1, websitePanelLogin, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout),
FormsAuthentication.SlidingExpiration, websitePanelPassword + Environment.NewLine);
var encryptedTicket = FormsAuthentication.Encrypt(authTicket);
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
if (FormsAuthentication.SlidingExpiration)
authCookie.Expires = authTicket.Expiration;
Response.Cookies.Add(authCookie);
}
}
}

View file

@ -0,0 +1,28 @@
using System;
using System.Web.Mvc;
using WebsitePanel.WebDavPortal.Config;
using WebsitePanel.WebDavPortal.Models;
namespace WebsitePanel.WebDavPortal.Controllers
{
public class ErrorController : Controller
{
public ActionResult Index(int statusCode, Exception exception, bool isAjaxRequet)
{
var model = new ErrorModel
{
HttpStatusCode = statusCode,
Message = WebDavAppConfigManager.Instance.HttpErrors[statusCode],
Exception = exception
};
Response.StatusCode = statusCode;
if (!isAjaxRequet)
return View(model);
var errorObject = new { statusCode = model.HttpStatusCode, message = model.Message };
return Json(errorObject, JsonRequestBehavior.AllowGet);
}
}
}

View file

@ -0,0 +1,74 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mime;
using System.Web;
using System.Web.Mvc;
using Ninject;
using WebsitePanel.WebDav.Core.Client;
using WebsitePanel.WebDav.Core.Exceptions;
using WebsitePanel.WebDavPortal.Config;
using WebsitePanel.WebDavPortal.CustomAttributes;
using WebsitePanel.WebDavPortal.DependencyInjection;
using WebsitePanel.WebDavPortal.Extensions;
using WebsitePanel.WebDavPortal.Models;
namespace WebsitePanel.WebDavPortal.Controllers
{
[LdapAuthorization]
public class FileSystemController : Controller
{
private readonly IKernel _kernel = new StandardKernel(new WebDavExplorerAppModule());
public ActionResult ShowContent(string pathPart = "")
{
var webDavManager = _kernel.Get<IWebDavManager>();
string fileName = pathPart.Split('/').Last();
if (webDavManager.IsFile(fileName))
{
var fileBytes = webDavManager.GetFileBytes(fileName);
return File(fileBytes, MediaTypeNames.Application.Octet, fileName);
}
try
{
webDavManager.OpenFolder(pathPart);
IEnumerable<IHierarchyItem> children = webDavManager.GetChildren();
var model = new ModelForWebDav { Items = children.Take(WebDavAppConfigManager.Instance.ElementsRendering.DefaultCount), UrlSuffix = pathPart };
Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] = WebDavAppConfigManager.Instance.ElementsRendering.DefaultCount;
return View(model);
}
catch (UnauthorizedException)
{
throw new HttpException(404, "Not Found");
}
}
public ActionResult ShowOfficeDocument(string pathPart = "")
{
const string fileUrl = "http://my-files.ru/DownloadSave/xluyk3/test1.docx";
var uri = new Uri(WebDavAppConfigManager.Instance.OfficeOnline.Url).AddParameter("src", fileUrl).ToString();
return View(new OfficeOnlineModel(uri, new Uri(fileUrl).Segments.Last()));
}
[HttpPost]
public ActionResult ShowAdditionalContent()
{
if (Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] != null)
{
var renderedElementsCount = (int)Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount];
var webDavManager = _kernel.Get<IWebDavManager>();
IEnumerable<IHierarchyItem> children = webDavManager.GetChildren();
var result = children.Skip(renderedElementsCount).Take(WebDavAppConfigManager.Instance.ElementsRendering.AddElementsCount);
Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] = renderedElementsCount + WebDavAppConfigManager.Instance.ElementsRendering.AddElementsCount;
return PartialView("_ResourseCollectionPartial", result);
}
return null;
}
}
}

View file

@ -0,0 +1,8 @@
namespace WebsitePanel.WebDavPortal.Cryptography
{
public interface ICryptography
{
string Encrypt(string plainText);
string Decrypt(string encryptedText);
}
}

View file

@ -0,0 +1,62 @@
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace WebsitePanel.WebDavPortal.Cryptography
{
public class Rfc2898Cryptography : ICryptography
{
public string PasswordHash { get; set; }
public string SaltKey { get; set; }
public string VIKey { get; set; }
public Rfc2898Cryptography(string passwordHash, string saltKey, string viKey)
{
PasswordHash = passwordHash;
SaltKey = saltKey;
VIKey = viKey;
}
public string Encrypt(string plainText)
{
byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);
byte[] keyBytes = new Rfc2898DeriveBytes(PasswordHash, Encoding.ASCII.GetBytes(SaltKey)).GetBytes(256/8);
var symmetricKey = new RijndaelManaged {Mode = CipherMode.CBC, Padding = PaddingMode.Zeros};
ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes, Encoding.ASCII.GetBytes(VIKey));
byte[] cipherTextBytes;
using (var memoryStream = new MemoryStream())
{
using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
{
cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
cryptoStream.FlushFinalBlock();
cipherTextBytes = memoryStream.ToArray();
cryptoStream.Close();
}
memoryStream.Close();
}
return Convert.ToBase64String(cipherTextBytes);
}
public string Decrypt(string encryptedText)
{
byte[] cipherTextBytes = Convert.FromBase64String(encryptedText);
byte[] keyBytes = new Rfc2898DeriveBytes(PasswordHash, Encoding.ASCII.GetBytes(SaltKey)).GetBytes(256/8);
var symmetricKey = new RijndaelManaged {Mode = CipherMode.CBC, Padding = PaddingMode.None};
ICryptoTransform decryptor = symmetricKey.CreateDecryptor(keyBytes, Encoding.ASCII.GetBytes(VIKey));
var memoryStream = new MemoryStream(cipherTextBytes);
var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read);
var plainTextBytes = new byte[cipherTextBytes.Length];
int decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length);
memoryStream.Close();
cryptoStream.Close();
return Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount).TrimEnd("\0".ToCharArray());
}
}
}

View file

@ -0,0 +1,26 @@
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using Ninject;
using WebsitePanel.WebDavPortal.DependencyInjection;
using WebsitePanel.WebDavPortal.Models;
namespace WebsitePanel.WebDavPortal.CustomAttributes
{
public class LdapAuthorizationAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
IKernel kernel = new StandardKernel(new NinjectSettings { AllowNullInjection = true }, new WebDavExplorerAppModule());
var accountInfo = kernel.Get<AccountModel>();
if (accountInfo == null)
return false;
return true;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Account", action = "Login" }));
}
}
}

View file

@ -0,0 +1,19 @@
using System.Web.SessionState;
using Ninject;
using Ninject.Activation;
using WebsitePanel.WebDavPortal.Config;
using WebsitePanel.WebDavPortal.Models;
namespace WebsitePanel.WebDavPortal.DependencyInjection
{
public class AccountInfoProvider : Provider<AccountModel>
{
protected override AccountModel CreateInstance(IContext context)
{
var session = context.Kernel.Get<HttpSessionState>();
var accountInfo = session[WebDavAppConfigManager.Instance.SessionKeys.AccountInfo] as AccountModel;
return accountInfo;
}
}
}

View file

@ -0,0 +1,19 @@
using Ninject.Activation;
using WebsitePanel.WebDavPortal.Config;
using WebsitePanel.WebDavPortal.Cryptography;
namespace WebsitePanel.WebDavPortal.DependencyInjection
{
public class Rfc2898CryptographyProvider : Provider<Rfc2898Cryptography>
{
protected override Rfc2898Cryptography CreateInstance(IContext context)
{
var rfc2898Cryptography =
new Rfc2898Cryptography(WebDavAppConfigManager.Instance.Rfc2898CryptographyParameters.PasswordHash,
WebDavAppConfigManager.Instance.Rfc2898CryptographyParameters.SaltKey,
WebDavAppConfigManager.Instance.Rfc2898CryptographyParameters.VIKey);
return rfc2898Cryptography;
}
}
}

View file

@ -0,0 +1,19 @@
using System.Web;
using System.Web.SessionState;
using Ninject.Modules;
using WebsitePanel.WebDavPortal.Cryptography;
using WebsitePanel.WebDavPortal.Models;
namespace WebsitePanel.WebDavPortal.DependencyInjection
{
public class WebDavExplorerAppModule : NinjectModule
{
public override void Load()
{
Bind<HttpSessionState>().ToConstant(HttpContext.Current.Session);
Bind<IWebDavManager>().ToProvider<WebDavManagerProvider>();
Bind<AccountModel>().ToProvider<AccountInfoProvider>();
Bind<ICryptography>().ToProvider<Rfc2898CryptographyProvider>();
}
}
}

View file

@ -0,0 +1,19 @@
using System.Web.SessionState;
using Ninject;
using Ninject.Activation;
using WebsitePanel.WebDavPortal.Config;
using WebsitePanel.WebDavPortal.Models;
namespace WebsitePanel.WebDavPortal.DependencyInjection
{
public class WebDavManagerProvider : Provider<WebDavManager>
{
protected override WebDavManager CreateInstance(IContext context)
{
var session = context.Kernel.Get<HttpSessionState>();
var webDavManager = session[WebDavAppConfigManager.Instance.SessionKeys.WebDavManager] as WebDavManager;
return webDavManager;
}
}
}

View file

@ -0,0 +1,25 @@
using System;
using System.Runtime.Serialization;
namespace WebsitePanel.WebDavPortal.Exceptions
{
[Serializable]
public class ConnectToWebDavServerException : Exception
{
public ConnectToWebDavServerException()
{
}
public ConnectToWebDavServerException(string message) : base(message)
{
}
public ConnectToWebDavServerException(string message, Exception inner) : base(message, inner)
{
}
protected ConnectToWebDavServerException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
}
}

View file

@ -0,0 +1,25 @@
using System;
using System.Runtime.Serialization;
namespace WebsitePanel.WebDavPortal.Exceptions
{
[Serializable]
public class ResourceNotFoundException : Exception
{
public ResourceNotFoundException()
{
}
public ResourceNotFoundException(string message) : base(message)
{
}
public ResourceNotFoundException(string message, Exception inner) : base(message, inner)
{
}
protected ResourceNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
}
}

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace WebsitePanel.WebDavPortal.Extensions
{
public static class DictionaryExtensions
{
public static void AddRange<T>(this ICollection<T> target, IEnumerable<T> source)
{
if (target == null)
throw new ArgumentNullException("target");
if (source == null)
throw new ArgumentNullException("source");
foreach (var element in source)
target.Add(element);
}
}
}

View file

@ -0,0 +1,25 @@
using System;
using System.Web;
namespace WebsitePanel.WebDavPortal.Extensions
{
public static class UriExtensions
{
/// <summary>
/// Adds the specified parameter to the Query String.
/// </summary>
/// <param name="url"></param>
/// <param name="paramName">Name of the parameter to add.</param>
/// <param name="paramValue">Value for the parameter to add.</param>
/// <returns>Url with added parameter.</returns>
public static Uri AddParameter(this Uri url, string paramName, string paramValue)
{
var uriBuilder = new UriBuilder(url);
var query = HttpUtility.ParseQueryString(uriBuilder.Query);
query[paramName] = paramValue;
uriBuilder.Query = query.ToString();
return new Uri(uriBuilder.ToString());
}
}
}

View file

@ -0,0 +1,29 @@
using System.Collections.Generic;
using System.Linq;
using WebsitePanel.WebDavPortal.Config;
using WebsitePanel.WebDavPortal.Extensions;
namespace WebsitePanel.WebDavPortal.FileOperations
{
public class FileOpenerManager
{
private readonly IDictionary<string, FileOpenerType> _operationTypes = new Dictionary<string, FileOpenerType>();
public FileOpenerManager()
{
if (WebDavAppConfigManager.Instance.OfficeOnline.IsEnabled)
_operationTypes.AddRange(WebDavAppConfigManager.Instance.OfficeOnline.ToDictionary(x => x, y => FileOpenerType.OfficeOnline));
}
public FileOpenerType this[string fileExtension]
{
get
{
FileOpenerType result;
if (_operationTypes.TryGetValue(fileExtension, out result))
return result;
return FileOpenerType.Download;
}
}
}
}

View file

@ -0,0 +1,7 @@
namespace WebsitePanel.WebDavPortal.FileOperations
{
public enum FileOpenerType
{
Download, OfficeOnline
}
}

View file

@ -0,0 +1 @@
<%@ Application Codebehind="Global.asax.cs" Inherits="WebsitePanel.WebDavPortal.MvcApplication" Language="C#" %>

View file

@ -0,0 +1,47 @@
using System;
using System.Web;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using WebsitePanel.WebDavPortal.Controllers;
namespace WebsitePanel.WebDavPortal
{
public class MvcApplication : HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void Application_Error(object sender, EventArgs e)
{
Exception lastError = Server.GetLastError();
Server.ClearError();
int statusCode;
if (lastError.GetType() == typeof (HttpException))
statusCode = ((HttpException) lastError).GetHttpCode();
else
statusCode = 500;
var contextWrapper = new HttpContextWrapper(Context);
var routeData = new RouteData();
routeData.Values.Add("controller", "Error");
routeData.Values.Add("action", "Index");
routeData.Values.Add("statusCode", statusCode);
routeData.Values.Add("exception", lastError);
routeData.Values.Add("isAjaxRequet", contextWrapper.Request.IsAjaxRequest());
IController controller = new ErrorController();
var requestContext = new RequestContext(contextWrapper, routeData);
controller.Execute(requestContext);
Response.End();
}
}
}

View file

@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace WebsitePanel.WebDavPortal.Models
{
public class AccountModel
{
[Required]
[Display(Name = @"Login")]
public string Login { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = @"Password")]
public string Password { get; set; }
public string LdapError { get; set; }
}
}

View file

@ -0,0 +1,60 @@
using System;
using System.DirectoryServices;
using System.Security.Principal;
namespace WebsitePanel.WebDavPortal.Models
{
public class DirectoryIdentity : IIdentity
{
private readonly bool _auth;
private readonly string _path;
public DirectoryIdentity(string userName, string password) : this(null, userName, password)
{
}
public DirectoryIdentity(string path, string userName, string password) : this(new DirectoryEntry(path, userName, password))
{
}
public DirectoryIdentity(DirectoryEntry directoryEntry)
{
try
{
var userName = directoryEntry.Username;
var ds = new DirectorySearcher(directoryEntry);
if (userName.Contains("\\"))
userName = userName.Substring(userName.IndexOf("\\") + 1);
ds.Filter = "samaccountname=" + userName;
ds.PropertiesToLoad.Add("cn");
SearchResult sr = ds.FindOne();
if (sr == null) throw new Exception();
_path = sr.Path;
_auth = true;
}
catch (Exception exception)
{
_auth = false;
}
}
public string AuthenticationType
{
get { return null; }
}
public bool IsAuthenticated
{
get { return _auth; }
}
public string Name
{
get
{
int i = _path.IndexOf('=') + 1, j = _path.IndexOf(',');
return _path.Substring(i, j - i);
}
}
}
}

View file

@ -0,0 +1,11 @@
using System;
namespace WebsitePanel.WebDavPortal.Models
{
public class ErrorModel
{
public int HttpStatusCode { get; set; }
public string Message { get; set; }
public Exception Exception { get; set; }
}
}

View file

@ -0,0 +1,14 @@
using System.Collections.Generic;
using WebsitePanel.WebDav.Core.Client;
namespace WebsitePanel.WebDavPortal.Models
{
public interface IWebDavManager
{
void OpenFolder(string pathPart);
IEnumerable<IHierarchyItem> GetChildren();
bool IsFile(string fileName);
byte[] GetFileBytes(string fileName);
string GetFileUrl(string fileName);
}
}

View file

@ -0,0 +1,12 @@
using System.Collections.Generic;
using WebsitePanel.WebDav.Core.Client;
namespace WebsitePanel.WebDavPortal.Models
{
public class ModelForWebDav
{
public IEnumerable<IHierarchyItem> Items { get; set; }
public string UrlSuffix { get; set; }
public string Error { get; set; }
}
}

View file

@ -0,0 +1,14 @@
namespace WebsitePanel.WebDavPortal.Models
{
public class OfficeOnlineModel
{
public string Url { get; set; }
public string FileName { get; set; }
public OfficeOnlineModel(string url, string fileName)
{
Url = url;
FileName = fileName;
}
}
}

View file

@ -0,0 +1,120 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text.RegularExpressions;
using WebsitePanel.WebDav.Core.Client;
using WebsitePanel.WebDavPortal.Config;
using WebsitePanel.WebDavPortal.Exceptions;
namespace WebsitePanel.WebDavPortal.Models
{
public class WebDavManager : IWebDavManager
{
private readonly WebDavSession _webDavSession = new WebDavSession();
private IFolder _currentFolder;
private string _webDavRootPath;
public WebDavManager(ICredentials credentials)
{
_webDavSession.Credentials = credentials;
ConnectToWebDavServer();
}
public WebDavManager()
{
ConnectToWebDavServer();
}
public void OpenFolder(string pathPart)
{
_currentFolder = _webDavSession.OpenFolder(_webDavRootPath + pathPart);
}
public IEnumerable<IHierarchyItem> GetChildren()
{
IHierarchyItem[] children = _currentFolder.GetChildren();
List<IHierarchyItem> sortedChildren =
children.Where(x => x.ItemType == ItemType.Folder).OrderBy(x => x.DisplayName).ToList();
sortedChildren.AddRange(children.Where(x => x.ItemType != ItemType.Folder).OrderBy(x => x.DisplayName));
return sortedChildren;
}
public bool IsFile(string fileName)
{
try
{
IResource resource = _currentFolder.GetResource(fileName);
Stream stream = resource.GetReadStream();
return true;
}
catch (InvalidOperationException)
{
}
return false;
}
public byte[] GetFileBytes(string fileName)
{
try
{
IResource resource = _currentFolder.GetResource(fileName);
Stream stream = resource.GetReadStream();
byte[] fileBytes = ReadFully(stream);
return fileBytes;
}
catch (InvalidOperationException exception)
{
throw new ResourceNotFoundException("Resource not found", exception);
}
}
public string GetFileUrl(string fileName)
{
try
{
IResource resource = _currentFolder.GetResource(fileName);
return resource.Href.ToString();
}
catch (InvalidOperationException exception)
{
throw new ResourceNotFoundException("Resource not found", exception);
}
}
private void ConnectToWebDavServer()
{
string webDavServerPath = WebDavAppConfigManager.Instance.ConnectionStrings.WebDavServer;
if (webDavServerPath == null ||
!Regex.IsMatch(webDavServerPath, @"^http(s)?://([\w-]+.)+[\w-]+(/[\w- ./?%&=])?$"))
throw new ConnectToWebDavServerException();
if (webDavServerPath.Last() != '/') webDavServerPath += "/";
_webDavRootPath = webDavServerPath;
try
{
_currentFolder = _webDavSession.OpenFolder(_webDavRootPath);
}
catch (WebException exception)
{
throw new ConnectToWebDavServerException(
string.Format("Unable to connect to a remote WebDav server \"{0}\"", webDavServerPath), exception);
}
}
private byte[] ReadFully(Stream input)
{
var buffer = new byte[16*1024];
using (var ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
ms.Write(buffer, 0, read);
return ms.ToArray();
}
}
}
}

View file

@ -0,0 +1,39 @@
using System;
using System.DirectoryServices;
using System.Security.Principal;
namespace WebsitePanel.WebDavPortal.Models
{
public class WebDavPortalIdentity
{
private readonly DirectoryEntry _dictionaryEntry;
public IIdentity Identity { get; protected set; }
public WebDavPortalIdentity(string userName, string password) : this(null, userName, password)
{
}
public WebDavPortalIdentity(string path, string userName, string password)
{
_dictionaryEntry = new DirectoryEntry(path, userName, password);
Identity = new DirectoryIdentity(_dictionaryEntry);
}
public object GetADObjectProperty(string name)
{
return _dictionaryEntry.Properties.Contains(name) ? _dictionaryEntry.Properties[name][0] : null;
}
public string GetOrganizationId()
{
const string distinguishedName = "CN=user200000,OU=virt,OU=TESTOU,DC=test,DC=local";
//string distinguishedName = GetADObjectProperty(DirectoryEntryPropertyNameConstants.DistinguishedName).ToString();
string[] distinguishedNameParts = distinguishedName.Split(',', '=');
if (distinguishedNameParts[2] != "OU")
throw new Exception(@"Problems with parsing 'distinguishedName' DirectoryEntry property");
return distinguishedNameParts[3];
}
}
}

View file

@ -0,0 +1,151 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Your ASP.NET application</title>
<style>
body {
background: #fff;
color: #505050;
font: 14px 'Segoe UI', tahoma, arial, helvetica, sans-serif;
margin: 20px;
padding: 0;
}
#header {
background: #efefef;
padding: 0;
}
h1 {
font-size: 48px;
font-weight: normal;
margin: 0;
padding: 0 30px;
line-height: 150px;
}
p {
font-size: 20px;
color: #fff;
background: #969696;
padding: 0 30px;
line-height: 50px;
}
#main {
padding: 5px 30px;
}
.section {
width: 21.7%;
float: left;
margin: 0 0 0 4%;
}
.section h2 {
font-size: 13px;
text-transform: uppercase;
margin: 0;
border-bottom: 1px solid silver;
padding-bottom: 12px;
margin-bottom: 8px;
}
.section.first {
margin-left: 0;
}
.section.first h2 {
font-size: 24px;
text-transform: none;
margin-bottom: 25px;
border: none;
}
.section.first li {
border-top: 1px solid silver;
padding: 8px 0;
}
.section.last {
margin-right: 0;
}
ul {
list-style: none;
padding: 0;
margin: 0;
line-height: 20px;
}
li {
padding: 4px 0;
}
a {
color: #267cb2;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<div id="header">
<h1>Your ASP.NET application</h1>
<p>Congratulations! You've created a project</p>
</div>
<div id="main">
<div class="section first">
<h2>This application consists of:</h2>
<ul>
<li>Sample pages showing basic nav between Home, About, and Contact</li>
<li>Theming using <a href="http://go.microsoft.com/fwlink/?LinkID=320754">Bootstrap</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320755">Authentication</a>, if selected, shows how to register and sign in</li>
<li>ASP.NET features managed using <a href="http://go.microsoft.com/fwlink/?LinkID=320756">NuGet</a></li>
</ul>
</div>
<div class="section">
<h2>Customize app</h2>
<ul>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320757">Get started with ASP.NET MVC</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320758">Change the site's theme</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320759">Add more libraries using NuGet</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320760">Configure authentication</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320761">Customize information about the website users</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320762">Get information from social providers</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320763">Add HTTP services using ASP.NET Web API</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320764">Secure your web API</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320765">Add real-time web with ASP.NET SignalR</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320766">Add components using Scaffolding</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320767">Test your app with Browser Link</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320768">Share your project</a></li>
</ul>
</div>
<div class="section">
<h2>Deploy</h2>
<ul>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320769">Ensure your app is ready for production</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320770">Windows Azure</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320771">Hosting providers</a></li>
</ul>
</div>
<div class="section last">
<h2>Get help</h2>
<ul>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320772">Get help</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=320773">Get more templates</a></li>
</ul>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("WebsitePanel.WebDavPortal")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WebsitePanel.WebDavPortal")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("ec17da5a-3c21-4f7c-88a4-56fe47fced6c")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View file

@ -0,0 +1,5 @@
/// <reference path="modernizr-2.8.3.js" />
/// <reference path="jquery-2.1.1.js" />
/// <autosync enabled="true" />
/// <reference path="bootstrap.js" />
/// <reference path="respond.js" />

Some files were not shown because too many files have changed in this diff Show more