diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
index f54fa11f..1154214a 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
@@ -189,7 +189,13 @@ namespace WebsitePanel.Portal.ExchangeServer
userStats.QuotaUsedValue = orgStats.CreatedUsers;
userStats.QuotaValue = orgStats.AllocatedUsers;
- if (orgStats.AllocatedUsers != -1) userStats.QuotaAvailable = tenantStats.AllocatedUsers - tenantStats.CreatedUsers;
+ if (orgStats.AllocatedUsers != -1)
+ userStats.QuotaAvailable = tenantStats.AllocatedUsers - tenantStats.CreatedUsers;
+
+ deletedUserStats.QuotaUsedValue = orgStats.DeletedUsers;
+ deletedUserStats.QuotaValue = orgStats.AllocatedDeletedUsers;
+ if (orgStats.AllocatedDeletedUsers != -1)
+ userStats.QuotaAvailable = tenantStats.AllocatedDeletedUsers - tenantStats.DeletedUsers;
lnkDomains.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "domains",
"SpaceID=" + PanelSecurity.PackageId);
@@ -197,6 +203,9 @@ namespace WebsitePanel.Portal.ExchangeServer
lnkUsers.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "users",
"SpaceID=" + PanelSecurity.PackageId);
+ lnkDeletedUsers.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "deleted_users",
+ "SpaceID=" + PanelSecurity.PackageId);
+
if (Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPS, cntx))
{
securGroupsStat.Visible = true;
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs
index 730b0509..26a5655d 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs
@@ -138,6 +138,24 @@ namespace WebsitePanel.Portal.ExchangeServer {
///
protected global::WebsitePanel.Portal.QuotaViewer userStats;
+ ///
+ /// lnkDeletedUsers control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.HyperLink lnkDeletedUsers;
+
+ ///
+ /// deletedUserStats control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::WebsitePanel.Portal.QuotaViewer deletedUserStats;
+
///
/// securGroupsStat control.
///
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.resx
new file mode 100644
index 00000000..732e6c03
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.resx
@@ -0,0 +1,255 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ShowProgressDialog('Updating user settings...');
+
+
+ Disable User
+
+
+ Account is locked out
+
+
+ Set Password
+
+
+
+
+
+ Address:
+
+
+ Business Phone:
+
+
+ City:
+
+
+ Company:
+
+
+ Country/Region:
+
+
+ Department:
+
+
+ Display Name: *
+
+
+ External e-mail:
+
+
+ Fax:
+
+
+ First Name:
+
+
+ Home Phone:
+
+
+ Initials:
+
+
+ Job Title:
+
+
+ Last Name:
+
+
+ Manager:
+
+
+ Mobile Phone:
+
+
+ Notes:
+
+
+ Office:
+
+
+ Pager:
+
+
+ Password:
+
+
+ State/Province:
+
+
+ Account Number:
+
+
+ Edit User
+
+
+ User Domain Name:
+
+
+ Web Page:
+
+
+ Zip/Postal Code:
+
+
+ Address
+
+
+ Advanced
+
+
+ Company Information
+
+
+ Contact Information
+
+
+ User
+
+
+ Enter Display Name
+
+
+ *
+
+
+ Login Name:
+
+
+ Set Password
+
+
+ Set Login Name
+
+
+ Update Services
+
+
+ Service Level:
+
+
+ VIP:
+
+
+ Service Level Information
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx.resx
new file mode 100644
index 00000000..5fa94e6c
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Edit User
+
+
+ General
+
+
+ Users
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx
index 0f3c717e..5f70a82f 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx
@@ -46,68 +46,107 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
- <%# Eval("DisplayName") %>
-
-
-
-
-
-
-
-
- <%# GetServiceLevel((int)Eval("LevelId")).LevelName%>
-
-
-
-
-
-
-
- />
- />
- />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ <%# Eval("DisplayName") %>
+
+
+
+
+
+
+
+
+ <%# GetServiceLevel((int)Eval("LevelId")).LevelName%>
+
+
+
+
+
+
+
+ />
+ />
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx.cs
index cca54139..a4380cb9 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx.cs
@@ -130,28 +130,30 @@ namespace WebsitePanel.Portal.HostedSolution
{
if (e.CommandName == "DeleteItem")
{
- // delete user
- int accountId = Utils.ParseInt(e.CommandArgument.ToString(), 0);
+ int rowIndex = Utils.ParseInt(e.CommandArgument.ToString(), 0);
- try
+ var accountId = Utils.ParseInt(gvUsers.DataKeys[rowIndex][0], 0);
+
+ var accountType = (ExchangeAccountType)gvUsers.DataKeys[rowIndex][1];
+
+ if (cntx.Quotas.ContainsKey(Quotas.ORGANIZATION_DELETED_USERS) && accountType != ExchangeAccountType.User)
{
- int result = ES.Services.Organizations.DeleteUser(PanelRequest.ItemID, accountId);
- if (result < 0)
- {
- messageBox.ShowResultMessage(result);
- return;
- }
+ chkEnableForceArchiveMailbox.Visible = true;
- // rebind grid
- gvUsers.DataBind();
+ var account = ES.Services.ExchangeServer.GetAccount(PanelRequest.ItemID, accountId);
+ var mailboxPlan = ES.Services.ExchangeServer.GetExchangeMailboxPlan(PanelRequest.ItemID, account.MailboxPlanId);
- // bind stats
- BindStats();
+ chkEnableForceArchiveMailbox.Checked = mailboxPlan.EnableForceArchiveDeletion;
+ chkEnableForceArchiveMailbox.Enabled = !mailboxPlan.EnableForceArchiveDeletion;
}
- catch (Exception ex)
+ else
{
- messageBox.ShowErrorMessage("ORGANIZATIONS_DELETE_USERS", ex);
+ chkEnableForceArchiveMailbox.Visible = false;
}
+
+ hdAccountId.Value = accountId.ToString();
+
+ DeleteUserModal.Show();
}
if (e.CommandName == "OpenMailProperties")
@@ -195,13 +197,9 @@ namespace WebsitePanel.Portal.HostedSolution
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "edit_lync_user",
"AccountID=" + accountId,
"ItemID=" + PanelRequest.ItemID));
-
-
-
}
}
-
public string GetAccountImage(int accountTypeId, bool vip)
{
string imgName = string.Empty;
@@ -354,5 +352,41 @@ namespace WebsitePanel.Portal.HostedSolution
return serviceLevel;
}
+
+ protected void btnDelete_Click(object sender, EventArgs e)
+ {
+ DeleteUserModal.Hide();
+
+ // delete user
+ try
+ {
+ int result = 0;
+
+ if (cntx.Quotas.ContainsKey(Quotas.ORGANIZATION_DELETED_USERS))
+ {
+ result = ES.Services.Organizations.SetDeletedUser(PanelRequest.ItemID, int.Parse(hdAccountId.Value), chkEnableForceArchiveMailbox.Checked);
+ }
+ else
+ {
+ result = ES.Services.Organizations.DeleteUser(PanelRequest.ItemID, int.Parse(hdAccountId.Value));
+ }
+
+ if (result < 0)
+ {
+ messageBox.ShowResultMessage(result);
+ return;
+ }
+
+ // rebind grid
+ gvUsers.DataBind();
+
+ // bind stats
+ BindStats();
+ }
+ catch (Exception ex)
+ {
+ messageBox.ShowErrorMessage("ORGANIZATIONS_DELETE_USERS", ex);
+ }
+ }
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx.designer.cs
index 1f8a65f0..22dab4cf 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUsers.ascx.designer.cs
@@ -130,6 +130,24 @@ namespace WebsitePanel.Portal.HostedSolution {
///
protected global::System.Web.UI.WebControls.ImageButton cmdSearch;
+ ///
+ /// UsersPanel control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Panel UsersPanel;
+
+ ///
+ /// UsersUpdatePanel control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.UpdatePanel UsersUpdatePanel;
+
///
/// gvUsers control.
///
@@ -148,6 +166,96 @@ namespace WebsitePanel.Portal.HostedSolution {
///
protected global::System.Web.UI.WebControls.ObjectDataSource odsAccountsPaged;
+ ///
+ /// DeleteUserPanel control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Panel DeleteUserPanel;
+
+ ///
+ /// headerDeleteUser control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Localize headerDeleteUser;
+
+ ///
+ /// DeleteUserUpdatePanel control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.UpdatePanel DeleteUserUpdatePanel;
+
+ ///
+ /// hdAccountId control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.HiddenField hdAccountId;
+
+ ///
+ /// litDeleteUser control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal litDeleteUser;
+
+ ///
+ /// chkEnableForceArchiveMailbox control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.CheckBox chkEnableForceArchiveMailbox;
+
+ ///
+ /// btnDeleteUser control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Button btnDeleteUser;
+
+ ///
+ /// btnCancelDelete control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Button btnCancelDelete;
+
+ ///
+ /// btnDeleteUserFake control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Button btnDeleteUserFake;
+
+ ///
+ /// DeleteUserModal control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::AjaxControlToolkit.ModalPopupExtender DeleteUserModal;
+
///
/// locQuota control.
///
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/AccountsList.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/AccountsList.ascx.cs
index 28eff1a1..6f5c5d8a 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/AccountsList.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/AccountsList.ascx.cs
@@ -44,6 +44,12 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
Unselected
}
+ public bool Disabled
+ {
+ get { return ViewState["Disabled"] != null ? (bool)ViewState["Disabled"] : false; }
+ set { ViewState["Disabled"] = value; }
+ }
+
public bool EnableMailboxOnly
{
get {return ViewState["EnableMailboxOnly"] != null ? (bool)ViewState["EnableMailboxOnly"]: false; }
@@ -116,6 +122,11 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
// toggle controls
if (!IsPostBack)
{
+ if (Disabled)
+ {
+ btnAdd.Visible = btnDelete.Visible = gvAccounts.Columns[0].Visible = false;
+ }
+
chkIncludeMailboxes.Visible = chkIncludeRooms.Visible = chkIncludeEquipment.Visible = MailboxesEnabled;
chkIncludeMailboxes.Checked = chkIncludeRooms.Checked = chkIncludeEquipment.Checked = MailboxesEnabled;
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/DeletedUserTabs.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/DeletedUserTabs.ascx.resx
new file mode 100644
index 00000000..0b1734cb
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/DeletedUserTabs.ascx.resx
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Advanced
+
+
+ General
+
+
+ Settings
+
+
+ Member Of
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx
index c66a3c75..afbd303a 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx
@@ -225,4 +225,7 @@
Retention Policy Tag
+
+ Deleted Users
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx
new file mode 100644
index 00000000..5d23f33e
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx
@@ -0,0 +1,27 @@
+<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DeletedUserTabs.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.UserControls.DeletedUserTabs" %>
+
+
+
+
+
+
+
+
+ <%# Eval("Name") %>
+
+
+
+
+
+ <%# Eval("Name") %>
+
+
+
+
+
+
+ |
+
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx.cs
new file mode 100644
index 00000000..3c7af70b
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx.cs
@@ -0,0 +1,100 @@
+// Copyright (c) 2014, Outercurve Foundation.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// - Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// - Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// - Neither the name of the Outercurve Foundation nor the names of its
+// contributors may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+using System;
+using System.Collections.Generic;
+using WebsitePanel.Portal.Code.UserControls;
+using WebsitePanel.WebPortal;
+using WebsitePanel.EnterpriseServer;
+using WebsitePanel.Providers.HostedSolution;
+
+namespace WebsitePanel.Portal.ExchangeServer.UserControls
+{
+ public partial class DeletedUserTabs : WebsitePanelControlBase
+ {
+ private string selectedTab;
+ public string SelectedTab
+ {
+ get { return selectedTab; }
+ set { selectedTab = value; }
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ BindTabs();
+ }
+
+ private void BindTabs()
+ {
+ List tabsList = new List();
+ tabsList.Add(CreateTab("view_deleted_user", "Tab.General"));
+
+ PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
+
+ bool bSuccess = Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPS, cntx);
+
+ if (!bSuccess)
+ {
+ // get user settings
+ OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID);
+
+ bSuccess = (Utils.CheckQouta(Quotas.EXCHANGE2007_DISTRIBUTIONLISTS, cntx)
+ && (user.AccountType == ExchangeAccountType.Mailbox
+ || user.AccountType == ExchangeAccountType.Room
+ || user.AccountType == ExchangeAccountType.Equipment));
+ }
+
+ if (bSuccess)
+ {
+ tabsList.Add(CreateTab("deleted_user_memberof", "Tab.MemberOf"));
+ }
+
+ // find selected menu item
+ int idx = 0;
+ foreach (Tab tab in tabsList)
+ {
+ if (String.Compare(tab.Id, SelectedTab, true) == 0)
+ break;
+ idx++;
+ }
+ dlTabs.SelectedIndex = idx;
+
+ dlTabs.DataSource = tabsList;
+ dlTabs.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(),
+ "Context=User"));
+ }
+ }
+}
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx.designer.cs
new file mode 100644
index 00000000..2b4c2187
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DeletedUserTabs.ascx.designer.cs
@@ -0,0 +1,24 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace WebsitePanel.Portal.ExchangeServer.UserControls {
+
+
+ public partial class DeletedUserTabs {
+
+ ///
+ /// dlTabs control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.DataList dlTabs;
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/Menu.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/Menu.ascx.cs
index c4fcf21a..386f3984 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/Menu.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/Menu.ascx.cs
@@ -186,9 +186,13 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
if (Utils.CheckQouta(Quotas.ORGANIZATION_DOMAINS, cntx))
organizationGroup.MenuItems.Add(CreateMenuItem("DomainNames", "org_domains"));
}
+
if (Utils.CheckQouta(Quotas.ORGANIZATION_USERS, cntx))
organizationGroup.MenuItems.Add(CreateMenuItem("Users", "users"));
+ if (Utils.CheckQouta(Quotas.ORGANIZATION_DELETED_USERS, cntx))
+ organizationGroup.MenuItems.Add(CreateMenuItem("DeletedUsers", "deleted_users"));
+
if (Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPS, cntx))
organizationGroup.MenuItems.Add(CreateMenuItem("SecurityGroups", "secur_groups"));
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/Organizations_Settings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/Organizations_Settings.ascx.resx
index 340ae559..7fb6e904 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/Organizations_Settings.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/Organizations_Settings.ascx.resx
@@ -112,10 +112,10 @@
2.0
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Preferred Domain Controller:
@@ -135,4 +135,7 @@
Append OrgID
+
+ Archive Storage Path:
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/Organizations_Settings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/Organizations_Settings.ascx
index 3905c282..d34e1194 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/Organizations_Settings.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/Organizations_Settings.ascx
@@ -32,4 +32,8 @@
|
+