web portal es tab view added
This commit is contained in:
parent
c78570eb11
commit
6bf818f1d8
35 changed files with 2592 additions and 116 deletions
|
@ -8729,3 +8729,147 @@ AND SI.ItemName = @ItemName
|
||||||
AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName))
|
AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName))
|
||||||
RETURN
|
RETURN
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
--ES OWA Editing
|
||||||
|
IF NOT EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'EnterpriseFoldersOwaPermissions')
|
||||||
|
CREATE TABLE EnterpriseFoldersOwaPermissions
|
||||||
|
(
|
||||||
|
ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
||||||
|
ItemID INT NOT NULL,
|
||||||
|
FolderID INT NOT NULL,
|
||||||
|
AccountID INT NOT NULL
|
||||||
|
)
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME ='FK_EnterpriseFoldersOwaPermissions_AccountId')
|
||||||
|
ALTER TABLE [dbo].[EnterpriseFoldersOwaPermissions]
|
||||||
|
DROP CONSTRAINT [FK_EnterpriseFoldersOwaPermissions_AccountId]
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE [dbo].[EnterpriseFoldersOwaPermissions] WITH CHECK ADD CONSTRAINT [FK_EnterpriseFoldersOwaPermissions_AccountId] FOREIGN KEY([AccountID])
|
||||||
|
REFERENCES [dbo].[ExchangeAccounts] ([AccountID])
|
||||||
|
ON DELETE CASCADE
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME ='FK_EnterpriseFoldersOwaPermissions_FolderId')
|
||||||
|
ALTER TABLE [dbo].[EnterpriseFoldersOwaPermissions]
|
||||||
|
DROP CONSTRAINT [FK_EnterpriseFoldersOwaPermissions_FolderId]
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE [dbo].[EnterpriseFoldersOwaPermissions] WITH CHECK ADD CONSTRAINT [FK_EnterpriseFoldersOwaPermissions_FolderId] FOREIGN KEY([FolderID])
|
||||||
|
REFERENCES [dbo].[EnterpriseFolders] ([EnterpriseFolderID])
|
||||||
|
ON DELETE CASCADE
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteAllEnterpriseFolderOwaUsers')
|
||||||
|
DROP PROCEDURE DeleteAllEnterpriseFolderOwaUsers
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE [dbo].[DeleteAllEnterpriseFolderOwaUsers]
|
||||||
|
(
|
||||||
|
@ItemID int,
|
||||||
|
@FolderID int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
DELETE FROM EnterpriseFoldersOwaPermissions
|
||||||
|
WHERE ItemId = @ItemID AND FolderID = @FolderID
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddEnterpriseFolderOwaUser')
|
||||||
|
DROP PROCEDURE AddEnterpriseFolderOwaUser
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE [dbo].[AddEnterpriseFolderOwaUser]
|
||||||
|
(
|
||||||
|
@ESOwsaUserId INT OUTPUT,
|
||||||
|
@ItemID INT,
|
||||||
|
@FolderID INT,
|
||||||
|
@AccountID INT
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
INSERT INTO EnterpriseFoldersOwaPermissions
|
||||||
|
(
|
||||||
|
ItemID ,
|
||||||
|
FolderID,
|
||||||
|
AccountID
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
(
|
||||||
|
@ItemID,
|
||||||
|
@FolderID,
|
||||||
|
@AccountID
|
||||||
|
)
|
||||||
|
|
||||||
|
SET @ESOwsaUserId = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetEnterpriseFolderOwaUsers')
|
||||||
|
DROP PROCEDURE GetEnterpriseFolderOwaUsers
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE [dbo].[GetEnterpriseFolderOwaUsers]
|
||||||
|
(
|
||||||
|
@ItemID INT,
|
||||||
|
@FolderID INT
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
EA.AccountID,
|
||||||
|
EA.ItemID,
|
||||||
|
EA.AccountType,
|
||||||
|
EA.AccountName,
|
||||||
|
EA.DisplayName,
|
||||||
|
EA.PrimaryEmailAddress,
|
||||||
|
EA.MailEnabledPublicFolder,
|
||||||
|
EA.MailboxPlanId,
|
||||||
|
EA.SubscriberNumber,
|
||||||
|
EA.UserPrincipalName
|
||||||
|
FROM EnterpriseFoldersOwaPermissions AS EFOP
|
||||||
|
LEFT JOIN ExchangeAccounts AS EA ON EA.AccountID = EFOP.AccountID
|
||||||
|
WHERE EFOP.ItemID = @ItemID AND EFOP.FolderID = @FolderID
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetEnterpriseFolderId')
|
||||||
|
DROP PROCEDURE GetEnterpriseFolderId
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE [dbo].[GetEnterpriseFolderId]
|
||||||
|
(
|
||||||
|
@ItemID INT,
|
||||||
|
@FolderName varchar(max)
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT TOP 1
|
||||||
|
EnterpriseFolderID
|
||||||
|
FROM EnterpriseFolders
|
||||||
|
WHERE ItemId = @ItemID AND FolderName = @FolderName
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetUserEnterpriseFolderWithOwaEditPermission')
|
||||||
|
DROP PROCEDURE GetUserEnterpriseFolderWithOwaEditPermission
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE [dbo].[GetUserEnterpriseFolderWithOwaEditPermission]
|
||||||
|
(
|
||||||
|
@ItemID INT,
|
||||||
|
@AccountID INT
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
EF.FolderName
|
||||||
|
FROM EnterpriseFoldersOwaPermissions AS EFOP
|
||||||
|
LEFT JOIN [dbo].[EnterpriseFolders] AS EF ON EF.EnterpriseFolderID = EFOP.FolderID
|
||||||
|
WHERE EFOP.ItemID = @ItemID AND EFOP.AccountID = @AccountID
|
||||||
|
GO
|
|
@ -81,6 +81,16 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback SetEnterpriseFolderSettingsOperationCompleted;
|
private System.Threading.SendOrPostCallback SetEnterpriseFolderSettingsOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback SetEnterpriseFolderGeneralSettingsOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback SetEnterpriseFolderPermissionSettingsOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback GetFolderOwaAccountsOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback SetFolderOwaAccountsOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback GetUserEnterpriseFolderWithOwaEditPermissionOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GetStatisticsOperationCompleted;
|
private System.Threading.SendOrPostCallback GetStatisticsOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GetStatisticsByOrganizationOperationCompleted;
|
private System.Threading.SendOrPostCallback GetStatisticsByOrganizationOperationCompleted;
|
||||||
|
@ -169,6 +179,21 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event SetEnterpriseFolderSettingsCompletedEventHandler SetEnterpriseFolderSettingsCompleted;
|
public event SetEnterpriseFolderSettingsCompletedEventHandler SetEnterpriseFolderSettingsCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event SetEnterpriseFolderGeneralSettingsCompletedEventHandler SetEnterpriseFolderGeneralSettingsCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event SetEnterpriseFolderPermissionSettingsCompletedEventHandler SetEnterpriseFolderPermissionSettingsCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event GetFolderOwaAccountsCompletedEventHandler GetFolderOwaAccountsCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event SetFolderOwaAccountsCompletedEventHandler SetFolderOwaAccountsCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event GetUserEnterpriseFolderWithOwaEditPermissionCompletedEventHandler GetUserEnterpriseFolderWithOwaEditPermissionCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event GetStatisticsCompletedEventHandler GetStatisticsCompleted;
|
public event GetStatisticsCompletedEventHandler GetStatisticsCompleted;
|
||||||
|
|
||||||
|
@ -1223,6 +1248,237 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SetEnterpriseFolderGeneralSettings", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void SetEnterpriseFolderGeneralSettings(int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType) {
|
||||||
|
this.Invoke("SetEnterpriseFolderGeneralSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
directoyBrowsingEnabled,
|
||||||
|
quota,
|
||||||
|
quotaType});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginSetEnterpriseFolderGeneralSettings(int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("SetEnterpriseFolderGeneralSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
directoyBrowsingEnabled,
|
||||||
|
quota,
|
||||||
|
quotaType}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndSetEnterpriseFolderGeneralSettings(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SetEnterpriseFolderGeneralSettingsAsync(int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType) {
|
||||||
|
this.SetEnterpriseFolderGeneralSettingsAsync(itemId, folder, directoyBrowsingEnabled, quota, quotaType, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SetEnterpriseFolderGeneralSettingsAsync(int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType, object userState) {
|
||||||
|
if ((this.SetEnterpriseFolderGeneralSettingsOperationCompleted == null)) {
|
||||||
|
this.SetEnterpriseFolderGeneralSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetEnterpriseFolderGeneralSettingsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("SetEnterpriseFolderGeneralSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
directoyBrowsingEnabled,
|
||||||
|
quota,
|
||||||
|
quotaType}, this.SetEnterpriseFolderGeneralSettingsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSetEnterpriseFolderGeneralSettingsOperationCompleted(object arg) {
|
||||||
|
if ((this.SetEnterpriseFolderGeneralSettingsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.SetEnterpriseFolderGeneralSettingsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SetEnterpriseFolderPermissionSetting" +
|
||||||
|
"s", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void SetEnterpriseFolderPermissionSettings(int itemId, SystemFile folder, ESPermission[] permissions) {
|
||||||
|
this.Invoke("SetEnterpriseFolderPermissionSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
permissions});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginSetEnterpriseFolderPermissionSettings(int itemId, SystemFile folder, ESPermission[] permissions, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("SetEnterpriseFolderPermissionSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
permissions}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndSetEnterpriseFolderPermissionSettings(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SetEnterpriseFolderPermissionSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions) {
|
||||||
|
this.SetEnterpriseFolderPermissionSettingsAsync(itemId, folder, permissions, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SetEnterpriseFolderPermissionSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions, object userState) {
|
||||||
|
if ((this.SetEnterpriseFolderPermissionSettingsOperationCompleted == null)) {
|
||||||
|
this.SetEnterpriseFolderPermissionSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetEnterpriseFolderPermissionSettingsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("SetEnterpriseFolderPermissionSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
permissions}, this.SetEnterpriseFolderPermissionSettingsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSetEnterpriseFolderPermissionSettingsOperationCompleted(object arg) {
|
||||||
|
if ((this.SetEnterpriseFolderPermissionSettingsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.SetEnterpriseFolderPermissionSettingsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetFolderOwaAccounts", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public OrganizationUser[] GetFolderOwaAccounts(int itemId, SystemFile folder) {
|
||||||
|
object[] results = this.Invoke("GetFolderOwaAccounts", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder});
|
||||||
|
return ((OrganizationUser[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginGetFolderOwaAccounts(int itemId, SystemFile folder, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("GetFolderOwaAccounts", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public OrganizationUser[] EndGetFolderOwaAccounts(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((OrganizationUser[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetFolderOwaAccountsAsync(int itemId, SystemFile folder) {
|
||||||
|
this.GetFolderOwaAccountsAsync(itemId, folder, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetFolderOwaAccountsAsync(int itemId, SystemFile folder, object userState) {
|
||||||
|
if ((this.GetFolderOwaAccountsOperationCompleted == null)) {
|
||||||
|
this.GetFolderOwaAccountsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFolderOwaAccountsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("GetFolderOwaAccounts", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder}, this.GetFolderOwaAccountsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGetFolderOwaAccountsOperationCompleted(object arg) {
|
||||||
|
if ((this.GetFolderOwaAccountsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.GetFolderOwaAccountsCompleted(this, new GetFolderOwaAccountsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SetFolderOwaAccounts", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void SetFolderOwaAccounts(int itemId, SystemFile folder, OrganizationUser[] users) {
|
||||||
|
this.Invoke("SetFolderOwaAccounts", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
users});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginSetFolderOwaAccounts(int itemId, SystemFile folder, OrganizationUser[] users, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("SetFolderOwaAccounts", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
users}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndSetFolderOwaAccounts(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SetFolderOwaAccountsAsync(int itemId, SystemFile folder, OrganizationUser[] users) {
|
||||||
|
this.SetFolderOwaAccountsAsync(itemId, folder, users, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SetFolderOwaAccountsAsync(int itemId, SystemFile folder, OrganizationUser[] users, object userState) {
|
||||||
|
if ((this.SetFolderOwaAccountsOperationCompleted == null)) {
|
||||||
|
this.SetFolderOwaAccountsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetFolderOwaAccountsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("SetFolderOwaAccounts", new object[] {
|
||||||
|
itemId,
|
||||||
|
folder,
|
||||||
|
users}, this.SetFolderOwaAccountsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSetFolderOwaAccountsOperationCompleted(object arg) {
|
||||||
|
if ((this.SetFolderOwaAccountsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.SetFolderOwaAccountsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetUserEnterpriseFolderWithOwaEditPe" +
|
||||||
|
"rmission", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public string[] GetUserEnterpriseFolderWithOwaEditPermission(int itemId, int[] accountIds) {
|
||||||
|
object[] results = this.Invoke("GetUserEnterpriseFolderWithOwaEditPermission", new object[] {
|
||||||
|
itemId,
|
||||||
|
accountIds});
|
||||||
|
return ((string[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginGetUserEnterpriseFolderWithOwaEditPermission(int itemId, int[] accountIds, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("GetUserEnterpriseFolderWithOwaEditPermission", new object[] {
|
||||||
|
itemId,
|
||||||
|
accountIds}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public string[] EndGetUserEnterpriseFolderWithOwaEditPermission(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((string[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetUserEnterpriseFolderWithOwaEditPermissionAsync(int itemId, int[] accountIds) {
|
||||||
|
this.GetUserEnterpriseFolderWithOwaEditPermissionAsync(itemId, accountIds, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetUserEnterpriseFolderWithOwaEditPermissionAsync(int itemId, int[] accountIds, object userState) {
|
||||||
|
if ((this.GetUserEnterpriseFolderWithOwaEditPermissionOperationCompleted == null)) {
|
||||||
|
this.GetUserEnterpriseFolderWithOwaEditPermissionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetUserEnterpriseFolderWithOwaEditPermissionOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("GetUserEnterpriseFolderWithOwaEditPermission", new object[] {
|
||||||
|
itemId,
|
||||||
|
accountIds}, this.GetUserEnterpriseFolderWithOwaEditPermissionOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGetUserEnterpriseFolderWithOwaEditPermissionOperationCompleted(object arg) {
|
||||||
|
if ((this.GetUserEnterpriseFolderWithOwaEditPermissionCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.GetUserEnterpriseFolderWithOwaEditPermissionCompleted(this, new GetUserEnterpriseFolderWithOwaEditPermissionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetStatistics", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetStatistics", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public OrganizationStatistics GetStatistics(int itemId) {
|
public OrganizationStatistics GetStatistics(int itemId) {
|
||||||
|
@ -2053,6 +2309,70 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void SetEnterpriseFolderSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
public delegate void SetEnterpriseFolderSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void SetEnterpriseFolderGeneralSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void SetEnterpriseFolderPermissionSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void GetFolderOwaAccountsCompletedEventHandler(object sender, GetFolderOwaAccountsCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class GetFolderOwaAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal GetFolderOwaAccountsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public OrganizationUser[] Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((OrganizationUser[])(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void SetFolderOwaAccountsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void GetUserEnterpriseFolderWithOwaEditPermissionCompletedEventHandler(object sender, GetUserEnterpriseFolderWithOwaEditPermissionCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class GetUserEnterpriseFolderWithOwaEditPermissionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal GetUserEnterpriseFolderWithOwaEditPermissionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public string[] Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((string[])(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void GetStatisticsCompletedEventHandler(object sender, GetStatisticsCompletedEventArgs e);
|
public delegate void GetStatisticsCompletedEventHandler(object sender, GetStatisticsCompletedEventArgs e);
|
||||||
|
|
|
@ -4543,6 +4543,69 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void DeleteAllEnterpriseFolderOwaUsers(int itemId, int folderId)
|
||||||
|
{
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"DeleteAllEnterpriseFolderOwaUsers",
|
||||||
|
new SqlParameter("@ItemID", itemId),
|
||||||
|
new SqlParameter("@FolderID", folderId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int AddEnterpriseFolderOwaUser(int itemId, int folderId, int accountId)
|
||||||
|
{
|
||||||
|
SqlParameter id = new SqlParameter("@ESOwsaUserId", SqlDbType.Int);
|
||||||
|
id.Direction = ParameterDirection.Output;
|
||||||
|
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"AddEnterpriseFolderOwaUser",
|
||||||
|
id,
|
||||||
|
new SqlParameter("@ItemID", itemId),
|
||||||
|
new SqlParameter("@FolderID", folderId),
|
||||||
|
new SqlParameter("@AccountId", accountId)
|
||||||
|
);
|
||||||
|
|
||||||
|
// read identity
|
||||||
|
return Convert.ToInt32(id.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IDataReader GetEnterpriseFolderOwaUsers(int itemId, int folderId)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"GetEnterpriseFolderOwaUsers",
|
||||||
|
new SqlParameter("@ItemID", itemId),
|
||||||
|
new SqlParameter("@FolderID", folderId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IDataReader GetEnterpriseFolderId(int itemId, string folderName)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"GetEnterpriseFolderId",
|
||||||
|
new SqlParameter("@ItemID", itemId),
|
||||||
|
new SqlParameter("@FolderName", folderName)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IDataReader GetUserEnterpriseFolderWithOwaEditPermission(int itemId, int accountId)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"GetUserEnterpriseFolderWithOwaEditPermission",
|
||||||
|
new SqlParameter("@ItemID", itemId),
|
||||||
|
new SqlParameter("@AccountID", accountId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Support Service Levels
|
#region Support Service Levels
|
||||||
|
|
|
@ -152,6 +152,16 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
StartESBackgroundTaskInternal("SET_ENTERPRISE_FOLDER_SETTINGS", itemId, folder, permissions, directoyBrowsingEnabled, quota, quotaType);
|
StartESBackgroundTaskInternal("SET_ENTERPRISE_FOLDER_SETTINGS", itemId, folder, permissions, directoyBrowsingEnabled, quota, quotaType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SetESGeneralSettings(int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
||||||
|
{
|
||||||
|
SetESGeneralSettingsInternal("SET_ENTERPRISE_FOLDER_GENERAL_SETTINGS", itemId, folder, directoyBrowsingEnabled, quota, quotaType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetESFolderPermissionSettings(int itemId, SystemFile folder, ESPermission[] permissions)
|
||||||
|
{
|
||||||
|
SetESFolderPermissionSettingsInternal("SET_ENTERPRISE_FOLDER_GENERAL_SETTINGS", itemId, folder, permissions);
|
||||||
|
}
|
||||||
|
|
||||||
public static int AddWebDavAccessToken(WebDavAccessToken accessToken)
|
public static int AddWebDavAccessToken(WebDavAccessToken accessToken)
|
||||||
{
|
{
|
||||||
return DataProvider.AddWebDavAccessToken(accessToken);
|
return DataProvider.AddWebDavAccessToken(accessToken);
|
||||||
|
@ -257,6 +267,69 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return rootFolders;
|
return rootFolders;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static void SetESGeneralSettingsInternal(string taskName, int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
||||||
|
{
|
||||||
|
// load organization
|
||||||
|
var org = OrganizationController.GetOrganization(itemId);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TaskManager.StartTask("ENTERPRISE_STORAGE", taskName, org.PackageId);
|
||||||
|
|
||||||
|
EnterpriseStorageController.SetFRSMQuotaOnFolder(itemId, folder.Name, quota, quotaType);
|
||||||
|
EnterpriseStorageController.SetDirectoryBrowseEnabled(itemId, folder.Url, directoyBrowsingEnabled);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// log error
|
||||||
|
TaskManager.WriteError(ex, "Error executing enterprise storage background task");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// complete task
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void SetESFolderPermissionSettingsInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions)
|
||||||
|
{
|
||||||
|
// load organization
|
||||||
|
var org = OrganizationController.GetOrganization(itemId);
|
||||||
|
|
||||||
|
new Thread(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TaskManager.StartTask("ENTERPRISE_STORAGE", taskName, org.PackageId);
|
||||||
|
|
||||||
|
EnterpriseStorageController.SetFolderPermission(itemId, folder.Name, permissions);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// log error
|
||||||
|
TaskManager.WriteError(ex, "Error executing enterprise storage background task");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// complete task
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}).Start();
|
||||||
|
}
|
||||||
|
|
||||||
protected static void StartESBackgroundTaskInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
protected static void StartESBackgroundTaskInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
||||||
{
|
{
|
||||||
// load organization
|
// load organization
|
||||||
|
@ -1265,6 +1338,87 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static OrganizationUser[] GetFolderOwaAccounts(int itemId, string folderName)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var folderId = GetFolderId(itemId, folderName);
|
||||||
|
|
||||||
|
var users = ObjectUtils.CreateListFromDataReader<OrganizationUser>(DataProvider.GetEnterpriseFolderOwaUsers(itemId, folderId));
|
||||||
|
|
||||||
|
return users.ToArray();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetFolderOwaAccounts(int itemId, string folderName, OrganizationUser[] users)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var folderId = GetFolderId(itemId, folderName);
|
||||||
|
|
||||||
|
DataProvider.DeleteAllEnterpriseFolderOwaUsers(itemId, folderId);
|
||||||
|
|
||||||
|
foreach (var user in users)
|
||||||
|
{
|
||||||
|
DataProvider.AddEnterpriseFolderOwaUser(itemId, folderId, user.AccountId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static int GetFolderId(int itemId, string folderName)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
GetFolder(itemId, folderName);
|
||||||
|
|
||||||
|
var dataReader = DataProvider.GetEnterpriseFolderId(itemId, folderName);
|
||||||
|
|
||||||
|
while (dataReader.Read())
|
||||||
|
{
|
||||||
|
return (int)dataReader[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<string> GetUserEnterpriseFolderWithOwaEditPermission(int itemId, List<int> accountIds)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var result = new List<string>();
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var accountId in accountIds)
|
||||||
|
{
|
||||||
|
var reader = DataProvider.GetUserEnterpriseFolderWithOwaEditPermission(itemId, accountId);
|
||||||
|
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
result.Add(Convert.ToString(reader["FolderName"]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.Distinct().ToList();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#region WebDav portal
|
#region WebDav portal
|
||||||
|
|
||||||
public static string GetWebDavPortalUserSettingsByAccountId(int accountId)
|
public static string GetWebDavPortalUserSettingsByAccountId(int accountId)
|
||||||
|
|
|
@ -196,6 +196,36 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
EnterpriseStorageController.StartSetEnterpriseFolderSettingsBackgroundTask(itemId, folder, permissions, directoyBrowsingEnabled, quota, quotaType);
|
EnterpriseStorageController.StartSetEnterpriseFolderSettingsBackgroundTask(itemId, folder, permissions, directoyBrowsingEnabled, quota, quotaType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public void SetEnterpriseFolderGeneralSettings(int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
||||||
|
{
|
||||||
|
EnterpriseStorageController.SetESGeneralSettings(itemId, folder, directoyBrowsingEnabled, quota, quotaType);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public void SetEnterpriseFolderPermissionSettings(int itemId, SystemFile folder, ESPermission[] permissions)
|
||||||
|
{
|
||||||
|
EnterpriseStorageController.SetESFolderPermissionSettings(itemId, folder, permissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public OrganizationUser[] GetFolderOwaAccounts(int itemId, SystemFile folder)
|
||||||
|
{
|
||||||
|
return EnterpriseStorageController.GetFolderOwaAccounts(itemId, folder.Name);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public void SetFolderOwaAccounts(int itemId, SystemFile folder, OrganizationUser[] users)
|
||||||
|
{
|
||||||
|
EnterpriseStorageController.SetFolderOwaAccounts(itemId, folder.Name, users);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public List<string> GetUserEnterpriseFolderWithOwaEditPermission(int itemId, List<int> accountIds)
|
||||||
|
{
|
||||||
|
return EnterpriseStorageController.GetUserEnterpriseFolderWithOwaEditPermission(itemId, accountIds);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Statistics
|
#region Statistics
|
||||||
|
|
|
@ -45,6 +45,16 @@ namespace WebsitePanel.WebDav.Core.Config.Entities
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string OwaEditFoldersSessionKey
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
SessionKeysElement sessionKey =
|
||||||
|
_sessionKeys.FirstOrDefault(x => x.Key == SessionKeysElement.OwaEditFoldersSessionKey);
|
||||||
|
return sessionKey != null ? sessionKey.Value : null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public string WebDavRootFoldersPermissions
|
public string WebDavRootFoldersPermissions
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
|
||||||
public const string WebDavRootFolderPermissionsKey = "WebDavRootFolderPermissionsKey";
|
public const string WebDavRootFolderPermissionsKey = "WebDavRootFolderPermissionsKey";
|
||||||
public const string ResourseRenderCountKey = "ResourseRenderCountSessionKey";
|
public const string ResourseRenderCountKey = "ResourseRenderCountSessionKey";
|
||||||
public const string ItemIdSessionKey = "ItemId";
|
public const string ItemIdSessionKey = "ItemId";
|
||||||
|
public const string OwaEditFoldersSessionKey = "OwaEditFoldersSession";
|
||||||
|
|
||||||
[ConfigurationProperty(KeyKey, IsKey = true, IsRequired = true)]
|
[ConfigurationProperty(KeyKey, IsKey = true, IsRequired = true)]
|
||||||
public string Key
|
public string Key
|
||||||
|
|
|
@ -34,7 +34,9 @@ namespace WebsitePanel.WebDav.Core.Owa
|
||||||
{
|
{
|
||||||
var resource = _webDavManager.GetResource(path);
|
var resource = _webDavManager.GetResource(path);
|
||||||
|
|
||||||
var readOnly = _webDavAuthorizationService.GetPermissions(WspContext.User, path).HasFlag(WebDavPermissions.Write) == false;
|
var permissions = _webDavAuthorizationService.GetPermissions(WspContext.User, path);
|
||||||
|
|
||||||
|
var readOnly = permissions.HasFlag(WebDavPermissions.Write) == false || permissions.HasFlag(WebDavPermissions.OwaEdit) == false;
|
||||||
|
|
||||||
var cFileInfo = new CheckFileInfo
|
var cFileInfo = new CheckFileInfo
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,6 +8,8 @@ namespace WebsitePanel.WebDav.Core.Security.Authorization.Enums
|
||||||
Empty = 0,
|
Empty = 0,
|
||||||
None = 1,
|
None = 1,
|
||||||
Read = 2,
|
Read = 2,
|
||||||
Write = 4
|
Write = 4,
|
||||||
|
OwaRead = 8,
|
||||||
|
OwaEdit = 16
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
|
using Cobalt;
|
||||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
using WebsitePanel.WebDav.Core.Config;
|
using WebsitePanel.WebDav.Core.Config;
|
||||||
|
@ -54,6 +55,17 @@ namespace WebsitePanel.WebDav.Core.Security.Authorization
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var owaEditFolders = GetOwaFoldersWithEditPermission(principal);
|
||||||
|
|
||||||
|
if (owaEditFolders.Contains(rootFolder))
|
||||||
|
{
|
||||||
|
resultPermissions |= WebDavPermissions.OwaEdit;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resultPermissions |= WebDavPermissions.OwaRead;
|
||||||
|
}
|
||||||
|
|
||||||
return resultPermissions;
|
return resultPermissions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,5 +117,41 @@ namespace WebsitePanel.WebDav.Core.Security.Authorization
|
||||||
|
|
||||||
return groups ?? new ExchangeAccount[0];
|
return groups ?? new ExchangeAccount[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IEnumerable<string> GetOwaFoldersWithEditPermission(WspPrincipal principal)
|
||||||
|
{
|
||||||
|
var folders = HttpContext.Current.Session != null ? HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.OwaEditFoldersSessionKey] as IEnumerable<string> : null;
|
||||||
|
|
||||||
|
if (folders != null)
|
||||||
|
{
|
||||||
|
return folders;
|
||||||
|
}
|
||||||
|
|
||||||
|
var accountsIds = new List<int>();
|
||||||
|
|
||||||
|
accountsIds.Add(principal.AccountId);
|
||||||
|
|
||||||
|
var groups = GetUserSecurityGroups(principal);
|
||||||
|
|
||||||
|
accountsIds.AddRange(groups.Select(x=>x.AccountId));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
folders = WspContext.Services.EnterpriseStorage.GetUserEnterpriseFolderWithOwaEditPermission(principal.ItemId, accountsIds.ToArray());
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
//TODO remove try catch when es &portal will be updated
|
||||||
|
return new List<string>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (HttpContext.Current.Session != null)
|
||||||
|
{
|
||||||
|
HttpContext.Current.Session[WebDavAppConfigManager.Instance.SessionKeys.OwaEditFoldersSessionKey] = folders;
|
||||||
|
}
|
||||||
|
|
||||||
|
return folders;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -318,7 +318,7 @@ namespace WebsitePanel.WebDavPortal.Controllers
|
||||||
{
|
{
|
||||||
var permissions = _webDavAuthorizationService.GetPermissions(WspContext.User, pathPart);
|
var permissions = _webDavAuthorizationService.GetPermissions(WspContext.User, pathPart);
|
||||||
|
|
||||||
if (permissions.HasFlag(WebDavPermissions.Write) == false || Request.Browser.IsMobileDevice)
|
if (permissions.HasFlag(WebDavPermissions.Write) == false || permissions.HasFlag(WebDavPermissions.OwaEdit) == false || Request.Browser.IsMobileDevice)
|
||||||
{
|
{
|
||||||
return new RedirectToRouteResult(FileSystemRouteNames.ViewOfficeOnline, null);
|
return new RedirectToRouteResult(FileSystemRouteNames.ViewOfficeOnline, null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
<add key="ResourseRenderCountSessionKey" value="ResourseRenderCount" />
|
<add key="ResourseRenderCountSessionKey" value="ResourseRenderCount" />
|
||||||
<add key="ItemIdSessionKey" value="ItemId" />
|
<add key="ItemIdSessionKey" value="ItemId" />
|
||||||
<add key="UserGroupsKey" value="UserGroups" />
|
<add key="UserGroupsKey" value="UserGroups" />
|
||||||
|
<add key="OwaEditFoldersSession" value="OwaEditFolders"/>
|
||||||
</sessionKeys>
|
</sessionKeys>
|
||||||
<fileIcons defaultPath="~/Content/Images/other-icon.png" folderPath="~/Content/Images/folder_100x100.png">
|
<fileIcons defaultPath="~/Content/Images/other-icon.png" folderPath="~/Content/Images/folder_100x100.png">
|
||||||
<add extension=".txt" path="~/Content/Images/txt-icon.png" />
|
<add extension=".txt" path="~/Content/Images/txt-icon.png" />
|
||||||
|
|
|
@ -135,6 +135,7 @@
|
||||||
<Control key="enterprisestorage_folders" />
|
<Control key="enterprisestorage_folders" />
|
||||||
<Control key="create_enterprisestorage_folder" general_key="enterprisestorage_folders" />
|
<Control key="create_enterprisestorage_folder" general_key="enterprisestorage_folders" />
|
||||||
<Control key="enterprisestorage_folder_settings" general_key="enterprisestorage_folders" />
|
<Control key="enterprisestorage_folder_settings" general_key="enterprisestorage_folders" />
|
||||||
|
<Control key="enterprisestorage_folder_settings_general" general_key="enterprisestorage_folders" />
|
||||||
|
|
||||||
<Control key="enterprisestorage_drive_maps" />
|
<Control key="enterprisestorage_drive_maps" />
|
||||||
<Control key="create_enterprisestorage_drive_map" general_key="enterprisestorage_drive_maps" />
|
<Control key="create_enterprisestorage_drive_map" general_key="enterprisestorage_drive_maps" />
|
||||||
|
|
|
@ -563,6 +563,9 @@
|
||||||
<Control key="enterprisestorage_folders" src="WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx" title="Enterprise Storage Folders" 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="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_folder_settings" src="WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx" title="Edit ES Folder" type="View" />
|
||||||
|
<Control key="enterprisestorage_folder_settings_folder_permissions" src="WebsitePanel/ExchangeServer/EnterpriseStorageFolderSettingsFolderPermissions.ascx" title="Edit ES Folder" type="View" />
|
||||||
|
<Control key="enterprisestorage_folder_settings_owa_editing" src="WebsitePanel/ExchangeServer/EnterpriseStorageFolderSettingsOwaEditing.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="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="create_enterprisestorage_drive_map" src="WebsitePanel/ExchangeServer/EnterpriseStorageCreateDriveMap.ascx" title="Create New ES Drive Map" type="View" />
|
||||||
|
|
||||||
|
|
|
@ -168,4 +168,7 @@
|
||||||
<data name="rbtnQuotaSoft" xml:space="preserve">
|
<data name="rbtnQuotaSoft" xml:space="preserve">
|
||||||
<value>Soft</value>
|
<value>Soft</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="colFolderGeneralSettings.Text" xml:space="preserve">
|
||||||
|
<value>General Settings</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -0,0 +1,135 @@
|
||||||
|
<?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="btnSave.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Updating folder settings...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnSave.Text" xml:space="preserve">
|
||||||
|
<value>Save Changes</value>
|
||||||
|
</data>
|
||||||
|
<data name="colFolderPermissions.Text" xml:space="preserve">
|
||||||
|
<value>Folder Permissions</value>
|
||||||
|
</data>
|
||||||
|
<data name="locPermissionsSection.Text" xml:space="preserve">
|
||||||
|
<value>Permissions</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Edit Folder</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,135 @@
|
||||||
|
<?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="btnSave.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Updating folder settings...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnSave.Text" xml:space="preserve">
|
||||||
|
<value>Save Changes</value>
|
||||||
|
</data>
|
||||||
|
<data name="colOwaEditing.Text" xml:space="preserve">
|
||||||
|
<value>Office Web App Editing</value>
|
||||||
|
</data>
|
||||||
|
<data name="locOwaEditingSection.Text" xml:space="preserve">
|
||||||
|
<value>Users</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Edit Folder</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -1,8 +1,11 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EnterpriseStorageFolderGeneralSettings.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.EnterpriseStorageFolderGeneralSettings" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EnterpriseStorageFolderGeneralSettings.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.EnterpriseStorageFolderGeneralSettings" %>
|
||||||
|
|
||||||
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/EnterpriseStoragePermissions.ascx" TagName="ESPermissions" TagPrefix="wsp"%>
|
<%@ Register Src="UserControls/EnterpriseStoragePermissions.ascx" TagName="ESPermissions" TagPrefix="wsp"%>
|
||||||
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
<%@ Register TagPrefix="wsp" Namespace="WebsitePanel.Portal.ExchangeServer.UserControls" Assembly="WebsitePanel.Portal.Modules" %>
|
||||||
|
<%@ Register Src="UserControls/EnterpriseStorageEditFolderTabs.ascx" TagName="CollectionTabs" TagPrefix="wsp" %>
|
||||||
|
|
||||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||||
|
|
||||||
|
@ -16,10 +19,17 @@
|
||||||
<asp:Image ID="Image1" SkinID="ExchangeList48" runat="server" />
|
<asp:Image ID="Image1" SkinID="ExchangeList48" runat="server" />
|
||||||
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit Folder"></asp:Localize>
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit Folder"></asp:Localize>
|
||||||
|
|
||||||
<asp:Literal ID="litFolderName" runat="server" Text="Folder" />
|
<asp:Literal ID="litFolderName" runat="server" Text="Folder 32" />
|
||||||
</div>
|
</div>
|
||||||
<div class="FormBody">
|
<div class="FormBody">
|
||||||
|
<wsp:CollectionTabs id="tabs" runat="server" SelectedTab="enterprisestorage_folder_settings" />
|
||||||
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="colFolderGeneralSettings" runat="server"
|
||||||
|
TargetControlID="panelFolderGeneralSettings" meta:resourcekey="colFolderGeneralSettings" Text="">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="panelFolderGeneralSettings">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"><asp:Localize ID="locFolderName" runat="server" meta:resourcekey="locFolderName" Text="Folder Name:"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="locFolderName" runat="server" meta:resourcekey="locFolderName" Text="Folder Name:"></asp:Localize></td>
|
||||||
|
@ -60,17 +70,10 @@
|
||||||
<asp:CheckBox id="chkDirectoryBrowsing" runat="server"></asp:CheckBox>
|
<asp:CheckBox id="chkDirectoryBrowsing" runat="server"></asp:CheckBox>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td> </td></tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2">
|
|
||||||
<fieldset id="PermissionsPanel" runat="server">
|
|
||||||
<legend><asp:Localize ID="PermissionsSection" runat="server" meta:resourcekey="locPermissionsSection" Text="Permissions"></asp:Localize></legend>
|
|
||||||
<wsp:ESPermissions id="permissions" runat="server" />
|
|
||||||
</fieldset>
|
|
||||||
</tr>
|
|
||||||
<tr><td> </td></tr>
|
<tr><td> </td></tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
<asp:Button id="btnSave" runat="server" Text="Save Changes" CssClass="Button1" meta:resourcekey="btnSave" ValidationGroup="EditFolder" OnClick="btnSave_Click"></asp:Button>
|
<asp:Button id="btnSave" runat="server" Text="Save Changes" CssClass="Button1" meta:resourcekey="btnSave" ValidationGroup="EditFolder" OnClick="btnSave_Click"></asp:Button>
|
||||||
|
|
|
@ -107,11 +107,7 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
var esPermissions = ES.Services.EnterpriseStorage.GetEnterpriseFolderPermissions(PanelRequest.ItemID,folder.Name);
|
|
||||||
|
|
||||||
chkDirectoryBrowsing.Checked = ES.Services.EnterpriseStorage.GetDirectoryBrowseEnabled(PanelRequest.ItemID, folder.Url);
|
chkDirectoryBrowsing.Checked = ES.Services.EnterpriseStorage.GetDirectoryBrowseEnabled(PanelRequest.ItemID, folder.Url);
|
||||||
|
|
||||||
permissions.SetPermissions(esPermissions);
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -159,10 +155,9 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ES.Services.EnterpriseStorage.SetEnterpriseFolderSettings(
|
ES.Services.EnterpriseStorage.SetEnterpriseFolderGeneralSettings(
|
||||||
PanelRequest.ItemID,
|
PanelRequest.ItemID,
|
||||||
folder,
|
folder,
|
||||||
permissions.GetPemissions(),
|
|
||||||
chkDirectoryBrowsing.Checked,
|
chkDirectoryBrowsing.Checked,
|
||||||
(int)(decimal.Parse(txtFolderSize.Text) * OneGb),
|
(int)(decimal.Parse(txtFolderSize.Text) * OneGb),
|
||||||
rbtnQuotaSoft.Checked ? QuotaType.Soft : QuotaType.Hard);
|
rbtnQuotaSoft.Checked ? QuotaType.Soft : QuotaType.Hard);
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2015, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -76,6 +48,15 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Literal litFolderName;
|
protected global::System.Web.UI.WebControls.Literal litFolderName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tabs control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EnterpriseStorageEditFolderTabs tabs;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// messageBox control.
|
/// messageBox control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -85,6 +66,24 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// colFolderGeneralSettings control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel colFolderGeneralSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// panelFolderGeneralSettings control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel panelFolderGeneralSettings;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locFolderName control.
|
/// locFolderName control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -211,33 +210,6 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkDirectoryBrowsing;
|
protected global::System.Web.UI.WebControls.CheckBox chkDirectoryBrowsing;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// PermissionsPanel control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl PermissionsPanel;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// PermissionsSection control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize PermissionsSection;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// permissions control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EnterpriseStoragePermissions permissions;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnSave control.
|
/// btnSave control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EnterpriseStorageFolderSettingsFolderPermissions.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.EnterpriseStorageFolderSettingsFolderPermissions" %>
|
||||||
|
|
||||||
|
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/EnterpriseStoragePermissions.ascx" TagName="ESPermissions" TagPrefix="wsp"%>
|
||||||
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
<%@ Register TagPrefix="wsp" Namespace="WebsitePanel.Portal.ExchangeServer.UserControls" Assembly="WebsitePanel.Portal.Modules" %>
|
||||||
|
<%@ Register Src="UserControls/EnterpriseStorageEditFolderTabs.ascx" TagName="CollectionTabs" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="ExchangeList48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit Folder"></asp:Localize>
|
||||||
|
|
||||||
|
<asp:Literal ID="litFolderName" runat="server" Text="Folder" />
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:CollectionTabs id="tabs" runat="server" SelectedTab="enterprisestorage_folder_settings_folder_permissions" />
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="colFolderPermissions" runat="server"
|
||||||
|
TargetControlID="panelFolderPermissions" meta:resourcekey="colFolderPermissions" Text="">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="panelFolderPermissions">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<fieldset id="PermissionsPanel" runat="server">
|
||||||
|
<legend><asp:Localize ID="PermissionsSection" runat="server" meta:resourcekey="locPermissionsSection" Text="Permissions"></asp:Localize></legend>
|
||||||
|
<wsp:ESPermissions id="permissions" runat="server" />
|
||||||
|
</fieldset>
|
||||||
|
</tr>
|
||||||
|
<tr><td> </td></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button id="btnSave" runat="server" Text="Save Changes" CssClass="Button1" meta:resourcekey="btnSave" ValidationGroup="EditFolder" OnClick="btnSave_Click"></asp:Button>
|
||||||
|
<asp:ValidationSummary ID="valSummary" runat="server" ShowMessageBox="True" ShowSummary="False" ValidationGroup="EditFolder" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,86 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.Providers.OS;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
|
{
|
||||||
|
public partial class EnterpriseStorageFolderSettingsFolderPermissions : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
#region Constants
|
||||||
|
|
||||||
|
private const int OneGb = 1024;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
if (!ES.Services.EnterpriseStorage.CheckUsersDomainExists(PanelRequest.ItemID))
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "enterprisestorage_folders",
|
||||||
|
"ItemID=" + PanelRequest.ItemID));
|
||||||
|
}
|
||||||
|
|
||||||
|
BindSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindSettings()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// get settings
|
||||||
|
Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
SystemFile folder = ES.Services.EnterpriseStorage.GetEnterpriseFolder(
|
||||||
|
PanelRequest.ItemID, PanelRequest.FolderID);
|
||||||
|
|
||||||
|
litFolderName.Text = string.Format("{0}", folder.Name);
|
||||||
|
|
||||||
|
// bind form
|
||||||
|
var esPermissions = ES.Services.EnterpriseStorage.GetEnterpriseFolderPermissions(PanelRequest.ItemID,folder.Name);
|
||||||
|
|
||||||
|
permissions.SetPermissions(esPermissions);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("ENETERPRISE_STORAGE_GET_FOLDER_SETTINGS", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!Page.IsValid)
|
||||||
|
return;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SystemFile folder = new SystemFile { Name = PanelRequest.FolderID };
|
||||||
|
|
||||||
|
if (!ES.Services.EnterpriseStorage.CheckEnterpriseStorageInitialization(PanelSecurity.PackageId, PanelRequest.ItemID))
|
||||||
|
{
|
||||||
|
ES.Services.EnterpriseStorage.CreateEnterpriseStorage(PanelSecurity.PackageId, PanelRequest.ItemID);
|
||||||
|
}
|
||||||
|
|
||||||
|
ES.Services.EnterpriseStorage.SetEnterpriseFolderPermissionSettings(
|
||||||
|
PanelRequest.ItemID,
|
||||||
|
folder,
|
||||||
|
permissions.GetPemissions());
|
||||||
|
|
||||||
|
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "enterprisestorage_folders",
|
||||||
|
"ItemID=" + PanelRequest.ItemID));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("ENTERPRISE_STORAGE_UPDATE_FOLDER_SETTINGS", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class EnterpriseStorageFolderSettingsFolderPermissions {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litFolderName control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Literal litFolderName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tabs control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EnterpriseStorageEditFolderTabs tabs;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// colFolderPermissions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel colFolderPermissions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// panelFolderPermissions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel panelFolderPermissions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PermissionsPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl PermissionsPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PermissionsSection control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize PermissionsSection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// permissions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EnterpriseStoragePermissions permissions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnSave control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnSave;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valSummary control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ValidationSummary valSummary;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EnterpriseStorageFolderSettingsOwaEditing.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.EnterpriseStorageFolderSettingsOwaEditing" %>
|
||||||
|
|
||||||
|
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/EnterpriseStorageOwaUsersList.ascx" TagName="OwaUsers" TagPrefix="wsp"%>
|
||||||
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/EnterpriseStorageEditFolderTabs.ascx" TagName="CollectionTabs" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="ExchangeList48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit Folder"></asp:Localize>
|
||||||
|
|
||||||
|
<asp:Literal ID="litFolderName" runat="server" Text="Folder" />
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:CollectionTabs id="tabs" runat="server" SelectedTab="enterprisestorage_folder_settings_owa_editing" />
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="colOwaEditing" runat="server"
|
||||||
|
TargetControlID="panelFolderPermissions" meta:resourcekey="colOwaEditing" Text="">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="panelFolderPermissions">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<fieldset id="OwaUsersPanel" runat="server">
|
||||||
|
<legend><asp:Localize ID="locOwaEditingSection" runat="server" meta:resourcekey="locOwaEditingSection" Text="Users"></asp:Localize></legend>
|
||||||
|
<wsp:OwaUsers id="owaUsers" runat="server" />
|
||||||
|
</fieldset>
|
||||||
|
</tr>
|
||||||
|
<tr><td> </td></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button id="btnSave" runat="server" Text="Save Changes" CssClass="Button1" meta:resourcekey="btnSave" ValidationGroup="EditFolder" OnClick="btnSave_Click"></asp:Button>
|
||||||
|
<asp:ValidationSummary ID="valSummary" runat="server" ShowMessageBox="True" ShowSummary="False" ValidationGroup="EditFolder" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,80 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.Providers.OS;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
|
{
|
||||||
|
public partial class EnterpriseStorageFolderSettingsOwaEditing : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
if (!ES.Services.EnterpriseStorage.CheckUsersDomainExists(PanelRequest.ItemID))
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "enterprisestorage_folders",
|
||||||
|
"ItemID=" + PanelRequest.ItemID));
|
||||||
|
}
|
||||||
|
|
||||||
|
BindSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindSettings()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// get settings
|
||||||
|
Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
SystemFile folder = ES.Services.EnterpriseStorage.GetEnterpriseFolder(
|
||||||
|
PanelRequest.ItemID, PanelRequest.FolderID);
|
||||||
|
|
||||||
|
litFolderName.Text = string.Format("{0}", folder.Name);
|
||||||
|
|
||||||
|
// bind form
|
||||||
|
var esPermissions = ES.Services.EnterpriseStorage.GetFolderOwaAccounts(PanelRequest.ItemID, folder);
|
||||||
|
|
||||||
|
owaUsers.SetUsers(esPermissions);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("ENETERPRISE_STORAGE_GET_FOLDER_SETTINGS", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!Page.IsValid)
|
||||||
|
return;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SystemFile folder = new SystemFile { Name = PanelRequest.FolderID };
|
||||||
|
|
||||||
|
if (!ES.Services.EnterpriseStorage.CheckEnterpriseStorageInitialization(PanelSecurity.PackageId, PanelRequest.ItemID))
|
||||||
|
{
|
||||||
|
ES.Services.EnterpriseStorage.CreateEnterpriseStorage(PanelSecurity.PackageId, PanelRequest.ItemID);
|
||||||
|
}
|
||||||
|
|
||||||
|
ES.Services.EnterpriseStorage.SetFolderOwaAccounts(
|
||||||
|
PanelRequest.ItemID,
|
||||||
|
folder,
|
||||||
|
owaUsers.GetUsers());
|
||||||
|
|
||||||
|
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "enterprisestorage_folders",
|
||||||
|
"ItemID=" + PanelRequest.ItemID));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("ENTERPRISE_STORAGE_UPDATE_FOLDER_SETTINGS", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class EnterpriseStorageFolderSettingsOwaEditing {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litFolderName control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Literal litFolderName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tabs control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EnterpriseStorageEditFolderTabs tabs;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// colOwaEditing control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel colOwaEditing;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// panelFolderPermissions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel panelFolderPermissions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// OwaUsersPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl OwaUsersPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locOwaEditingSection control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locOwaEditingSection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// owaUsers control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EnterpriseStorageOwaUsersList owaUsers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnSave control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnSave;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valSummary control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ValidationSummary valSummary;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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="Tab.FolderPermissions" xml:space="preserve">
|
||||||
|
<value>Folder Permissions</value>
|
||||||
|
</data>
|
||||||
|
<data name="Tab.GeneralSettings" xml:space="preserve">
|
||||||
|
<value>General Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="Tab.OwaEditPermissions" xml:space="preserve">
|
||||||
|
<value>Office Web App Editing</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,156 @@
|
||||||
|
<?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="btnAdd.Text" xml:space="preserve">
|
||||||
|
<value>Add...</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnAddSelected.Text" xml:space="preserve">
|
||||||
|
<value>Add Accounts</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDelete.Text" xml:space="preserve">
|
||||||
|
<value>Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlSearchColumnDisplayName.Text" xml:space="preserve">
|
||||||
|
<value>Display Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlSearchColumnEmail.Text" xml:space="preserve">
|
||||||
|
<value>E-mail Address</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAccountsDisplayName.HeaderText" xml:space="preserve">
|
||||||
|
<value>Display Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAccountsEmail.HeaderText" xml:space="preserve">
|
||||||
|
<value>Email</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvPopupAccounts.EmptyDataText" xml:space="preserve">
|
||||||
|
<value>No accounts found.</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvUsers.EmptyDataText" xml:space="preserve">
|
||||||
|
<value>The list of users is empty. Click "Add..." button.</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvUsersAccount.HeaderText" xml:space="preserve">
|
||||||
|
<value>Users</value>
|
||||||
|
</data>
|
||||||
|
<data name="headerAddAccounts.Text" xml:space="preserve">
|
||||||
|
<value>Enabled Users</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,31 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EnterpriseStorageEditFolderTabs.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.UserControls.EnterpriseStorageEditFolderTabs" %>
|
||||||
|
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="1">
|
||||||
|
<tr>
|
||||||
|
<td class="Tabs">
|
||||||
|
<asp:DataList ID="esTabs" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" EnableViewState="false">
|
||||||
|
<ItemStyle Wrap="False" />
|
||||||
|
<ItemTemplate >
|
||||||
|
<asp:HyperLink ID="lnkTab" runat="server" CssClass="Tab" NavigateUrl='<%# Eval("Url") %>' OnClick="return tabClicked();">
|
||||||
|
<%# Eval("Name") %>
|
||||||
|
</asp:HyperLink>
|
||||||
|
</ItemTemplate>
|
||||||
|
<SelectedItemStyle Wrap="False" />
|
||||||
|
<SelectedItemTemplate>
|
||||||
|
<asp:HyperLink ID="lnkSelTab" runat="server" CssClass="ActiveTab" NavigateUrl='<%# Eval("Url") %>' OnClick="return tabClicked;">
|
||||||
|
<%# Eval("Name") %>
|
||||||
|
</asp:HyperLink>
|
||||||
|
</SelectedItemTemplate>
|
||||||
|
</asp:DataList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
function tabClicked() {
|
||||||
|
ShowProgressDialog('Loading');
|
||||||
|
ShowProgressDialogInternal();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -0,0 +1,52 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.Portal.Code.UserControls;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer.UserControls
|
||||||
|
{
|
||||||
|
public partial class EnterpriseStorageEditFolderTabs : WebsitePanelControlBase
|
||||||
|
{
|
||||||
|
public string SelectedTab { get; set; }
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BindTabs();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindTabs()
|
||||||
|
{
|
||||||
|
List<Tab> tabsList = new List<Tab>();
|
||||||
|
tabsList.Add(CreateTab("enterprisestorage_folder_settings", "Tab.GeneralSettings"));
|
||||||
|
tabsList.Add(CreateTab("enterprisestorage_folder_settings_folder_permissions", "Tab.FolderPermissions"));
|
||||||
|
tabsList.Add(CreateTab("enterprisestorage_folder_settings_owa_editing", "Tab.OwaEditPermissions"));
|
||||||
|
|
||||||
|
int idx = 0;
|
||||||
|
|
||||||
|
foreach (Tab tab in tabsList)
|
||||||
|
{
|
||||||
|
if (String.Compare(tab.Id, SelectedTab, true) == 0)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
idx++;
|
||||||
|
}
|
||||||
|
|
||||||
|
esTabs.SelectedIndex = idx;
|
||||||
|
esTabs.DataSource = tabsList;
|
||||||
|
esTabs.DataBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Tab CreateTab(string id, string text)
|
||||||
|
{
|
||||||
|
return new Tab(id,GetLocalizedString(text),
|
||||||
|
HostModule.EditUrl("AccountID", PanelRequest.AccountID.ToString(), id,
|
||||||
|
"SpaceID=" + PanelSecurity.PackageId.ToString(),
|
||||||
|
"ItemID=" + PanelRequest.ItemID.ToString(), "FolderID=" + PanelRequest.FolderID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer.UserControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class EnterpriseStorageEditFolderTabs {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// esTabs control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DataList esTabs;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,114 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EnterpriseStorageOwaUsersList.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.UserControls.EnterpriseStorageOwaUsersList" %>
|
||||||
|
|
||||||
|
<asp:UpdatePanel ID="UsersUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||||
|
<ContentTemplate>
|
||||||
|
<div class="FormButtonsBarClean">
|
||||||
|
<asp:Button ID="btnAdd" runat="server" Text="Add..." CssClass="Button1" OnClick="btnAdd_Click" meta:resourcekey="btnAdd" />
|
||||||
|
<asp:Button ID="btnDelete" runat="server" Text="Delete" CssClass="Button1" OnClick="btnDelete_Click" meta:resourcekey="btnDelete"/>
|
||||||
|
</div>
|
||||||
|
<asp:GridView ID="gvUsers" runat="server" meta:resourcekey="gvUsers" AutoGenerateColumns="False"
|
||||||
|
Width="600px" CssSelectorClass="NormalGridView"
|
||||||
|
DataKeyNames="AccountName">
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField>
|
||||||
|
<HeaderTemplate>
|
||||||
|
<asp:CheckBox ID="chkSelectAll" runat="server" onclick="javascript:SelectAllCheckboxes(this);" />
|
||||||
|
</HeaderTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:CheckBox ID="chkSelect" runat="server" />
|
||||||
|
</ItemTemplate>
|
||||||
|
<ItemStyle Width="10px" />
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField meta:resourcekey="gvUsersAccount" HeaderText="gvUsersAccount">
|
||||||
|
<ItemStyle Width="96%" Wrap="false" HorizontalAlign="Left">
|
||||||
|
</ItemStyle>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:Literal ID="litAccount" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
||||||
|
<asp:HiddenField ID="hdnAccountId" runat="server" Value='<%# Eval("AccountId") %>' />
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
<br />
|
||||||
|
|
||||||
|
|
||||||
|
<asp:Panel ID="AddAccountsPanel" runat="server" CssClass="Popup" style="display:none">
|
||||||
|
<table class="Popup-Header" cellpadding="0" cellspacing="0">
|
||||||
|
<tr>
|
||||||
|
<td class="Popup-HeaderLeft"></td>
|
||||||
|
<td class="Popup-HeaderTitle">
|
||||||
|
<asp:Localize ID="headerAddAccounts" runat="server" meta:resourcekey="headerAddAccounts"></asp:Localize>
|
||||||
|
</td>
|
||||||
|
<td class="Popup-HeaderRight"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="Popup-Content">
|
||||||
|
<div class="Popup-Body">
|
||||||
|
<br />
|
||||||
|
<asp:UpdatePanel ID="AddAccountsUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||||
|
<ContentTemplate>
|
||||||
|
|
||||||
|
<div class="FormButtonsBarClean">
|
||||||
|
<div class="FormButtonsBarCleanRight">
|
||||||
|
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
||||||
|
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
||||||
|
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||||
|
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||||
|
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
||||||
|
CausesValidation="false" OnClick="cmdSearch_Click"/>
|
||||||
|
</asp:Panel>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="Popup-Scroll">
|
||||||
|
<asp:GridView ID="gvPopupAccounts" runat="server" meta:resourcekey="gvPopupAccounts" AutoGenerateColumns="False"
|
||||||
|
Width="100%" CssSelectorClass="NormalGridView"
|
||||||
|
DataKeyNames="AccountName">
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField>
|
||||||
|
<HeaderTemplate>
|
||||||
|
<asp:CheckBox ID="chkSelectAll" runat="server" onclick="javascript:SelectAllCheckboxes(this);" />
|
||||||
|
</HeaderTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:CheckBox ID="chkSelect" runat="server" />
|
||||||
|
<asp:Literal ID="litAccountType" runat="server" Visible="false" Text='<%# Eval("AccountType") %>'></asp:Literal>
|
||||||
|
</ItemTemplate>
|
||||||
|
<ItemStyle Width="10px" />
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField meta:resourcekey="gvAccountsDisplayName">
|
||||||
|
<ItemStyle Width="50%" HorizontalAlign="Left"></ItemStyle>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:Image ID="imgAccount" runat="server" ImageUrl='<%# GetAccountImage((int)Eval("AccountType")) %>' ImageAlign="AbsMiddle" />
|
||||||
|
<asp:Literal ID="litDisplayName" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
||||||
|
<asp:HiddenField ID="hdnAccountId" runat="server" Value='<%# Eval("AccountId") %>' />
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField meta:resourcekey="gvAccountsEmail">
|
||||||
|
<ItemStyle Width="50%" HorizontalAlign="Left"></ItemStyle>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:Literal ID="litPrimaryEmailAddress" runat="server" Text='<%# Eval("PrimaryEmailAddress") %>'></asp:Literal>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
</div>
|
||||||
|
</ContentTemplate>
|
||||||
|
</asp:UpdatePanel>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="FormFooter">
|
||||||
|
<asp:Button ID="btnAddSelected" runat="server" CssClass="Button1" meta:resourcekey="btnAddSelected" Text="Add Accounts" OnClick="btnAddSelected_Click" />
|
||||||
|
<asp:Button ID="btnCancelAdd" runat="server" CssClass="Button1" meta:resourcekey="btnCancel" Text="Cancel" CausesValidation="false" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<asp:Button ID="btnAddAccountsFake" runat="server" style="display:none;" />
|
||||||
|
<ajaxToolkit:ModalPopupExtender ID="AddAccountsModal" runat="server"
|
||||||
|
TargetControlID="btnAddAccountsFake" PopupControlID="AddAccountsPanel"
|
||||||
|
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="btnCancelAdd" />
|
||||||
|
|
||||||
|
</ContentTemplate>
|
||||||
|
</asp:UpdatePanel>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,214 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer.UserControls
|
||||||
|
{
|
||||||
|
public partial class EnterpriseStorageOwaUsersList : WebsitePanelControlBase
|
||||||
|
{
|
||||||
|
public const string DirectionString = "DirectionString";
|
||||||
|
|
||||||
|
protected enum SelectedState
|
||||||
|
{
|
||||||
|
All,
|
||||||
|
Selected,
|
||||||
|
Unselected
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetUsers(OrganizationUser[] users)
|
||||||
|
{
|
||||||
|
BindAccounts(users, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrganizationUser[] GetUsers()
|
||||||
|
{
|
||||||
|
return GetGridViewUsers(EnterpriseStorageOwaUsersList.SelectedState.All).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// register javascript
|
||||||
|
if (!Page.ClientScript.IsClientScriptBlockRegistered("SelectAllCheckboxes"))
|
||||||
|
{
|
||||||
|
string script = @" function SelectAllCheckboxes(box)
|
||||||
|
{
|
||||||
|
var state = box.checked;
|
||||||
|
var elm = box.parentElement.parentElement.parentElement.parentElement.getElementsByTagName(""INPUT"");
|
||||||
|
for(i = 0; i < elm.length; i++)
|
||||||
|
if(elm[i].type == ""checkbox"" && elm[i].id != box.id && elm[i].checked != state && !elm[i].disabled)
|
||||||
|
elm[i].checked = state;
|
||||||
|
}";
|
||||||
|
Page.ClientScript.RegisterClientScriptBlock(typeof(EnterpriseStorageOwaUsersList), "SelectAllCheckboxes",
|
||||||
|
script, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// bind all accounts
|
||||||
|
BindPopupAccounts();
|
||||||
|
|
||||||
|
// show modal
|
||||||
|
AddAccountsModal.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnDelete_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
List<OrganizationUser> selectedAccounts = GetGridViewUsers(EnterpriseStorageOwaUsersList.SelectedState.Unselected);
|
||||||
|
|
||||||
|
BindAccounts(selectedAccounts.ToArray(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnAddSelected_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
List<OrganizationUser> selectedAccounts = GetGridViewAccounts();
|
||||||
|
|
||||||
|
BindAccounts(selectedAccounts.ToArray(), true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetAccountImage(int accountTypeId)
|
||||||
|
{
|
||||||
|
string imgName = string.Empty;
|
||||||
|
|
||||||
|
ExchangeAccountType accountType = (ExchangeAccountType)accountTypeId;
|
||||||
|
switch (accountType)
|
||||||
|
{
|
||||||
|
case ExchangeAccountType.Room:
|
||||||
|
imgName = "room_16.gif";
|
||||||
|
break;
|
||||||
|
case ExchangeAccountType.Equipment:
|
||||||
|
imgName = "equipment_16.gif";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
imgName = "admin_16.png";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return GetThemedImage("Exchange/" + imgName);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void BindPopupAccounts()
|
||||||
|
{
|
||||||
|
OrganizationUser[] accounts = ES.Services.Organizations.GetOrganizationUsersPaged(PanelRequest.ItemID, ddlSearchColumn.SelectedValue, txtSearchValue.Text + "%", null, 0, Int32.MaxValue).PageUsers;
|
||||||
|
|
||||||
|
accounts = accounts.Where(x => !GetUsers().Select(p => p.AccountName).Contains(x.AccountName)).ToArray();
|
||||||
|
|
||||||
|
Array.Sort(accounts, CompareAccount);
|
||||||
|
|
||||||
|
if (Direction == SortDirection.Ascending)
|
||||||
|
{
|
||||||
|
Array.Reverse(accounts);
|
||||||
|
Direction = SortDirection.Descending;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Direction = SortDirection.Ascending;
|
||||||
|
|
||||||
|
gvPopupAccounts.DataSource = accounts;
|
||||||
|
gvPopupAccounts.DataBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void BindAccounts(OrganizationUser[] newUsers, bool preserveExisting)
|
||||||
|
{
|
||||||
|
// get binded addresses
|
||||||
|
List<OrganizationUser> users = new List<OrganizationUser>();
|
||||||
|
if (preserveExisting)
|
||||||
|
users.AddRange(GetGridViewUsers(EnterpriseStorageOwaUsersList.SelectedState.All));
|
||||||
|
|
||||||
|
// add new accounts
|
||||||
|
if (newUsers != null)
|
||||||
|
{
|
||||||
|
foreach (OrganizationUser newUser in newUsers)
|
||||||
|
{
|
||||||
|
// check if exists
|
||||||
|
bool exists = false;
|
||||||
|
foreach (OrganizationUser user in users)
|
||||||
|
{
|
||||||
|
if (String.Compare(user.AccountName, newUser.AccountName, true) == 0)
|
||||||
|
{
|
||||||
|
exists = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (exists)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
users.Add(newUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gvUsers.DataSource = users;
|
||||||
|
gvUsers.DataBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected List<OrganizationUser> GetGridViewUsers(EnterpriseStorageOwaUsersList.SelectedState state)
|
||||||
|
{
|
||||||
|
List<OrganizationUser> users = new List<OrganizationUser>();
|
||||||
|
for (int i = 0; i < gvUsers.Rows.Count; i++)
|
||||||
|
{
|
||||||
|
GridViewRow row = gvUsers.Rows[i];
|
||||||
|
CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect");
|
||||||
|
if (chkSelect == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
OrganizationUser user = new OrganizationUser();
|
||||||
|
user.AccountName = (string)gvUsers.DataKeys[i][0];
|
||||||
|
user.DisplayName = ((Literal)row.FindControl("litAccount")).Text;
|
||||||
|
user.AccountId = Convert.ToInt32(((HiddenField)row.FindControl("hdnAccountId")).Value);
|
||||||
|
|
||||||
|
if (state == EnterpriseStorageOwaUsersList.SelectedState.All ||
|
||||||
|
(state == EnterpriseStorageOwaUsersList.SelectedState.Selected && chkSelect.Checked) ||
|
||||||
|
(state == EnterpriseStorageOwaUsersList.SelectedState.Unselected && !chkSelect.Checked))
|
||||||
|
users.Add(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected List<OrganizationUser> GetGridViewAccounts()
|
||||||
|
{
|
||||||
|
List<OrganizationUser> accounts = new List<OrganizationUser>();
|
||||||
|
for (int i = 0; i < gvPopupAccounts.Rows.Count; i++)
|
||||||
|
{
|
||||||
|
GridViewRow row = gvPopupAccounts.Rows[i];
|
||||||
|
CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect");
|
||||||
|
if (chkSelect == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (chkSelect.Checked)
|
||||||
|
{
|
||||||
|
accounts.Add(new OrganizationUser
|
||||||
|
{
|
||||||
|
AccountName = (string)gvPopupAccounts.DataKeys[i][0],
|
||||||
|
DisplayName = ((Literal)row.FindControl("litDisplayName")).Text,
|
||||||
|
AccountId = Convert.ToInt32(((HiddenField)row.FindControl("hdnAccountId")).Value)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return accounts;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void cmdSearch_Click(object sender, ImageClickEventArgs e)
|
||||||
|
{
|
||||||
|
BindPopupAccounts();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected SortDirection Direction
|
||||||
|
{
|
||||||
|
get { return ViewState[DirectionString] == null ? SortDirection.Descending : (SortDirection)ViewState[DirectionString]; }
|
||||||
|
set { ViewState[DirectionString] = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static int CompareAccount(OrganizationUser user1, OrganizationUser user2)
|
||||||
|
{
|
||||||
|
return string.Compare(user1.DisplayName, user2.DisplayName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,159 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer.UserControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class EnterpriseStorageOwaUsersList {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UsersUpdatePanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.UpdatePanel UsersUpdatePanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAdd control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnAdd;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDelete control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnDelete;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvUsers control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.GridView gvUsers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AddAccountsPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel AddAccountsPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// headerAddAccounts control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize headerAddAccounts;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AddAccountsUpdatePanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.UpdatePanel AddAccountsUpdatePanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SearchPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel SearchPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlSearchColumn control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlSearchColumn;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtSearchValue control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtSearchValue;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cmdSearch control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ImageButton cmdSearch;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvPopupAccounts control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.GridView gvPopupAccounts;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAddSelected control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnAddSelected;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCancelAdd control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnCancelAdd;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAddAccountsFake control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnAddAccountsFake;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AddAccountsModal control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::AjaxControlToolkit.ModalPopupExtender AddAccountsModal;
|
||||||
|
}
|
||||||
|
}
|
|
@ -211,6 +211,20 @@
|
||||||
<Compile Include="Code\ReportingServices\IResourceStorage.cs" />
|
<Compile Include="Code\ReportingServices\IResourceStorage.cs" />
|
||||||
<Compile Include="Code\ReportingServices\ReportingServicesUtils.cs" />
|
<Compile Include="Code\ReportingServices\ReportingServicesUtils.cs" />
|
||||||
<Compile Include="Code\UserControls\Tab.cs" />
|
<Compile Include="Code\UserControls\Tab.cs" />
|
||||||
|
<Compile Include="ExchangeServer\EnterpriseStorageFolderSettingsFolderPermissions.ascx.cs">
|
||||||
|
<DependentUpon>EnterpriseStorageFolderSettingsFolderPermissions.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\EnterpriseStorageFolderSettingsFolderPermissions.ascx.designer.cs">
|
||||||
|
<DependentUpon>EnterpriseStorageFolderSettingsFolderPermissions.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\EnterpriseStorageFolderSettingsOwaEditing.ascx.cs">
|
||||||
|
<DependentUpon>EnterpriseStorageFolderSettingsOwaEditing.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\EnterpriseStorageFolderSettingsOwaEditing.ascx.designer.cs">
|
||||||
|
<DependentUpon>EnterpriseStorageFolderSettingsOwaEditing.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="ExchangeServer\OrganizationDeletedUsers.ascx.cs">
|
<Compile Include="ExchangeServer\OrganizationDeletedUsers.ascx.cs">
|
||||||
<DependentUpon>OrganizationDeletedUsers.ascx</DependentUpon>
|
<DependentUpon>OrganizationDeletedUsers.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -229,6 +243,20 @@
|
||||||
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
|
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\UserControls\EnterpriseStorageEditFolderTabs.ascx.cs">
|
||||||
|
<DependentUpon>EnterpriseStorageEditFolderTabs.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\UserControls\EnterpriseStorageEditFolderTabs.ascx.designer.cs">
|
||||||
|
<DependentUpon>EnterpriseStorageEditFolderTabs.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\UserControls\EnterpriseStorageOwaUsersList.ascx.cs">
|
||||||
|
<DependentUpon>EnterpriseStorageOwaUsersList.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\UserControls\EnterpriseStorageOwaUsersList.ascx.designer.cs">
|
||||||
|
<DependentUpon>EnterpriseStorageOwaUsersList.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="ProviderControls\SmarterMail100_EditAccount.ascx.cs">
|
<Compile Include="ProviderControls\SmarterMail100_EditAccount.ascx.cs">
|
||||||
<DependentUpon>SmarterMail100_EditAccount.ascx</DependentUpon>
|
<DependentUpon>SmarterMail100_EditAccount.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -4455,7 +4483,11 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="ApplyEnableHardQuotaFeature.ascx" />
|
<Content Include="ApplyEnableHardQuotaFeature.ascx" />
|
||||||
|
<Content Include="ExchangeServer\EnterpriseStorageFolderSettingsFolderPermissions.ascx" />
|
||||||
|
<Content Include="ExchangeServer\EnterpriseStorageFolderSettingsOwaEditing.ascx" />
|
||||||
<Content Include="ExchangeServer\ExchangeCheckDomainName.ascx" />
|
<Content Include="ExchangeServer\ExchangeCheckDomainName.ascx" />
|
||||||
|
<Content Include="ExchangeServer\UserControls\EnterpriseStorageEditFolderTabs.ascx" />
|
||||||
|
<Content Include="ExchangeServer\UserControls\EnterpriseStorageOwaUsersList.ascx" />
|
||||||
<Content Include="ProviderControls\SmarterMail100_EditAccount.ascx" />
|
<Content Include="ProviderControls\SmarterMail100_EditAccount.ascx" />
|
||||||
<Content Include="ProviderControls\SmarterMail100_EditDomain.ascx" />
|
<Content Include="ProviderControls\SmarterMail100_EditDomain.ascx" />
|
||||||
<Content Include="ProviderControls\SmarterMail100_EditDomain_Features.ascx" />
|
<Content Include="ProviderControls\SmarterMail100_EditDomain_Features.ascx" />
|
||||||
|
@ -4499,6 +4531,10 @@
|
||||||
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditList.ascx.resx">
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditList.ascx.resx">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="ExchangeServer\UserControls\App_LocalResources\EnterpriseStorageEditFolderTabs.ascx.resx" />
|
||||||
|
<Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageFolderSettingsFolderPermissions.ascx.resx" />
|
||||||
|
<Content Include="ExchangeServer\UserControls\App_LocalResources\EnterpriseStorageOwaUsersList.ascx.resx" />
|
||||||
|
<Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageFolderSettingsOwaEditing.ascx.resx" />
|
||||||
<EmbeddedResource Include="RDS\App_LocalResources\RDSEditCollectionSettings.ascx.resx" />
|
<EmbeddedResource Include="RDS\App_LocalResources\RDSEditCollectionSettings.ascx.resx" />
|
||||||
<Content Include="RDS\AssignedRDSServers.ascx" />
|
<Content Include="RDS\AssignedRDSServers.ascx" />
|
||||||
<Content Include="RDS\AddRDSServer.ascx" />
|
<Content Include="RDS\AddRDSServer.ascx" />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue