From 9f803069fbc573100320b97be17a07cb6bc71797 Mon Sep 17 00:00:00 2001 From: robvde Date: Thu, 22 Nov 2012 23:48:04 +0400 Subject: [PATCH 01/28] Fixed Typo --- WebsitePanel/Database/update_db.sql | 6 +++--- .../WebsitePanel.EnterpriseServer/Web.config | 14 +++++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 65f678f4..ff98ddef 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -577,9 +577,9 @@ ALTER TABLE [dbo].[ExchangeAccounts] ADD END GO -IF NOT EXISTS(SELECT * FROM [dbo].[ExchangeAccounts] WHERE UserPrincipalName IS NOT NULL) +IF NOT EXISTS(SELECT 1 FROM [dbo].[ExchangeAccounts] WHERE UserPrincipalName IS NOT NULL) BEGIN - UPDATE [dbo].[ExchangeAccounts] SET [UserPrincipalName] = PrimaryEmailAddress + UPDATE [dbo].[ExchangeAccounts] SET [UserPrincipalName] = PrimaryEmailAddress WHERE AccountType IN (1,7) END GO @@ -6924,7 +6924,7 @@ AS UPDATE LyncUsers SET SipAddress = @SipAddress WHERE - AccountID = @AccountID AND AccountType IN (1,7) + AccountID = @AccountID RETURN' END diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 3766094f..6c7d9d64 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,11 +5,19 @@ - + + - - + + + From 86636a6f8c7947b02bafed58750eecf1bf669602 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Thu, 22 Nov 2012 21:42:47 -0500 Subject: [PATCH 02/28] Merge --- .../WebsitePanel.EnterpriseServer/Web.config | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 6c7d9d64..3766094f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,19 +5,11 @@ - - + - - - + + From 97e2ca36901a7d4db5ce8ad7cc429981de2d6c4d Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Thu, 22 Nov 2012 21:49:26 -0500 Subject: [PATCH 03/28] Added tag build-2.0.0.185 for changeset 1b83d7eccae9 From a146b6ebd54c88d78e2ac7ad5b8b58d21c5af324 Mon Sep 17 00:00:00 2001 From: robvde Date: Fri, 23 Nov 2012 13:24:22 +0400 Subject: [PATCH 04/28] Fixed wsp-10061 Getting error when deleting an accepted domain Occurs when OCS is enabled and no edge servers are defined --- .../Code/HostedSolution/OCSController.cs | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OCSController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OCSController.cs index 56b08755..d202ce0c 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OCSController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OCSController.cs @@ -84,20 +84,23 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution private static OCSEdgeServer[] GetEdgeServers(string edgeServices) { List list = new List(); - string[] services = edgeServices.Split(';'); - foreach (string current in services) + if (!string.IsNullOrEmpty(edgeServices)) { - string[] data = current.Split(','); - try + string[] services = edgeServices.Split(';'); + foreach (string current in services) { - int serviceId = int.Parse(data[1]); - OCSEdgeServer ocs = new OCSEdgeServer(); - ServiceProviderProxy.Init(ocs, serviceId); - list.Add(ocs); - } - catch(Exception ex) - { - TaskManager.WriteError(ex); + string[] data = current.Split(','); + try + { + int serviceId = int.Parse(data[1]); + OCSEdgeServer ocs = new OCSEdgeServer(); + ServiceProviderProxy.Init(ocs, serviceId); + list.Add(ocs); + } + catch (Exception ex) + { + TaskManager.WriteError(ex); + } } } From 2d6acfc7fc11674484388835425e0793417d564e Mon Sep 17 00:00:00 2001 From: robvde Date: Fri, 23 Nov 2012 13:50:02 +0400 Subject: [PATCH 05/28] Fixed wsp-10062 Need to add check so that it is not possible to delete an accepted domain from a tenant or an email address from a mailbox when used in UPN --- .../Code/ExchangeServer/ExchangeServerController.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs index 486e2519..7735e310 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs @@ -2158,7 +2158,8 @@ namespace WebsitePanel.EnterpriseServer List toDelete = new List(); foreach (string emailAddress in emailAddresses) { - if (String.Compare(account.PrimaryEmailAddress, emailAddress, true) != 0) + if ((String.Compare(account.PrimaryEmailAddress, emailAddress, true) != 0) & + (String.Compare(account.UserPrincipalName, emailAddress, true) != 0)) toDelete.Add(emailAddress); } From f3daaacb8c072a4e945ab38b6059708475afcb26 Mon Sep 17 00:00:00 2001 From: robvde Date: Fri, 23 Nov 2012 13:58:59 +0400 Subject: [PATCH 06/28] EmailAddresses list view headers updated --- .../ExchangeMailboxEmailAddresses.ascx.resx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxEmailAddresses.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxEmailAddresses.ascx.resx index 31627731..e20ccdb3 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxEmailAddresses.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxEmailAddresses.ascx.resx @@ -130,7 +130,7 @@ Allow these settings to be managed from <b>Personal Mailbox Manager</b> - <b>Primary E-Mail Address</b> is a User Principal Name (UPN). It will be used as a login in Outlook and Outlook Web Access (OWA). Also, Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page. </p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p> + <b>Primary E-Mail Address</b> The Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page. </p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p> E-mail Address @@ -139,7 +139,7 @@ The list of e-mails is empty. Add at least one e-mail address. - Primary E-mail Address (UPN) + Primary E-mail Address Add New E-mail Address From 18a4608ad251d7f82679a5e7aee1453f555a24d6 Mon Sep 17 00:00:00 2001 From: robvde Date: Fri, 23 Nov 2012 15:22:36 +0400 Subject: [PATCH 07/28] wsp-10003 update the Lync users sip address when the primary email address is changed in mailbox --- .../WebsitePanel.EnterpriseServer/Web.config | 14 ++- .../UserControls/DomainSelector.ascx.cs | 12 ++ .../UserControls/EmailAddress.ascx.cs | 6 +- .../Lync/UserControls/LyncUserSettings.ascx | 5 +- .../UserControls/LyncUserSettings.ascx.cs | 106 ++++++++++++++---- .../LyncUserSettings.ascx.designer.cs | 37 ++---- 6 files changed, 126 insertions(+), 54 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 3766094f..6c7d9d64 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,11 +5,19 @@ - + + - - + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DomainSelector.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DomainSelector.ascx.cs index c56e96da..9b421295 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DomainSelector.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DomainSelector.ascx.cs @@ -37,6 +37,18 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls public string DomainName { get { return ddlDomain.SelectedItem.Text; } + set + { + foreach (ListItem li in ddlDomain.Items) + { + if (li.Value == value) + { + ddlDomain.ClearSelection(); + li.Selected = true; + break; + } + } + } } public int DomainId diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EmailAddress.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EmailAddress.ascx.cs index 39c9b920..9e19732f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EmailAddress.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EmailAddress.ascx.cs @@ -69,13 +69,17 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls { return domain.DomainName; } + set + { + domain.DomainName = value; + } } public string Email { get { - return AccountName + "@" + DomainName; + return string.Format("{0}@{1}",AccountName, DomainName).ToLower(); } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx index 5da9df82..9ac249d9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx @@ -1,2 +1,5 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LyncUserSettings.ascx.cs" Inherits="WebsitePanel.Portal.Lync.UserControls.LyncUserSettings" %> - \ No newline at end of file +<%@ Register Src="../../ExchangeServer/UserControls/EmailAddress.ascx" TagName="EmailAddress" TagPrefix="wsp" %> + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.cs index c7b45afa..78dc4792 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.cs @@ -28,7 +28,9 @@ using System; using System.Web.UI.WebControls; -using EntServer = WebsitePanel.EnterpriseServer; +using WebsitePanel.EnterpriseServer; +using WebsitePanel.Providers.HostedSolution; +using WebsitePanel.Providers.ResultObjects; namespace WebsitePanel.Portal.Lync.UserControls { @@ -40,17 +42,50 @@ namespace WebsitePanel.Portal.Lync.UserControls public string sipAddress { - get { return ddlSipAddresses.SelectedItem.Value; } + get + { + if (ddlSipAddresses.Visible) + { + if ((ddlSipAddresses != null) && (ddlSipAddresses.SelectedItem != null)) + return ddlSipAddresses.SelectedItem.Value; + else + return string.Empty; + } + else + { + return email.Email; + } + } set { sipAddressToSelect = value; - foreach (ListItem li in ddlSipAddresses.Items) + + if (ddlSipAddresses.Visible) { - if (li.Value == value) + if ((ddlSipAddresses != null) && (ddlSipAddresses.Items != null)) { - ddlSipAddresses.ClearSelection(); - li.Selected = true; - break; + foreach (ListItem li in ddlSipAddresses.Items) + { + if (li.Value == value) + { + ddlSipAddresses.ClearSelection(); + li.Selected = true; + break; + } + } + } + } + else + { + if (!string.IsNullOrEmpty(value)) + { + string[] Tmp = value.Split('@'); + email.AccountName = Tmp[0]; + + if (Tmp.Length > 1) + { + email.DomainName = Tmp[1]; + } } } } @@ -76,25 +111,54 @@ namespace WebsitePanel.Portal.Lync.UserControls private void BindAddresses() { - EntServer.ExchangeEmailAddress[] emails = ES.Services.ExchangeServer.GetMailboxEmailAddresses(PanelRequest.ItemID, PanelRequest.AccountID); + OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID); - foreach (EntServer.ExchangeEmailAddress email in emails) - { - ListItem li = new ListItem(); - li.Text = email.EmailAddress; - li.Value = email.EmailAddress; - li.Selected = email.IsPrimary; - ddlSipAddresses.Items.Add(li); - } + if (user == null) + return; - foreach (ListItem li in ddlSipAddresses.Items) + if (user.AccountType == ExchangeAccountType.Mailbox) { - if (li.Value == sipAddressToSelect) + email.Visible = false; + ddlSipAddresses.Visible = true; + + WebsitePanel.EnterpriseServer.ExchangeEmailAddress[] emails = ES.Services.ExchangeServer.GetMailboxEmailAddresses(PanelRequest.ItemID, PanelRequest.AccountID); + + foreach (WebsitePanel.EnterpriseServer.ExchangeEmailAddress mail in emails) { - ddlSipAddresses.ClearSelection(); - li.Selected = true; - break; + ListItem li = new ListItem(); + li.Text = mail.EmailAddress; + li.Value = mail.EmailAddress; + li.Selected = mail.IsPrimary; + ddlSipAddresses.Items.Add(li); } + + foreach (ListItem li in ddlSipAddresses.Items) + { + if (li.Value == sipAddressToSelect) + { + ddlSipAddresses.ClearSelection(); + li.Selected = true; + break; + } + } + } + else + { + email.Visible = true; + ddlSipAddresses.Visible = false; + + if (!string.IsNullOrEmpty(sipAddressToSelect)) + { + string[] Tmp = sipAddressToSelect.Split('@'); + email.AccountName = Tmp[0]; + + if (Tmp.Length > 1) + { + email.DomainName = Tmp[1]; + } + } + + } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs index 202d581f..1400a773 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2011, 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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -48,5 +20,14 @@ namespace WebsitePanel.Portal.Lync.UserControls { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.DropDownList ddlSipAddresses; + + /// + /// email control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EmailAddress email; } } From 3e8a53a4684a34611365a53646079a5787ff6fa8 Mon Sep 17 00:00:00 2001 From: robvde Date: Fri, 23 Nov 2012 15:54:47 +0400 Subject: [PATCH 08/28] Fixed: Do not allow to delete a domain when used by hosting organization objects --- WebsitePanel/Database/update_db.sql | 26 +++++++++++++++++++ .../Code/Data/DataProvider.cs | 16 ++++++++++++ .../ExchangeServerController.cs | 4 +++ .../HostedSolution/OrganizationController.cs | 10 ++++++- .../WebsitePanel_SharedResources.ascx.resx | 6 +++++ .../ExchangeDomainNames.ascx.cs | 3 +-- .../OrganizationDomainNames.ascx.cs | 3 +-- .../Lync/LyncAddLyncUserPlan.ascx.cs | 1 + 8 files changed, 64 insertions(+), 5 deletions(-) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index ff98ddef..958dac68 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -6931,3 +6931,29 @@ END GO + +IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'CheckDomainUsedByHostedOrganization') +BEGIN +EXEC sp_executesql N'CREATE PROCEDURE [dbo].[CheckDomainUsedByHostedOrganization] + @DomainName nvarchar(100), + @Result int OUTPUT +AS + SET @Result = 0 + IF EXISTS(SELECT 1 FROM ExchangeAccounts WHERE UserPrincipalName LIKE ''%@''+ @DomainName) + BEGIN + SET @Result = 1 + END + ELSE + IF EXISTS(SELECT 1 FROM ExchangeAccountEmailAddresses WHERE EmailAddress LIKE ''%@''+ @DomainName) + BEGIN + SET @Result = 1 + END + ELSE + IF EXISTS(SELECT 1 FROM LyncUsers WHERE SipAddress LIKE ''%@''+ @DomainName) + BEGIN + SET @Result = 1 + END + + RETURN @Result' +END +GO \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs index f7ab7cf4..93935dfb 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs @@ -829,6 +829,22 @@ namespace WebsitePanel.EnterpriseServer return Convert.ToInt32(prmId.Value); } + + + public static int CheckDomainUsedByHostedOrganization(string domainName) + { + SqlParameter prmId = new SqlParameter("@Result", SqlDbType.Int); + prmId.Direction = ParameterDirection.Output; + + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "CheckDomainUsedByHostedOrganization", + prmId, + new SqlParameter("@domainName", domainName)); + + return Convert.ToInt32(prmId.Value); + } + + public static int AddDomain(int actorId, int packageId, int zoneItemId, string domainName, bool hostingAllowed, int webSiteId, int mailDomainId, bool isSubDomain, bool isInstantAlias, bool isDomainPointer) { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs index 7735e310..332a50aa 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs @@ -1534,6 +1534,10 @@ namespace WebsitePanel.EnterpriseServer if(domain == null) return -1; + if (DataProvider.CheckDomainUsedByHostedOrganization(domain.DomainName) == 1) + { + return -1; + } // delete domain on Exchange int[] hubTransportServiceIds; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs index 00662bce..be56a17f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs @@ -425,7 +425,15 @@ namespace WebsitePanel.EnterpriseServer DomainInfo domain = ServerController.GetDomain(domainId); if (domain == null) return -1; - + + if (!string.IsNullOrEmpty(org.GlobalAddressList)) + { + if (DataProvider.CheckDomainUsedByHostedOrganization(domain.DomainName) == 1) + { + return -1; + } + } + // unregister domain DataProvider.DeleteExchangeOrganizationDomain(itemId, domainId); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx index fc7a3c5b..107773db 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx @@ -2896,6 +2896,9 @@ Hosted Organization + + Unable to delete domain, verify if domain is in use by hosted organization objects. + Error creating mailbox. See audit log for more details. @@ -5072,6 +5075,9 @@ Cannot delete Lync User, the following errors have been occured: + + Unabled to add plan + General Lync User settings have been successfully updated. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx.cs index 314bf130..18f4b688 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx.cs @@ -103,8 +103,7 @@ namespace WebsitePanel.Portal.ExchangeServer int result = ES.Services.Organizations.DeleteOrganizationDomain(PanelRequest.ItemID, domainId); if (result < 0) { - messageBox.ShowResultMessage(result); - return; + messageBox.ShowErrorMessage("EXCHANGE_UNABLE_TO_DELETE_DOMAIN"); } // rebind domains diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationDomainNames.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationDomainNames.ascx.cs index 1fd56a34..bc61fa59 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationDomainNames.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationDomainNames.ascx.cs @@ -103,8 +103,7 @@ namespace WebsitePanel.Portal.ExchangeServer int result = ES.Services.Organizations.DeleteOrganizationDomain(PanelRequest.ItemID, domainId); if (result < 0) { - messageBox.ShowResultMessage(result); - return; + messageBox.ShowErrorMessage("EXCHANGE_UNABLE_TO_DELETE_DOMAIN"); } // rebind domains diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncAddLyncUserPlan.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncAddLyncUserPlan.ascx.cs index 82648d9d..58072ca2 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncAddLyncUserPlan.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncAddLyncUserPlan.ascx.cs @@ -158,6 +158,7 @@ namespace WebsitePanel.Portal.Lync if (result < 0) { messageBox.ShowResultMessage(result); + messageBox.ShowErrorMessage("LYNC_UNABLE_TO_ADD_PLAN"); return; } From 5098496519a6c727cb8dc25d6cfd9659230fb17c Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Fri, 23 Nov 2012 07:22:46 -0500 Subject: [PATCH 09/28] Merge --- .../WebsitePanel.EnterpriseServer/Web.config | 14 ++-------- .../LyncUserSettings.ascx.designer.cs | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 6c7d9d64..3766094f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,19 +5,11 @@ - - + - - - + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs index 1400a773..3ca9f655 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs @@ -1,3 +1,31 @@ +// Copyright (c) 2011, 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. + //------------------------------------------------------------------------------ // // This code was generated by a tool. From 9bce7801791cddba9dc270c8a6189b04c0e6e5f6 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Fri, 23 Nov 2012 07:28:06 -0500 Subject: [PATCH 10/28] Added tag build-2.0.0.186 for changeset e35930a1160e From f3d1a24a4038d60de077075cd4fdea557c9b768c Mon Sep 17 00:00:00 2001 From: robvde Date: Fri, 23 Nov 2012 17:03:58 +0400 Subject: [PATCH 11/28] Fixed wsp-10063 Error when clicking "Create new Mailbox Button" in exchange build 2.0.0.186 --- .../ExchangeServer/ExchangeMailboxes.ascx | 2 +- .../WebsitePanel/Lync/LyncUsers.ascx | 2 +- .../Lync/LyncUsers.ascx.designer.cs | 30 +------------------ 3 files changed, 3 insertions(+), 31 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx index 35443356..09dc751d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx @@ -71,7 +71,7 @@ - <%# Eval("UserPrincipalName") %> diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx index f94d5abd..1eba42da 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx @@ -67,7 +67,7 @@ - <%# Eval("UserPrincipalName") %> diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx.designer.cs index 9f386e85..25937689 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx.designer.cs @@ -1,32 +1,4 @@ -// Copyright (c) 2011, 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. - -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // From bc958d801493d25aa6f7c16287b34502276201e7 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Fri, 23 Nov 2012 08:08:25 -0500 Subject: [PATCH 12/28] Merge --- .../Lync/LyncUsers.ascx.designer.cs | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx.designer.cs index 25937689..9f386e85 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncUsers.ascx.designer.cs @@ -1,4 +1,32 @@ -//------------------------------------------------------------------------------ +// Copyright (c) 2011, 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. + +//------------------------------------------------------------------------------ // // This code was generated by a tool. // From 5fa9d07d0b416af7d270364ce58819fd029223d5 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Fri, 23 Nov 2012 08:13:44 -0500 Subject: [PATCH 13/28] Added tag build-2.0.0.187 for changeset 3f60aa0b2d29 From 8a4159a0ff3bdf2886f2b7549eeb7fe38ce89d44 Mon Sep 17 00:00:00 2001 From: robvde Date: Fri, 23 Nov 2012 18:42:11 +0400 Subject: [PATCH 14/28] UI plumbing change UPN Fixed: ExchangeAccount Password stored unencrypted when setting primary email address --- WebsitePanel/Database/update_db.sql | 9 ++++- .../Packages/Quotas.cs | 1 + .../ExchangeServerController.cs | 12 +++++- .../HostedSolution/OrganizationController.cs | 2 +- .../WebsitePanel.EnterpriseServer/Web.config | 14 +++++-- .../WebsitePanel_SharedResources.ascx.resx | 3 ++ .../OrganizationUserGeneralSettings.ascx | 6 ++- .../OrganizationUserGeneralSettings.ascx.cs | 26 +++++++++++++ ...zationUserGeneralSettings.ascx.designer.cs | 37 +++++-------------- 9 files changed, 75 insertions(+), 35 deletions(-) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 958dac68..9c756686 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -6956,4 +6956,11 @@ AS RETURN @Result' END -GO \ No newline at end of file +GO + + +IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'HostedSolution.AllowChangeUPN') +BEGIN +INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (230, 13, 4, N'HostedSolution.AllowChangeUPN', N'Allow to Change UserPrincipalName', 1, 0, NULL) +END +GO diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/Quotas.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/Quotas.cs index 8090dd31..7541d383 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/Quotas.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/Quotas.cs @@ -150,6 +150,7 @@ order by rg.groupOrder public const string ORGANIZATIONS = "HostedSolution.Organizations"; public const string ORGANIZATION_USERS = "HostedSolution.Users"; public const string ORGANIZATION_DOMAINS = "HostedSolution.Domains"; + public const string ORGANIZATION_ALLOWCHANGEUPN = "HostedSolution.AllowChangeUPN"; public const string CRM_USERS = "HostedCRM.Users"; public const string CRM_ORGANIZATION = "HostedCRM.Organization"; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs index 332a50aa..2c0c761d 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs @@ -1817,7 +1817,8 @@ namespace WebsitePanel.EnterpriseServer exchange.DisableMailbox(account.AccountName); account.AccountType = ExchangeAccountType.User; - account.MailEnabledPublicFolder = false; + account.MailEnabledPublicFolder = false; + account.AccountPassword = null; UpdateAccount(account); DataProvider.DeleteUserEmailAddresses(account.AccountId, account.PrimaryEmailAddress); @@ -2129,6 +2130,7 @@ namespace WebsitePanel.EnterpriseServer } // save account + account.AccountPassword = null; UpdateAccount(account); return 0; @@ -2357,6 +2359,7 @@ namespace WebsitePanel.EnterpriseServer else account.MailboxManagerActions &= ~action; // update account + account.AccountPassword = null; UpdateAccount(account); return 0; @@ -3193,6 +3196,7 @@ namespace WebsitePanel.EnterpriseServer // update account account.DisplayName = displayName; account.PrimaryEmailAddress = emailAddress; + account.AccountPassword = null; UpdateAccount(account); return 0; @@ -3521,6 +3525,7 @@ namespace WebsitePanel.EnterpriseServer // update account account.DisplayName = displayName; + account.AccountPassword = null; UpdateAccount(account); return 0; @@ -3741,6 +3746,7 @@ namespace WebsitePanel.EnterpriseServer addressLists.ToArray()); // save account + account.AccountPassword = null; UpdateAccount(account); return 0; @@ -4143,6 +4149,7 @@ namespace WebsitePanel.EnterpriseServer account.AccountName = accountName; account.MailEnabledPublicFolder = true; account.PrimaryEmailAddress = email; + account.AccountPassword = null; UpdateAccount(account); // register e-mail @@ -4195,6 +4202,7 @@ namespace WebsitePanel.EnterpriseServer // update and save account account.MailEnabledPublicFolder = false; account.PrimaryEmailAddress = ""; + account.AccountPassword = null; UpdateAccount(account); @@ -4314,6 +4322,7 @@ namespace WebsitePanel.EnterpriseServer { // rename original folder account.DisplayName = newFullName; + account.AccountPassword = null; UpdateAccount(account); // rename nested folders @@ -4531,6 +4540,7 @@ namespace WebsitePanel.EnterpriseServer emailAddress); // save account + account.AccountPassword = null; UpdateAccount(account); return 0; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs index be56a17f..bcb9d185 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs @@ -1735,7 +1735,7 @@ namespace WebsitePanel.EnterpriseServer if (!String.IsNullOrEmpty(password)) account.AccountPassword = CryptoUtils.Encrypt(password); else - account.AccountPassword = string.Empty; + account.AccountPassword = null; UpdateAccount(account); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 3766094f..6c7d9d64 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,11 +5,19 @@ - + + - - + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx index 107773db..30363019 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx @@ -3263,6 +3263,9 @@ Users per Organization + + Allow to Change UserPrincipalName + Domains per Organization diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx index 4ee2563c..cc4d2ce4 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx @@ -8,6 +8,7 @@ <%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %> <%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %> <%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %> +<%@ Register Src="UserControls/EmailAddress.ascx" TagName="EmailAddress" TagPrefix="wsp" %> @@ -43,7 +44,10 @@ - + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs index 627d7d89..16bb35ec 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs @@ -120,6 +120,32 @@ namespace WebsitePanel.Portal.HostedSolution } } + + if (cntx.Quotas.ContainsKey(Quotas.ORGANIZATION_ALLOWCHANGEUPN)) + { + if (cntx.Quotas[Quotas.ORGANIZATION_ALLOWCHANGEUPN].QuotaAllocatedValue != 1) + { + lblUserPrincipalName.Visible = true; + upn.Visible = false; + } + else + { + lblUserPrincipalName.Visible = false; + upn.Visible = true; + if (!string.IsNullOrEmpty(user.UserPrincipalName)) + { + string[] Tmp = user.UserPrincipalName.Split('@'); + upn.AccountName = Tmp[0]; + + if (Tmp.Length > 1) + { + upn.DomainName = Tmp[1]; + } + } + + } + } + if (user.Locked) chkLocked.Enabled = true; else diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs index 2295ee44..9b3fbd4b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2012, 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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -139,6 +111,15 @@ namespace WebsitePanel.Portal.HostedSolution { /// protected global::System.Web.UI.WebControls.Label lblUserPrincipalName; + /// + /// upn control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EmailAddress upn; + /// /// locDisplayName control. /// From 3d0474e6234097818281acc1e939e37f4434b6e9 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Fri, 23 Nov 2012 13:55:07 -0500 Subject: [PATCH 15/28] Added tag build-2.0.0.188 for changeset 7367e8b9dad7 From 4c75df5a73b09e152cfe7cc79454f0dfc4c75d36 Mon Sep 17 00:00:00 2001 From: robvde Date: Sat, 24 Nov 2012 11:39:42 +0400 Subject: [PATCH 16/28] Added change user principalName Added button to change user password Changes EmailAddresses, user principal name disabled --- WebsitePanel/Database/update_db.sql | 21 ++ .../ExchangeServer/ExchangeEmailAddress.cs | 8 + .../OrganizationProxy.cs | 162 ++++++++++++++- .../Code/Data/DataProvider.cs | 10 + .../ExchangeServerController.cs | 7 +- .../HostedSolution/OrganizationController.cs | 172 +++++++++++++++- .../esOrganizations.asmx.cs | 16 ++ .../HostedSolution/ExchangeEmailAddress.cs | 2 + .../HostedSolution/IOrganization.cs | 4 + .../OrganizationProvider.cs | 193 ++++++++++-------- .../OrganizationProxy.cs | 156 ++++++++++++-- .../WebsitePanel.Server/Organizations.asmx.cs | 14 ++ .../WebsitePanel_SharedResources.ascx.resx | 13 ++ .../OrganizationUserGeneralSettings.ascx.resx | 9 + .../ExchangeMailboxEmailAddresses.ascx | 4 +- ...angeMailboxEmailAddresses.ascx.designer.cs | 9 - .../OrganizationUserGeneralSettings.ascx | 28 ++- .../OrganizationUserGeneralSettings.ascx.cs | 119 +++++++++-- ...zationUserGeneralSettings.ascx.designer.cs | 40 +++- WebsitePanel/Sources/generate_es_proxies.bat | 8 +- .../Sources/generate_server_proxies.bat | 8 +- 21 files changed, 850 insertions(+), 153 deletions(-) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 9c756686..ad4b79c9 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -6964,3 +6964,24 @@ BEGIN INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (230, 13, 4, N'HostedSolution.AllowChangeUPN', N'Allow to Change UserPrincipalName', 1, 0, NULL) END GO + + + + +IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'UpdateExchangeAccountUserPrincipalName') +BEGIN +EXEC sp_executesql N' CREATE PROCEDURE [dbo].[UpdateExchangeAccountUserPrincipalName] +( + @AccountID int, + @UserPrincipalName nvarchar(300) +) +AS + +UPDATE ExchangeAccounts SET + UserPrincipalName = @UserPrincipalName +WHERE + AccountID = @AccountID + +RETURN' +END +GO diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/ExchangeServer/ExchangeEmailAddress.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/ExchangeServer/ExchangeEmailAddress.cs index 0eccbbc1..24eb5d80 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/ExchangeServer/ExchangeEmailAddress.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/ExchangeServer/ExchangeEmailAddress.cs @@ -36,6 +36,7 @@ namespace WebsitePanel.EnterpriseServer { string emailAddress; bool isPrimary; + bool iSuserPrincipalName; public string EmailAddress { @@ -48,5 +49,12 @@ namespace WebsitePanel.EnterpriseServer get { return this.isPrimary; } set { this.isPrimary = value; } } + + public bool IsUserPrincipalName + { + get { return iSuserPrincipalName; } + set { iSuserPrincipalName = value; } + } + } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/OrganizationProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/OrganizationProxy.cs index fe8a4b6e..87b2169c 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/OrganizationProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/OrganizationProxy.cs @@ -29,7 +29,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.6387 +// Runtime Version:2.0.50727.6400 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -54,7 +54,6 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution { using WebsitePanel.Providers.ResultObjects; - /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] @@ -104,6 +103,10 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution { private System.Threading.SendOrPostCallback SetUserGeneralSettingsOperationCompleted; + private System.Threading.SendOrPostCallback SetUserPrincipalNameOperationCompleted; + + private System.Threading.SendOrPostCallback SetUserPasswordOperationCompleted; + private System.Threading.SendOrPostCallback SearchAccountsOperationCompleted; private System.Threading.SendOrPostCallback DeleteUserOperationCompleted; @@ -175,6 +178,12 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution { /// public event SetUserGeneralSettingsCompletedEventHandler SetUserGeneralSettingsCompleted; + /// + public event SetUserPrincipalNameCompletedEventHandler SetUserPrincipalNameCompleted; + + /// + public event SetUserPasswordCompletedEventHandler SetUserPasswordCompleted; + /// public event SearchAccountsCompletedEventHandler SearchAccountsCompleted; @@ -1336,6 +1345,103 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution { } } + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetUserPrincipalName", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int SetUserPrincipalName(int itemId, int accountId, string userPrincipalName, bool inherit) { + object[] results = this.Invoke("SetUserPrincipalName", new object[] { + itemId, + accountId, + userPrincipalName, + inherit}); + return ((int)(results[0])); + } + + /// + public System.IAsyncResult BeginSetUserPrincipalName(int itemId, int accountId, string userPrincipalName, bool inherit, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("SetUserPrincipalName", new object[] { + itemId, + accountId, + userPrincipalName, + inherit}, callback, asyncState); + } + + /// + public int EndSetUserPrincipalName(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((int)(results[0])); + } + + /// + public void SetUserPrincipalNameAsync(int itemId, int accountId, string userPrincipalName, bool inherit) { + this.SetUserPrincipalNameAsync(itemId, accountId, userPrincipalName, inherit, null); + } + + /// + public void SetUserPrincipalNameAsync(int itemId, int accountId, string userPrincipalName, bool inherit, object userState) { + if ((this.SetUserPrincipalNameOperationCompleted == null)) { + this.SetUserPrincipalNameOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetUserPrincipalNameOperationCompleted); + } + this.InvokeAsync("SetUserPrincipalName", new object[] { + itemId, + accountId, + userPrincipalName, + inherit}, this.SetUserPrincipalNameOperationCompleted, userState); + } + + private void OnSetUserPrincipalNameOperationCompleted(object arg) { + if ((this.SetUserPrincipalNameCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SetUserPrincipalNameCompleted(this, new SetUserPrincipalNameCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetUserPassword", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int SetUserPassword(int itemId, int accountId, string password) { + object[] results = this.Invoke("SetUserPassword", new object[] { + itemId, + accountId, + password}); + return ((int)(results[0])); + } + + /// + public System.IAsyncResult BeginSetUserPassword(int itemId, int accountId, string password, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("SetUserPassword", new object[] { + itemId, + accountId, + password}, callback, asyncState); + } + + /// + public int EndSetUserPassword(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((int)(results[0])); + } + + /// + public void SetUserPasswordAsync(int itemId, int accountId, string password) { + this.SetUserPasswordAsync(itemId, accountId, password, null); + } + + /// + public void SetUserPasswordAsync(int itemId, int accountId, string password, object userState) { + if ((this.SetUserPasswordOperationCompleted == null)) { + this.SetUserPasswordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetUserPasswordOperationCompleted); + } + this.InvokeAsync("SetUserPassword", new object[] { + itemId, + accountId, + password}, this.SetUserPasswordOperationCompleted, userState); + } + + private void OnSetUserPasswordOperationCompleted(object arg) { + if ((this.SetUserPasswordCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SetUserPasswordCompleted(this, new SetUserPasswordCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SearchAccounts", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public OrganizationUser[] SearchAccounts(int itemId, string filterColumn, string filterValue, string sortColumn, bool includeMailboxes) { @@ -2000,6 +2106,58 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution { } } + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void SetUserPrincipalNameCompletedEventHandler(object sender, SetUserPrincipalNameCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SetUserPrincipalNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SetUserPrincipalNameCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public int Result { + get { + this.RaiseExceptionIfNecessary(); + return ((int)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void SetUserPasswordCompletedEventHandler(object sender, SetUserPasswordCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SetUserPasswordCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SetUserPasswordCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public int Result { + get { + this.RaiseExceptionIfNecessary(); + return ((int)(this.results[0])); + } + } + } + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void SearchAccountsCompletedEventHandler(object sender, SearchAccountsCompletedEventArgs e); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs index 93935dfb..a92f6776 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs @@ -2354,6 +2354,16 @@ namespace WebsitePanel.EnterpriseServer ); } + public static void UpdateExchangeAccountUserPrincipalName(int accountId, string userPrincipalName) + { + SqlHelper.ExecuteNonQuery( + ConnectionString, + CommandType.StoredProcedure, + "UpdateExchangeAccountUserPrincipalName", + new SqlParameter("@AccountID", accountId), + new SqlParameter("@UserPrincipalName", userPrincipalName)); + } + public static IDataReader GetExchangeAccount(int itemId, int accountId) { return SqlHelper.ExecuteReader( diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs index 2c0c761d..e012ee65 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs @@ -1313,8 +1313,13 @@ namespace WebsitePanel.EnterpriseServer if (String.Compare(account.PrimaryEmailAddress, email.EmailAddress, true) == 0) { email.IsPrimary = true; - break; } + + if (String.Compare(account.UserPrincipalName, email.EmailAddress, true) == 0) + { + email.IsUserPrincipalName = true; + } + } return emails.ToArray(); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs index bcb9d185..17c5c573 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs @@ -41,6 +41,7 @@ using WebsitePanel.Providers.ResultObjects; using WebsitePanel.Providers.SharePoint; using WebsitePanel.Providers.Common; using WebsitePanel.Providers.DNS; +using WebsitePanel.Providers.OCS; using System.IO; using System.Xml; @@ -1670,7 +1671,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL"); + TaskManager.StartTask("ORGANIZATION", "UPDATE_USER_GENERAL"); TaskManager.ItemId = itemId; try @@ -1752,6 +1753,162 @@ namespace WebsitePanel.EnterpriseServer } } + + public static int SetUserPrincipalName(int itemId, int accountId, string userPrincipalName, bool inherit) + { + + // check account + int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); + if (accountCheck < 0) return accountCheck; + + + // place log record + TaskManager.StartTask("ORGANIZATION", "SET_USER_USERPRINCIPALNAME"); + TaskManager.ItemId = itemId; + + try + { + + + // load organization + Organization org = GetOrganization(itemId); + if (org == null) + return -1; + + // check package + int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive); + if (packageCheck < 0) return packageCheck; + + // load account + OrganizationUser user = GetUserGeneralSettings(itemId, accountId); + + if (user.UserPrincipalName != userPrincipalName) + { + bool userPrincipalNameOwned = false; + ExchangeEmailAddress[] emails = ExchangeServerController.GetMailboxEmailAddresses(itemId, accountId); + + foreach (ExchangeEmailAddress mail in emails) + { + if (mail.EmailAddress == userPrincipalName) + { + userPrincipalNameOwned = true; + break; + } + } + + if (!userPrincipalNameOwned) + { + if (EmailAddressExists(userPrincipalName)) + return BusinessErrorCodes.ERROR_EXCHANGE_EMAIL_EXISTS; + } + } + + Organizations orgProxy = GetOrganizationProxy(org.ServiceId); + + orgProxy.SetUserPrincipalName(org.OrganizationId, + user.AccountName, + userPrincipalName.ToLower()); + + DataProvider.UpdateExchangeAccountUserPrincipalName(accountId, userPrincipalName.ToLower()); + + if (inherit) + { + if (user.AccountType == ExchangeAccountType.Mailbox) + { + ExchangeServerController.AddMailboxEmailAddress(itemId, accountId, userPrincipalName.ToLower()); + ExchangeServerController.SetMailboxPrimaryEmailAddress(itemId, accountId, userPrincipalName.ToLower()); + } + else + { + if (user.IsLyncUser) + { + if (!DataProvider.LyncUserExists(accountId, userPrincipalName.ToLower())) + { + LyncController.SetLyncUserGeneralSettings(itemId, accountId, userPrincipalName.ToLower(), null); + } + } + else + { + if (user.IsOCSUser) + { + OCSServer ocs = GetOCSProxy(itemId); + string instanceId = DataProvider.GetOCSUserInstanceID(user.AccountId); + ocs.SetUserPrimaryUri(instanceId, userPrincipalName.ToLower()); + } + } + } + } + + return 0; + } + catch (Exception ex) + { + throw TaskManager.WriteError(ex); + } + finally + { + TaskManager.CompleteTask(); + } + + + } + + + public static int SetUserPassword(int itemId, int accountId, string password) + { + + // check account + int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); + if (accountCheck < 0) return accountCheck; + + // place log record + TaskManager.StartTask("ORGANIZATION", "SET_USER_PASSWORD"); + TaskManager.ItemId = itemId; + + try + { + // load organization + Organization org = GetOrganization(itemId); + if (org == null) + return -1; + + // check package + int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive); + if (packageCheck < 0) return packageCheck; + + // load account + ExchangeAccount account = ExchangeServerController.GetAccount(itemId, accountId); + + string accountName = GetAccountName(account.AccountName); + + Organizations orgProxy = GetOrganizationProxy(org.ServiceId); + + orgProxy.SetUserPassword( org.OrganizationId, + accountName, + password); + + //account. + if (!String.IsNullOrEmpty(password)) + account.AccountPassword = CryptoUtils.Encrypt(password); + else + account.AccountPassword = null; + + UpdateAccount(account); + + return 0; + } + catch (Exception ex) + { + throw TaskManager.WriteError(ex); + } + finally + { + TaskManager.CompleteTask(); + } + } + + + private static void UpdateAccount(ExchangeAccount account) { DataProvider.UpdateExchangeAccount(account.AccountId, account.AccountName, account.AccountType, account.DisplayName, @@ -1969,6 +2126,19 @@ namespace WebsitePanel.EnterpriseServer } return res; } + + private static OCSServer GetOCSProxy(int itemId) + { + Organization org = OrganizationController.GetOrganization(itemId); + int serviceId = PackageController.GetPackageServiceId(org.PackageId, ResourceGroups.OCS); + + OCSServer ocs = new OCSServer(); + ServiceProviderProxy.Init(ocs, serviceId); + + + return ocs; + } + } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esOrganizations.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esOrganizations.asmx.cs index 38acbebf..cc4a6b85 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esOrganizations.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esOrganizations.asmx.cs @@ -195,6 +195,22 @@ namespace WebsitePanel.EnterpriseServer } + [WebMethod] + public int SetUserPrincipalName(int itemId, int accountId, string userPrincipalName, bool inherit) + { + return OrganizationController.SetUserPrincipalName(itemId, accountId, userPrincipalName, + inherit); + } + + + [WebMethod] + public int SetUserPassword(int itemId, int accountId, string password) + { + return OrganizationController.SetUserPassword(itemId, accountId, password); + } + + + [WebMethod] public List SearchAccounts(int itemId, string filterColumn, string filterValue, string sortColumn, bool includeMailboxes) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeEmailAddress.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeEmailAddress.cs index 0db794cd..c16d9d09 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeEmailAddress.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeEmailAddress.cs @@ -58,5 +58,7 @@ namespace WebsitePanel.Providers.HostedSolution get { return primary; } set { primary = value; } } + + } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/IOrganization.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/IOrganization.cs index 15846f9c..e3ce875d 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/IOrganization.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/IOrganization.cs @@ -51,6 +51,10 @@ namespace WebsitePanel.Providers.HostedSolution string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes, string externalEmail); + void SetUserPassword(string organizationId, string accountName, string password); + + void SetUserPrincipalName(string organizationId, string accountName, string userPrincipalName); + bool OrganizationExists(string organizationId); void DeleteOrganizationDomain(string organizationDistinguishedName, string domain); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/OrganizationProvider.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/OrganizationProvider.cs index 147bfdd1..782b59d0 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/OrganizationProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/OrganizationProvider.cs @@ -43,13 +43,13 @@ namespace WebsitePanel.Providers.HostedSolution private string RootOU { get { return ProviderSettings["RootOU"]; } - } + } private string RootDomain { get { return ServerSettings.ADRootDomain; } } - + private string PrimaryDomainController { get { return ProviderSettings["PrimaryDomainController"]; } @@ -68,7 +68,7 @@ namespace WebsitePanel.Providers.HostedSolution AppendProtocol(sb); AppendDomainController(sb); AppendOUPath(sb, organizationId); - AppendOUPath(sb, RootOU); + AppendOUPath(sb, RootOU); AppendDomainPath(sb, RootDomain); return sb.ToString(); @@ -118,20 +118,20 @@ namespace WebsitePanel.Providers.HostedSolution { sb.Append(PrimaryDomainController + "/"); } - + private static void AppendCNPath(StringBuilder sb, string organizationId) { if (string.IsNullOrEmpty(organizationId)) return; - + sb.Append("CN=").Append(organizationId).Append(","); } - + private static void AppendProtocol(StringBuilder sb) { sb.Append("LDAP://"); } - + private static void AppendOUPath(StringBuilder sb, string ou) { if (string.IsNullOrEmpty(ou)) @@ -168,29 +168,29 @@ namespace WebsitePanel.Providers.HostedSolution { return OrganizationExistsInternal(organizationId); } - + internal bool OrganizationExistsInternal(string organizationId) { if (string.IsNullOrEmpty(organizationId)) throw new ArgumentNullException("organizationId"); - + string orgPath = GetOrganizationPath(organizationId); return ActiveDirectoryUtils.AdObjectExists(orgPath); } - + public Organization CreateOrganization(string organizationId) { - return CreateOrganizationInternal(organizationId); + return CreateOrganizationInternal(organizationId); } - + internal Organization CreateOrganizationInternal(string organizationId) { HostedSolutionLog.LogStart("CreateOrganizationInternal"); HostedSolutionLog.DebugInfo("OrganizationId : {0}", organizationId); - + if (string.IsNullOrEmpty(organizationId)) throw new ArgumentNullException("organizationId"); - + bool ouCreated = false; bool groupCreated = false; @@ -203,18 +203,18 @@ namespace WebsitePanel.Providers.HostedSolution //Create OU ActiveDirectoryUtils.CreateOrganizationalUnit(organizationId, parentPath); ouCreated = true; - + //Create security group ActiveDirectoryUtils.CreateGroup(orgPath, organizationId); groupCreated = true; - - + + org = new Organization(); org.OrganizationId = organizationId; org.DistinguishedName = ActiveDirectoryUtils.RemoveADPrefix(orgPath); - org.SecurityGroup = ActiveDirectoryUtils.RemoveADPrefix(GetGroupPath(organizationId)); + org.SecurityGroup = ActiveDirectoryUtils.RemoveADPrefix(GetGroupPath(organizationId)); } - catch(Exception ex) + catch (Exception ex) { HostedSolutionLog.LogError(ex); try @@ -225,7 +225,7 @@ namespace WebsitePanel.Providers.HostedSolution ActiveDirectoryUtils.DeleteADObject(groupPath); } } - catch(Exception e) + catch (Exception e) { HostedSolutionLog.LogError(e); } @@ -238,21 +238,21 @@ namespace WebsitePanel.Providers.HostedSolution ActiveDirectoryUtils.DeleteADObject(orgPath); } } - catch(Exception e) + catch (Exception e) { HostedSolutionLog.LogError(e); } throw; } - + HostedSolutionLog.LogEnd("CreateOrganizationInternal"); - - return org; + + return org; } public override void ChangeServiceItemsState(ServiceProviderItem[] items, bool enabled) - { + { foreach (ServiceProviderItem item in items) { @@ -261,7 +261,7 @@ namespace WebsitePanel.Providers.HostedSolution if (item is Organization) { Organization org = item as Organization; - ChangeOrganizationState(org, enabled); + ChangeOrganizationState(org, enabled); } } catch (Exception ex) @@ -281,7 +281,7 @@ namespace WebsitePanel.Providers.HostedSolution string.Format(CultureInfo.InvariantCulture, "(&(objectClass=user)(!{0}=disabled))", ADAttributes.CustomAttribute2); using (DirectorySearcher searcher = new DirectorySearcher(entry, filter)) - { + { SearchResultCollection resCollection = searcher.FindAll(); foreach (SearchResult res in resCollection) { @@ -303,21 +303,21 @@ namespace WebsitePanel.Providers.HostedSolution Organization org = item as Organization; DeleteOrganizationInternal(org.OrganizationId); } - + } catch (Exception ex) { HostedSolutionLog.LogError(String.Format("Error deleting '{0}' {1}", item.Name, item.GetType().Name), ex); } } - + } - + public void DeleteOrganization(string organizationId) - { + { DeleteOrganizationInternal(organizationId); } - + internal void DeleteOrganizationInternal(string organizationId) { HostedSolutionLog.LogStart("DeleteOrganizationInternal"); @@ -328,11 +328,11 @@ namespace WebsitePanel.Providers.HostedSolution string groupPath = GetGroupPath(organizationId); ActiveDirectoryUtils.DeleteADObject(groupPath); - - string path = GetOrganizationPath(organizationId); + + string path = GetOrganizationPath(organizationId); ActiveDirectoryUtils.DeleteADObject(path, true); - + HostedSolutionLog.LogEnd("DeleteOrganizationInternal"); } @@ -416,12 +416,12 @@ namespace WebsitePanel.Providers.HostedSolution { return GetPasswordPolicyInternal(); } - + internal PasswordPolicyResult GetPasswordPolicyInternal() { HostedSolutionLog.LogStart("GetPasswordPolicyInternal"); - PasswordPolicyResult res = new PasswordPolicyResult {IsSuccess = true}; + PasswordPolicyResult res = new PasswordPolicyResult { IsSuccess = true }; string[] policyAttributes = new[] {"minPwdLength", "pwdProperties", @@ -437,30 +437,30 @@ namespace WebsitePanel.Providers.HostedSolution SearchScope.Base ); - + SearchResult result = ds.FindOne(); PasswordPolicy ret = new PasswordPolicy - { - MinLength = ((int) result.Properties["minPwdLength"][0]), - IsComplexityEnable = ((int) result.Properties["pwdProperties"][0] == 1) - }; - res.Value = ret; + { + MinLength = ((int)result.Properties["minPwdLength"][0]), + IsComplexityEnable = ((int)result.Properties["pwdProperties"][0] == 1) + }; + res.Value = ret; } - catch(Exception ex) + catch (Exception ex) { HostedSolutionLog.LogError(ex); res.IsSuccess = false; - res.ErrorCodes.Add(ErrorCodes.CANNOT_GET_PASSWORD_COMPLEXITY); + res.ErrorCodes.Add(ErrorCodes.CANNOT_GET_PASSWORD_COMPLEXITY); } - HostedSolutionLog.LogEnd("GetPasswordPolicyInternal"); + HostedSolutionLog.LogEnd("GetPasswordPolicyInternal"); return res; } - + public void DeleteUser(string loginName, string organizationId) - { + { DeleteUserInternal(loginName, organizationId); } @@ -469,37 +469,37 @@ namespace WebsitePanel.Providers.HostedSolution HostedSolutionLog.LogStart("DeleteUserInternal"); HostedSolutionLog.DebugInfo("loginName : {0}", loginName); HostedSolutionLog.DebugInfo("organizationId : {0}", organizationId); - + if (string.IsNullOrEmpty(loginName)) throw new ArgumentNullException("loginName"); if (string.IsNullOrEmpty(organizationId)) throw new ArgumentNullException("organizationId"); - string path = GetUserPath(organizationId, loginName); + string path = GetUserPath(organizationId, loginName); if (ActiveDirectoryUtils.AdObjectExists(path)) - ActiveDirectoryUtils.DeleteADObject(path,true); + ActiveDirectoryUtils.DeleteADObject(path, true); HostedSolutionLog.LogEnd("DeleteUserInternal"); } - + public OrganizationUser GetUserGeneralSettings(string loginName, string organizationId) { return GetUserGeneralSettingsInternal(loginName, organizationId); } - + internal OrganizationUser GetUserGeneralSettingsInternal(string loginName, string organizationId) { HostedSolutionLog.LogStart("GetUserGeneralSettingsInternal"); HostedSolutionLog.DebugInfo("loginName : {0}", loginName); HostedSolutionLog.DebugInfo("organizationId : {0}", organizationId); - + if (string.IsNullOrEmpty(loginName)) throw new ArgumentNullException("loginName"); string path = GetUserPath(organizationId, loginName); DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path); - + OrganizationUser retUser = new OrganizationUser(); retUser.FirstName = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.FirstName); @@ -529,25 +529,25 @@ namespace WebsitePanel.Providers.HostedSolution retUser.DomainUserName = GetDomainName(ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.SAMAccountName)); retUser.DistinguishedName = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.DistinguishedName); retUser.Locked = (bool)entry.InvokeGet(ADAttributes.AccountLocked); - retUser.UserPrincipalName = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.UserPrincipalName); - + retUser.UserPrincipalName= (string)entry.InvokeGet(ADAttributes.UserPrincipalName); + HostedSolutionLog.LogEnd("GetUserGeneralSettingsInternal"); return retUser; } - private string GetDomainName(string username) - { - string domain = ActiveDirectoryUtils.GetNETBIOSDomainName(RootDomain); - string ret = string.Format(@"{0}\{1}", domain, username); - return ret; - } + private string GetDomainName(string username) + { + string domain = ActiveDirectoryUtils.GetNETBIOSDomainName(RootDomain); + string ret = string.Format(@"{0}\{1}", domain, username); + return ret; + } private OrganizationUser GetManager(DirectoryEntry entry) { OrganizationUser retUser = null; string path = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.Manager); if (!string.IsNullOrEmpty(path)) - { + { path = ActiveDirectoryUtils.AddADPrefix(path, PrimaryDomainController); if (ActiveDirectoryUtils.AdObjectExists(path)) { @@ -556,18 +556,18 @@ namespace WebsitePanel.Providers.HostedSolution retUser.DisplayName = ActiveDirectoryUtils.GetADObjectStringProperty(user, ADAttributes.DisplayName); retUser.AccountName = ActiveDirectoryUtils.GetADObjectStringProperty(user, ADAttributes.Name); - } + } } - + return retUser; } - - public void SetUserGeneralSettings(string organizationId, string accountName, string displayName, string password, + + public void SetUserGeneralSettings(string organizationId, string accountName, string displayName, string password, bool hideFromAddressBook, bool disabled, bool locked, string firstName, string initials, string lastName, string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office, string managerAccountName, string businessPhone, string fax, string homePhone, string mobilePhone, string pager, - string webPage, string notes, string externalEmail) + string webPage, string notes, string externalEmail) { SetUserGeneralSettingsInternal(organizationId, accountName, displayName, password, hideFromAddressBook, disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle, @@ -583,10 +583,10 @@ namespace WebsitePanel.Providers.HostedSolution string webPage, string notes, string externalEmail) { string path = GetUserPath(organizationId, accountName); - DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path); + DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path); - ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.FirstName, firstName); + ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.FirstName, firstName); ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.LastName, lastName); ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.DisplayName, displayName); @@ -609,7 +609,7 @@ namespace WebsitePanel.Providers.HostedSolution ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.Notes, notes); ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.ExternalEmail, externalEmail); ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.CustomAttribute2, (disabled ? "disabled" : null)); - + string manager = string.Empty; if (!string.IsNullOrEmpty(managerAccountName)) @@ -619,7 +619,7 @@ namespace WebsitePanel.Providers.HostedSolution } ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.Manager, ActiveDirectoryUtils.RemoveADPrefix(manager)); - + entry.InvokeSet(ADAttributes.AccountDisabled, disabled); if (!string.IsNullOrEmpty(password)) entry.Invoke(ADAttributes.SetPassword, password); @@ -629,13 +629,44 @@ namespace WebsitePanel.Providers.HostedSolution bool isLoked = (bool)entry.InvokeGet(ADAttributes.AccountLocked); if (isLoked) entry.InvokeSet(ADAttributes.AccountLocked, locked); - + } - - + + entry.CommitChanges(); } + public void SetUserPassword(string organizationId, string accountName, string password) + { + SetUserPasswordInternal(organizationId, accountName, password); + } + + internal void SetUserPasswordInternal(string organizationId, string accountName, string password) + { + string path = GetUserPath(organizationId, accountName); + DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path); + + if (!string.IsNullOrEmpty(password)) + entry.Invoke(ADAttributes.SetPassword, password); + + entry.CommitChanges(); + } + + + public void SetUserPrincipalName(string organizationId, string accountName, string userPrincipalName) + { + SetUserPrincipalNameInternal(organizationId, accountName, userPrincipalName); + } + + internal void SetUserPrincipalNameInternal(string organizationId, string accountName, string userPrincipalName) + { + string path = GetUserPath(organizationId, accountName); + DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path); + + ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.UserPrincipalName, userPrincipalName); + + entry.CommitChanges(); + } public string GetSamAccountNameByUserPrincipalName(string organizationId, string userPrincipalName) { @@ -679,15 +710,15 @@ namespace WebsitePanel.Providers.HostedSolution } - #endregion + #endregion #region Domains - + public void CreateOrganizationDomain(string organizationDistinguishedName, string domain) { CreateOrganizationDomainInternal(organizationDistinguishedName, domain); } - + /// /// Creates organization domain /// @@ -702,7 +733,7 @@ namespace WebsitePanel.Providers.HostedSolution HostedSolutionLog.LogEnd("CreateOrganizationDomainInternal"); } - + public void DeleteOrganizationDomain(string organizationDistinguishedName, string domain) { DeleteOrganizationDomainInternal(organizationDistinguishedName, domain); @@ -730,6 +761,6 @@ namespace WebsitePanel.Providers.HostedSolution return Environment.UserDomainName != Environment.MachineName; } - + } } diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Client/OrganizationProxy.cs b/WebsitePanel/Sources/WebsitePanel.Server.Client/OrganizationProxy.cs index c9d6a0f0..f7ecb33e 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.Client/OrganizationProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server.Client/OrganizationProxy.cs @@ -26,10 +26,11 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.5456 +// Runtime Version:2.0.50727.6400 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -37,7 +38,7 @@ //------------------------------------------------------------------------------ // -// This source code was auto-generated by wsdl, Version=2.0.50727.42. +// This source code was auto-generated by wsdl, Version=2.0.50727.3038. // namespace WebsitePanel.Providers.HostedSolution { using System.Xml.Serialization; @@ -47,12 +48,13 @@ namespace WebsitePanel.Providers.HostedSolution { using System; using System.Diagnostics; + using WebsitePanel.Providers.Common; using WebsitePanel.Providers.ResultObjects; - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="OrganizationsSoap", Namespace="http://tempuri.org/")] @@ -76,6 +78,10 @@ namespace WebsitePanel.Providers.HostedSolution { private System.Threading.SendOrPostCallback SetUserGeneralSettingsOperationCompleted; + private System.Threading.SendOrPostCallback SetUserPasswordOperationCompleted; + + private System.Threading.SendOrPostCallback SetUserPrincipalNameOperationCompleted; + private System.Threading.SendOrPostCallback DeleteOrganizationDomainOperationCompleted; private System.Threading.SendOrPostCallback CreateOrganizationDomainOperationCompleted; @@ -86,7 +92,7 @@ namespace WebsitePanel.Providers.HostedSolution { /// public Organizations() { - this.Url = "http://localhost:9006/Organizations.asmx"; + this.Url = "http://localhost:9003/Organizations.asmx"; } /// @@ -110,6 +116,12 @@ namespace WebsitePanel.Providers.HostedSolution { /// public event SetUserGeneralSettingsCompletedEventHandler SetUserGeneralSettingsCompleted; + /// + public event SetUserPasswordCompletedEventHandler SetUserPasswordCompleted; + + /// + public event SetUserPrincipalNameCompletedEventHandler SetUserPrincipalNameCompleted; + /// public event DeleteOrganizationDomainCompletedEventHandler DeleteOrganizationDomainCompleted; @@ -627,6 +639,98 @@ namespace WebsitePanel.Providers.HostedSolution { } } + /// + [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetUserPassword", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public void SetUserPassword(string organizationId, string accountName, string password) { + this.Invoke("SetUserPassword", new object[] { + organizationId, + accountName, + password}); + } + + /// + public System.IAsyncResult BeginSetUserPassword(string organizationId, string accountName, string password, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("SetUserPassword", new object[] { + organizationId, + accountName, + password}, callback, asyncState); + } + + /// + public void EndSetUserPassword(System.IAsyncResult asyncResult) { + this.EndInvoke(asyncResult); + } + + /// + public void SetUserPasswordAsync(string organizationId, string accountName, string password) { + this.SetUserPasswordAsync(organizationId, accountName, password, null); + } + + /// + public void SetUserPasswordAsync(string organizationId, string accountName, string password, object userState) { + if ((this.SetUserPasswordOperationCompleted == null)) { + this.SetUserPasswordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetUserPasswordOperationCompleted); + } + this.InvokeAsync("SetUserPassword", new object[] { + organizationId, + accountName, + password}, this.SetUserPasswordOperationCompleted, userState); + } + + private void OnSetUserPasswordOperationCompleted(object arg) { + if ((this.SetUserPasswordCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SetUserPasswordCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetUserPrincipalName", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public void SetUserPrincipalName(string organizationId, string accountName, string userPrincipalName) { + this.Invoke("SetUserPrincipalName", new object[] { + organizationId, + accountName, + userPrincipalName}); + } + + /// + public System.IAsyncResult BeginSetUserPrincipalName(string organizationId, string accountName, string userPrincipalName, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("SetUserPrincipalName", new object[] { + organizationId, + accountName, + userPrincipalName}, callback, asyncState); + } + + /// + public void EndSetUserPrincipalName(System.IAsyncResult asyncResult) { + this.EndInvoke(asyncResult); + } + + /// + public void SetUserPrincipalNameAsync(string organizationId, string accountName, string userPrincipalName) { + this.SetUserPrincipalNameAsync(organizationId, accountName, userPrincipalName, null); + } + + /// + public void SetUserPrincipalNameAsync(string organizationId, string accountName, string userPrincipalName, object userState) { + if ((this.SetUserPrincipalNameOperationCompleted == null)) { + this.SetUserPrincipalNameOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetUserPrincipalNameOperationCompleted); + } + this.InvokeAsync("SetUserPrincipalName", new object[] { + organizationId, + accountName, + userPrincipalName}, this.SetUserPrincipalNameOperationCompleted, userState); + } + + private void OnSetUserPrincipalNameOperationCompleted(object arg) { + if ((this.SetUserPrincipalNameCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SetUserPrincipalNameCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeleteOrganizationDomain", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] @@ -804,11 +908,11 @@ namespace WebsitePanel.Providers.HostedSolution { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void OrganizationExistsCompletedEventHandler(object sender, OrganizationExistsCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class OrganizationExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -830,11 +934,11 @@ namespace WebsitePanel.Providers.HostedSolution { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateOrganizationCompletedEventHandler(object sender, CreateOrganizationCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class CreateOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -856,15 +960,15 @@ namespace WebsitePanel.Providers.HostedSolution { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteOrganizationCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateUserCompletedEventHandler(object sender, CreateUserCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class CreateUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -886,15 +990,15 @@ namespace WebsitePanel.Providers.HostedSolution { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteUserCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetUserGeneralSettingsCompletedEventHandler(object sender, GetUserGeneralSettingsCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetUserGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -916,23 +1020,31 @@ namespace WebsitePanel.Providers.HostedSolution { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void SetUserGeneralSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void SetUserPasswordCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void SetUserPrincipalNameCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteOrganizationDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateOrganizationDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetPasswordPolicyCompletedEventHandler(object sender, GetPasswordPolicyCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPasswordPolicyCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -954,11 +1066,11 @@ namespace WebsitePanel.Providers.HostedSolution { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetSamAccountNameByUserPrincipalNameCompletedEventHandler(object sender, GetSamAccountNameByUserPrincipalNameCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetSamAccountNameByUserPrincipalNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { diff --git a/WebsitePanel/Sources/WebsitePanel.Server/Organizations.asmx.cs b/WebsitePanel/Sources/WebsitePanel.Server/Organizations.asmx.cs index 775058d8..4b70e354 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/Organizations.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server/Organizations.asmx.cs @@ -125,6 +125,20 @@ namespace WebsitePanel.Server } + [WebMethod, SoapHeader("settings")] + public void SetUserPassword(string organizationId, string accountName, string password) + { + Organization.SetUserPassword(organizationId, accountName, password); + } + + + [WebMethod, SoapHeader("settings")] + public void SetUserPrincipalName(string organizationId, string accountName, string userPrincipalName) + { + Organization.SetUserPrincipalName(organizationId, accountName, userPrincipalName); + } + + [WebMethod, SoapHeader("settings")] public void DeleteOrganizationDomain(string organizationDistinguishedName, string domain) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx index 30363019..e5ac1de2 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx @@ -3083,6 +3083,19 @@ User general settings have been successfully updated. + + User password has been successfully updated. + + + Failed to update user password. + + + User login name has been successfully updated. + + + Failed to update user login name. + + Mailbox primary e-mail address has been changed. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx index 6946695e..2867a2c5 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx @@ -239,4 +239,13 @@ Login Name: + + Set Password + + + Set Login Name + + + Set login name for services + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx index ce2359a1..6f74c098 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx @@ -73,7 +73,7 @@ - + @@ -87,7 +87,7 @@
  - +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx.designer.cs index 4a04d015..b9a27568 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx.designer.cs @@ -182,14 +182,5 @@ namespace WebsitePanel.Portal.ExchangeServer { /// To modify move field declaration from designer file to code-behind file. ///
protected global::System.Web.UI.WebControls.CheckBox chkPmmAllowed; - - /// - /// FormComments control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Localize FormComments; } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx index cc4d2ce4..b1ad839d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx @@ -4,7 +4,7 @@ <%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %> <%@ Register Src="../UserControls/PasswordControl.ascx" TagName="PasswordControl" TagPrefix="wsp" %> -<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %> +<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %> <%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %> <%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %> <%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %> @@ -47,7 +47,15 @@
+ + @@ -62,8 +70,13 @@ + @@ -71,9 +84,6 @@
+ + +
+ + + + +
- + + + +
-

@@ -107,7 +117,7 @@
- @@ -146,7 +156,7 @@ - @@ -191,7 +201,7 @@ - @@ -239,7 +249,7 @@ - diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs index 16bb35ec..f74e0aa2 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs @@ -27,6 +27,7 @@ // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. using System; +using System.Web.UI.WebControls; using WebsitePanel.EnterpriseServer; using WebsitePanel.Providers.HostedSolution; using WebsitePanel.Providers.ResultObjects; @@ -63,8 +64,6 @@ namespace WebsitePanel.Portal.HostedSolution } } - password.EditMode = password.ValidationEnabled = false; - // get settings OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID); @@ -127,19 +126,54 @@ namespace WebsitePanel.Portal.HostedSolution { lblUserPrincipalName.Visible = true; upn.Visible = false; + ddlEmailAddresses.Visible = false; + btnSetUserPrincipalName.Visible = false; + chkInherit.Visible = false; } else { lblUserPrincipalName.Visible = false; - upn.Visible = true; - if (!string.IsNullOrEmpty(user.UserPrincipalName)) + upn.Visible = false; + ddlEmailAddresses.Visible = false; + btnSetUserPrincipalName.Visible = true; + chkInherit.Visible = true; + if (user.AccountType == ExchangeAccountType.Mailbox) { - string[] Tmp = user.UserPrincipalName.Split('@'); - upn.AccountName = Tmp[0]; + ddlEmailAddresses.Visible = true; + WebsitePanel.EnterpriseServer.ExchangeEmailAddress[] emails = ES.Services.ExchangeServer.GetMailboxEmailAddresses(PanelRequest.ItemID, PanelRequest.AccountID); - if (Tmp.Length > 1) + foreach (WebsitePanel.EnterpriseServer.ExchangeEmailAddress mail in emails) { - upn.DomainName = Tmp[1]; + ListItem li = new ListItem(); + li.Text = mail.EmailAddress; + li.Value = mail.EmailAddress; + li.Selected = mail.IsPrimary; + ddlEmailAddresses.Items.Add(li); + } + + foreach (ListItem li in ddlEmailAddresses.Items) + { + if (li.Value == user.UserPrincipalName) + { + ddlEmailAddresses.ClearSelection(); + li.Selected = true; + break; + } + } + + } + else + { + upn.Visible = true; + if (!string.IsNullOrEmpty(user.UserPrincipalName)) + { + string[] Tmp = user.UserPrincipalName.Split('@'); + upn.AccountName = Tmp[0]; + + if (Tmp.Length > 1) + { + upn.DomainName = Tmp[1]; + } } } @@ -153,6 +187,8 @@ namespace WebsitePanel.Portal.HostedSolution chkLocked.Checked = user.Locked; + password.ValidationEnabled = true; + password.Password = string.Empty; } catch (Exception ex) { @@ -165,17 +201,12 @@ namespace WebsitePanel.Portal.HostedSolution if (!Page.IsValid) return; - string pwd = password.Password; - - if (!chkSetPassword.Checked) - pwd = string.Empty; - try { int result = ES.Services.Organizations.SetUserGeneralSettings( PanelRequest.ItemID, PanelRequest.AccountID, txtDisplayName.Text, - pwd, + string.Empty, false, chkDisable.Checked, chkLocked.Checked, @@ -230,10 +261,66 @@ namespace WebsitePanel.Portal.HostedSolution SaveSettings(); } - protected void chkSetPassword_CheckedChanged(object sender, EventArgs e) + protected void btnSetUserPrincipalName_Click(object sender, EventArgs e) { - password.EditMode = password.ValidationEnabled = chkSetPassword.Checked; + string userPrincipalName = string.Empty; + + if (upn.Visible) + userPrincipalName = upn.Email; + else + if (ddlEmailAddresses.Visible) + userPrincipalName = (string)ddlEmailAddresses.SelectedValue; + + if (string.IsNullOrEmpty(userPrincipalName)) return; + + try + { + int result = ES.Services.Organizations.SetUserPrincipalName( + PanelRequest.ItemID, PanelRequest.AccountID, + userPrincipalName.ToLower(), + chkInherit.Checked); + + if (result < 0) + { + messageBox.ShowResultMessage(result); + return; + } + + messageBox.ShowSuccessMessage("ORGANIZATION_SET_USER_PRINCIPALNAME"); + } + catch (Exception ex) + { + messageBox.ShowErrorMessage("ORGANIZATION_SET_USER_PRINCIPALNAME", ex); + } + } + + protected void btnSetUserPassword_Click(object sender, EventArgs e) + { + + if (!Page.IsValid) + return; + + try + { + int result = ES.Services.Organizations.SetUserPassword( + PanelRequest.ItemID, PanelRequest.AccountID, + password.Password); + + if (result < 0) + { + messageBox.ShowResultMessage(result); + return; + } + + messageBox.ShowSuccessMessage("ORGANIZATION_SET_USER_PASSWORD"); + } + catch (Exception ex) + { + messageBox.ShowErrorMessage("ORGANIZATION_SET_USER_PASSWORD", ex); + } + + } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs index 9b3fbd4b..b9632720 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs @@ -120,6 +120,33 @@ namespace WebsitePanel.Portal.HostedSolution { /// protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EmailAddress upn; + /// + /// ddlEmailAddresses control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlEmailAddresses; + + /// + /// btnSetUserPrincipalName control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnSetUserPrincipalName; + + /// + /// chkInherit control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkInherit; + /// /// locDisplayName control. /// @@ -166,13 +193,22 @@ namespace WebsitePanel.Portal.HostedSolution { protected global::WebsitePanel.Portal.PasswordControl password; /// - /// chkSetPassword control. + /// btnSetUserPassword control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.CheckBox chkSetPassword; + protected global::System.Web.UI.WebControls.Button btnSetUserPassword; + + /// + /// ValidationSummary2 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary2; /// /// chkDisable control. diff --git a/WebsitePanel/Sources/generate_es_proxies.bat b/WebsitePanel/Sources/generate_es_proxies.bat index 0f50b419..5a4fbd8d 100644 --- a/WebsitePanel/Sources/generate_es_proxies.bat +++ b/WebsitePanel/Sources/generate_es_proxies.bat @@ -56,8 +56,8 @@ REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\OCSProxy.cs REM %WSDL% %SERVER_URL%/esOperatingSystems.asmx /out:.\WebsitePanel.EnterpriseServer.Client\OperatingSystemsProxy.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\OperatingSystemsProxy.cs -REM %WSDL% %SERVER_URL%/esOrganizations.asmx /out:.\WebsitePanel.EnterpriseServer.Client\OrganizationProxy.cs /namespace:WebsitePanel.EnterpriseServer.HostedSolution /type:webClient -REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\OrganizationProxy.cs +%WSDL% %SERVER_URL%/esOrganizations.asmx /out:.\WebsitePanel.EnterpriseServer.Client\OrganizationProxy.cs /namespace:WebsitePanel.EnterpriseServer.HostedSolution /type:webClient +%WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\OrganizationProxy.cs REM %WSDL% %SERVER_URL%/esPackages.asmx /out:.\WebsitePanel.EnterpriseServer.Client\PackagesProxy.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\PackagesProxy.cs @@ -92,8 +92,8 @@ REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\WebServersProxy.cs REM %WSDL% %SERVER_URL%/esVirtualizationServerForPrivateCloud.asmx /out:.\WebsitePanel.EnterpriseServer.Client\VirtualizationServerProxyForPrivateCloud.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\VirtualizationServerProxyForPrivateCloud.cs -%WSDL% %SERVER_URL%/esLync.asmx /out:.\WebsitePanel.EnterpriseServer.Client\LyncProxy.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient -%WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\LyncProxy.cs +REM %WSDL% %SERVER_URL%/esLync.asmx /out:.\WebsitePanel.EnterpriseServer.Client\LyncProxy.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient +REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\LyncProxy.cs diff --git a/WebsitePanel/Sources/generate_server_proxies.bat b/WebsitePanel/Sources/generate_server_proxies.bat index 8c3cfdee..d4811b50 100644 --- a/WebsitePanel/Sources/generate_server_proxies.bat +++ b/WebsitePanel/Sources/generate_server_proxies.bat @@ -35,8 +35,8 @@ REM %WSE_CLEAN% .\WebsitePanel.Server.Client\OCSServerProxy.cs REM %WSDL% %SERVER_URL%/OperatingSystem.asmx /out:.\WebsitePanel.Server.Client\OperatingSystemProxy.cs /namespace:WebsitePanel.Providers.OS /type:webClient /fields REM %WSE_CLEAN% .\WebsitePanel.Server.Client\OperatingSystemProxy.cs -REM %WSDL% %SERVER_URL%/Organizations.asmx /out:.\WebsitePanel.Server.Client\OrganizationProxy.cs /namespace:WebsitePanel.Providers.HostedSolution /type:webClient /fields -REM %WSE_CLEAN% .\WebsitePanel.Server.Client\OrganizationProxy.cs +%WSDL% %SERVER_URL%/Organizations.asmx /out:.\WebsitePanel.Server.Client\OrganizationProxy.cs /namespace:WebsitePanel.Providers.HostedSolution /type:webClient /fields +%WSE_CLEAN% .\WebsitePanel.Server.Client\OrganizationProxy.cs REM %WSDL% %SERVER_URL%/ServiceProvider.asmx /out:.\WebsitePanel.Server.Client\ServiceProviderProxy.cs /namespace:WebsitePanel.Providers /type:webClient /fields REM %WSE_CLEAN% .\WebsitePanel.Server.Client\ServiceProviderProxy.cs @@ -56,7 +56,7 @@ REM %WSE_CLEAN% .\WebsitePanel.Server.Client\WebServerProxy.cs REM %WSDL% %SERVER_URL%/WindowsServer.asmx /out:.\WebsitePanel.Server.Client\WindowsServerProxy.cs /namespace:WebsitePanel.Server /type:webClient /fields REM %WSE_CLEAN% .\WebsitePanel.Server.Client\WindowsServerProxy.cs -%WSDL% %SERVER_URL%/LyncServer.asmx /out:.\WebsitePanel.Server.Client\LyncServerProxy.cs /namespace:WebsitePanel.Providers.Lync /type:webClient /fields -%WSE_CLEAN% .\WebsitePanel.Server.Client\LyncServerProxy.cs +REM %WSDL% %SERVER_URL%/LyncServer.asmx /out:.\WebsitePanel.Server.Client\LyncServerProxy.cs /namespace:WebsitePanel.Providers.Lync /type:webClient /fields +REM %WSE_CLEAN% .\WebsitePanel.Server.Client\LyncServerProxy.cs From bdd5a9dd689f4605869cad0f4729586d4733ba6e Mon Sep 17 00:00:00 2001 From: robvde Date: Sat, 24 Nov 2012 11:47:00 +0400 Subject: [PATCH 17/28] Lync sipaddress update added --- WebsitePanel/Database/update_db.sql | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index ad4b79c9..3528e295 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -6985,3 +6985,10 @@ WHERE RETURN' END GO + + +IF NOT EXISTS (SELECT 1 FROM LyncUsers WHERE SipAddress IS NOT NULL) +BEGIN + UPDATE LyncUsers SET SipAddress=EA.PrimaryEmailAddress FROM ExchangeAccounts AS EA WHERE LyncUsers.SipAddress IS NULL AND LyncUsers.AccountID = EA.AccountID +END +GO \ No newline at end of file From d644f3852291cdfaf341dd36150ac26319e816cb Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sat, 24 Nov 2012 07:32:51 -0500 Subject: [PATCH 18/28] Merge --- ...angeMailboxEmailAddresses.ascx.designer.cs | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx.designer.cs index b9a27568..4f605860 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxEmailAddresses.ascx.designer.cs @@ -1,3 +1,31 @@ +// Copyright (c) 2012, 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. + //------------------------------------------------------------------------------ // // This code was generated by a tool. From 5f01a22a9e274877191f4c9a56e371689f2edd11 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sat, 24 Nov 2012 07:41:14 -0500 Subject: [PATCH 19/28] Added tag build-2.0.0.189 for changeset ce57a17617a6 From 5e00d6d6e080f0ce1a1ce57c6705eb8828404d96 Mon Sep 17 00:00:00 2001 From: robvde Date: Sat, 24 Nov 2012 21:20:08 +0400 Subject: [PATCH 20/28] All unused form comments removed UserGeneralSettings: Notes relocated, Update Service renamed --- .../WebsitePanel.EnterpriseServer/Web.config | 14 +++- .../BlackBerryUsers.ascx.resx | 6 +- .../CreateNewBlackBerryUser.ascx.resx | 6 +- .../EditBlackBerryUser.ascx.resx | 6 +- .../CRMOrganizationDetails.ascx.resx | 7 +- .../App_LocalResources/CRMUserRoles.ascx.resx | 8 +-- .../CRM/App_LocalResources/CRMUsers.ascx.resx | 6 +- .../CreateCRMUser.ascx.resx | 6 +- .../ExchangeActiveSyncSettings.ascx.resx | 4 +- .../ExchangeAddDomainName.ascx.resx | 2 +- .../ExchangeAddMailboxPlan.ascx.resx | 2 +- .../ExchangeContactGeneralSettings.ascx.resx | 2 +- .../ExchangeContactMailFlowSettings.ascx.resx | 2 +- .../ExchangeContacts.ascx.resx | 2 +- .../ExchangeCreateContact.ascx.resx | 2 +- .../ExchangeCreateDistributionList.ascx.resx | 2 +- .../ExchangeCreateMailbox.ascx.resx | 8 +-- .../ExchangeCreatePublicFolder.ascx.resx | 6 +- ...geDistributionListEmailAddresses.ascx.resx | 2 +- ...eDistributionListGeneralSettings.ascx.resx | 2 +- ...DistributionListMailFlowSettings.ascx.resx | 2 +- ...hangeDistributionListPermissions.ascx.resx | 6 +- .../ExchangeDistributionLists.ascx.resx | 2 +- .../ExchangeDomainNames.ascx.resx | 4 +- .../ExchangeDomainRecords.ascx.resx | 2 +- .../ExchangeMailboxEmailAddresses.ascx.resx | 2 +- .../ExchangeMailboxGeneralSettings.ascx.resx | 2 +- .../ExchangeMailboxMailFlowSettings.ascx.resx | 2 +- .../ExchangeMailboxMobile.ascx.resx | 2 +- .../ExchangeMailboxMobileDetails.ascx.resx | 2 +- .../ExchangeMailboxPermissions.ascx.resx | 2 +- .../ExchangeMailboxPlans.ascx.resx | 2 +- ...ExchangeMailboxSetupInstructions.ascx.resx | 2 +- .../ExchangeMailboxes.ascx.resx | 8 +-- ...changePublicFolderEmailAddresses.ascx.resx | 6 +- ...hangePublicFolderGeneralSettings.ascx.resx | 6 +- .../ExchangePublicFolderMailEnable.ascx.resx | 6 +- ...angePublicFolderMailFlowSettings.ascx.resx | 6 +- .../ExchangePublicFolders.ascx.resx | 6 +- .../ExchangeStorageUsage.ascx.resx | 2 +- .../ExchangeStorageUsageBreakdown.ascx.resx | 2 +- .../OrganizationAddDomainName.ascx.resx | 2 +- .../OrganizationCreateOrganization.ascx.resx | 2 +- .../OrganizationCreateUser.ascx.resx | 8 +-- .../OrganizationDomainNames.ascx.resx | 4 +- .../OrganizationHome.ascx.resx | 4 +- .../OrganizationUserGeneralSettings.ascx.resx | 6 +- ...rganizationUserSetupInstructions.ascx.resx | 2 +- .../OrganizationUsers.ascx.resx | 8 +-- .../Organizations.ascx.resx | 4 +- .../OrganizationUserGeneralSettings.ascx | 20 +++--- ...zationUserGeneralSettings.ascx.designer.cs | 64 ++++++------------- .../LyncAddLyncUserPlan.ascx.resx | 2 +- .../LyncCreateUser.ascx.resx | 2 +- .../App_LocalResources/LyncEditUser.ascx.resx | 2 +- .../LyncFederationDomains.ascx.resx | 6 +- .../LyncUserPlans.ascx.resx | 2 +- .../App_LocalResources/LyncUsers.ascx.resx | 4 +- .../CreateOCSUser.ascx.resx | 6 +- .../App_LocalResources/EditOCSUser.ascx.resx | 11 +--- .../OCS/App_LocalResources/OCSUsers.ascx.resx | 8 +-- 61 files changed, 131 insertions(+), 205 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 3766094f..6c7d9d64 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,11 +5,19 @@ - + + - - + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/BlackBerryUsers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/BlackBerryUsers.ascx.resx index 6afe7e29..c1665e22 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/BlackBerryUsers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/BlackBerryUsers.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 Add BlackBerry User @@ -139,6 +139,6 @@ BlackBerry users - The BlackBerry solution allows mobile users to access communications and information wirelessly, including Microsoft Exchange email, calendar, contacts and scheduling, mobile phone, text messaging, instant messaging, internet and intranet access. + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/CreateNewBlackBerryUser.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/CreateNewBlackBerryUser.ascx.resx index 1fade90a..928b8630 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/CreateNewBlackBerryUser.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/CreateNewBlackBerryUser.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 ShowProgressDialog('Creating BlackBerry user...'); @@ -130,6 +130,6 @@ BlackBarry Users - Please specify an existing Microsoft Exchange mailbox for a new BlackBerry user. + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/EditBlackBerryUser.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/EditBlackBerryUser.ascx.resx index 5162e334..0ee36b50 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/EditBlackBerryUser.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/BlackBerry/App_LocalResources/EditBlackBerryUser.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 if (confirm('Are you sure you want to delete the user?')){ShowProgressDialog('Deleting BlackBerry user...');return true;} else {return false}; @@ -157,6 +157,6 @@ BlackBerry User - Specify here a short term password which will be used to active the account(s) wirelessly. The password will be created when the account is activated or if the activation does not succeed before the expiration time. + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMOrganizationDetails.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMOrganizationDetails.ascx.resx index 53052dcc..38651d02 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMOrganizationDetails.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMOrganizationDetails.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 ShowProgressDialog('Creating CRM Organization...'); @@ -133,8 +133,7 @@ Failed - <p>CRM organization represents the top level of the Microsoft Dynamics CRM business hierarchy. The organization can be a specific business, holding company, or corporation. The organization is divided into business units.</p><p>The base currency is used for financial data, such as reporting, profit and loss statements, and balance sheets. After the base currency is set, it cannot be changed.</p><br/> -<p>The collation defines comparison and sort-ordering for items. After the collation is set, it cannot be changed.</p> + Administrator: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMUserRoles.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMUserRoles.ascx.resx index 86757b9e..d97317a6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMUserRoles.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMUserRoles.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 Display Name: @@ -139,9 +139,7 @@ CRM User roles - <p>How a user accesses data is determined by a combination of the user license, security role, business unit and one or more teams.</p> - -<p>Security roles are predefined groups of common privileges based on the types of tasks users perform. The security roles listed are those that have been created for the business unit associated with the user. Note that this means users can be assigned only the security roles for the business unit with which they have been associated.</p> + Enable diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMUsers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMUsers.ascx.resx index b79e21ce..a8bdd7d4 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMUsers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CRMUsers.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 Create new CRM user @@ -145,6 +145,6 @@ Primary Email Address - <p>CRM user is any person who works for a business unit who uses the Microsoft Dynamics CRM application.</p> <p>Each user has a user account. Included in the user's account is information such as the user's telephone numbers, e-mail address, and a link to the user's manager. </p> <p>Each user corresponds to a user in the Active Directory for that organization.</p><p>You can disable a user's record to prevent the user from being able to access Microsoft Dynamics CRM. You can only disable a user record, not delete it.</p> + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CreateCRMUser.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CreateCRMUser.ascx.resx index 4b6ab3b2..361c1c53 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CreateCRMUser.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/CRM/App_LocalResources/CreateCRMUser.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 Create CRM User @@ -130,6 +130,6 @@ Create New CRM User - CRM user is any person who works for a business unit who uses the Microsoft Dynamics CRM application. Each user corresponds to a user in the Active Directory for that organization. All users must be associated with only one business unit. This association controls which customer data the user will have access to. + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeActiveSyncSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeActiveSyncSettings.ascx.resx index 7a93b328..23412adb 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeActiveSyncSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeActiveSyncSettings.ascx.resx @@ -151,9 +151,7 @@ Windows SharePoint Services - <p>Exchange Server enables users who have mobile devices to synchronize mailbox data by using Exchange ActiveSync. Users can synchronize e-mail, contacts, calendars, and task folders. </p><p> -ActiveSync mailbox policy allows you to apply a common set of security settings to all users in organization. -</p> + Refresh interval: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddDomainName.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddDomainName.ascx.resx index 1b687b23..5068ac02 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddDomainName.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddDomainName.ascx.resx @@ -121,7 +121,7 @@ Cancel - Select a domain name, e.g. "mydomain.com" or "sub.mydomain.com" + Add Domain Name diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddMailboxPlan.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddMailboxPlan.ascx.resx index 0b7d21df..5de71b1e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddMailboxPlan.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddMailboxPlan.ascx.resx @@ -136,7 +136,7 @@ POP3 - <p> A Mailbox plan is a template that defines the characteristics of a mailbox </p> <p>The mailbox plan name needs to be unique. A mailbox plan cannot be modified. In case a mailbox needs a mailbox plan with another characteristics, a new mailbox plan needs to be created and assigned to the mailbox. A mailbox plan can only be deleted when the plan is not assigned to any mailboxes. </p><p> Empty value indicates <b>'Unlimited'</b>, percentages have to be a value between 0 and 100 (a value of 0 can block the mailbox from sending and receiving email) </p> <p> Unllimited values can only be used when the hosting plan allows to do so</p> + days diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContactGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContactGeneralSettings.ascx.resx index 68b60ab8..ac4b01a6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContactGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContactGeneralSettings.ascx.resx @@ -127,7 +127,7 @@ Hide from Address Book - <p><b>Display Name</b> will be shown in the GAL in Outlook and OWA.</p><p>You can specify both internal and external e-mail addresses in "E-Mail Address" field.</p><p>You can specify contact's manager to build organizational structure of your company.</p> + Address: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContactMailFlowSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContactMailFlowSettings.ascx.resx index 9ea225b7..4ca5a9ec 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContactMailFlowSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContactMailFlowSettings.ascx.resx @@ -127,7 +127,7 @@ Require that all senders are authenticated - <p>When editing Accepted and Rejected lists of accounts, please make sure that the same account (mailbox, contact or distribution list) is not included in both lists.</p> + Edit Contact diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContacts.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContacts.ascx.resx index 20eeb913..af19fe41 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContacts.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeContacts.ascx.resx @@ -139,7 +139,7 @@ E-mail Address - <p><b>Company Contacts</b> will be visible in GAL to all members of Exchange organization.</p><p>You can also create contacts to use them as forwarding accounts in mailbox properties.</p> + No contacts have been created. To create a new contact click "Create New Contact" button. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateContact.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateContact.ascx.resx index 2048b51e..088a6ac4 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateContact.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateContact.ascx.resx @@ -124,7 +124,7 @@ Create Contact - <p><b>Display Name</b> will be shown in the GAL in Outlook and OWA.</p><p>You can specify both internal and external e-mail addresses in "E-Mail Address" field.</p> + Display Name: * diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateDistributionList.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateDistributionList.ascx.resx index c089926b..b2b55482 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateDistributionList.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateDistributionList.ascx.resx @@ -124,7 +124,7 @@ Create Distribution List - <p><b>Display Name</b> will be shown in the GAL in Outlook and OWA.</p><p>You can add new Domain Names on "Domain Names" page. </p><p><b>Primary E-Mail Address</b> is shown in the GAL and in "From" field of all messages sent from this DL.</p> + E-mail Address: * diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateMailbox.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateMailbox.ascx.resx index 4c537ca9..a00e1a83 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateMailbox.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateMailbox.ascx.resx @@ -130,13 +130,7 @@ Equipment Mailbox - <p><b>Display Name</b> is a “friendly” name used by other programs, such as Microsoft Exchange or SharePoint.</p> - -<p><b>E-Mail Address</b> is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p> - -<p>New organization domains can be added on "Domain Names" page.</p> - -<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols. + Create mailbox for new user diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreatePublicFolder.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreatePublicFolder.ascx.resx index cedaa302..5fe4ccdc 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreatePublicFolder.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreatePublicFolder.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 ShowProgressDialog('Creating public folder...'); @@ -127,7 +127,7 @@ Mail Enabled Public Folder - <p>You can create both "General Purpose" and "Mail Enabled" public folders. You can post and send messages to mail enabled public folder, but only post new messages to general purpose folder.</p> + E-mail Address: * diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListEmailAddresses.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListEmailAddresses.ascx.resx index 56dab2cf..8d02675c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListEmailAddresses.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListEmailAddresses.ascx.resx @@ -127,7 +127,7 @@ Set As Primary - <b>Primary E-Mail Address</b> is a User Principal Name (UPN). It will be used as a login in Outlook and Outlook Web Access (OWA). Also, Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page.</p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p> + E-mail Address diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListGeneralSettings.ascx.resx index 56de9930..8b353baf 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListGeneralSettings.ascx.resx @@ -127,7 +127,7 @@ Hide from Address Book - <p><b>Display Name</b> will be shown in the GAL in Outlook and OWA.</p><p>You can specify distribution list's manager to build organizational structure of your company.</p> + Managed By: * diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListMailFlowSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListMailFlowSettings.ascx.resx index 3df43c86..b8d8140e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListMailFlowSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListMailFlowSettings.ascx.resx @@ -127,7 +127,7 @@ Require that all senders are authenticated - <p>When editing Accepted and Rejected lists of accounts, please make sure that the same account (mailbox, contact or distribution list) is not included in both lists.</p> + Edit Distribution List diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListPermissions.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListPermissions.ascx.resx index 9475179a..5814bfdf 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListPermissions.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionListPermissions.ascx.resx @@ -112,13 +112,13 @@ 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 - <p>When you grant <b>Full Access</b> permission to a user, that user can open this mailbox and access all of its content.</p> <br><p>When you grant <b>Send As</b> permission to a user, that user can send messages as this mailbox. </p><br><p>We do not recommend to use this setting together “Send on behalf” (“Send as”) – it may work unpredictable.</p> + Grant this permission to: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionLists.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionLists.ascx.resx index b5f5a8ad..44821628 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionLists.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDistributionLists.ascx.resx @@ -139,7 +139,7 @@ E-mail Address - <p><b>Distribution List</b> is a group of mailboxes, contacts and other distribution lists. Distribution lists are ideal for creating "Sales", "Support" and other "virtual" organization-wide mailboxes.</p><p>Each distribution list can have any number of e-mail Addresses. These e-mail addresses will be used for receiving incoming messages and distributing them to all DL members.</p><p><b>Primary E-Mail Address</b> is shown in the GAL and in "From" field of all messages sent from this DL.</p> + No distribution lists have been created. To create a new distribution list click "Create New Distribution List" button. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDomainNames.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDomainNames.ascx.resx index 8775c057..cb83dba8 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDomainNames.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDomainNames.ascx.resx @@ -142,9 +142,7 @@ Domain Name - <p>Each organization can have several domain names. These domain names are used as part of the primary e-mail address (UPN) of the new accounts. Exchange-enabled organizations use domain name when creating e-mail addresses for mailboxes, and distribution lists. Domain name is also used when creating new site collection in SharePoint.</p> -<p>Default domain name is selected by default when creating a new e-mail address. You can always change default domain name and it will not affect existing accounts.</p> -<p>For each domain name a corresponding DNS Zone is created. You can edit DNS zone records by clicking domain name link. If you are unsure about the structure of DNS zone, please do not modify zone records.</p> + Total Domain Names Used: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDomainRecords.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDomainRecords.ascx.resx index 3096f457..bf3710dc 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDomainRecords.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeDomainRecords.ascx.resx @@ -130,7 +130,7 @@ Save - <p>For each domain name a corresponding DNS Zone is created. If you are unsure about the structure of DNS zone, please do not modify zone records.</p> + No DNS records defined. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxEmailAddresses.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxEmailAddresses.ascx.resx index e20ccdb3..51e678d5 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxEmailAddresses.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxEmailAddresses.ascx.resx @@ -130,7 +130,7 @@ Allow these settings to be managed from <b>Personal Mailbox Manager</b> - <b>Primary E-Mail Address</b> The Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page. </p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p> + E-mail Address diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxGeneralSettings.ascx.resx index 952e1037..cb0a8c7b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxGeneralSettings.ascx.resx @@ -133,7 +133,7 @@ Allow these settings to be managed from <b>Personal Mailbox Manager</b> - <p>The General tab displays general information about the mailbox Use this tab to view or modify the mailbox characteristics such as size and show in your address book in the Exchange address lists. You can also specify whether to disable the mailbox user.</p> + Mailbox plan: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMailFlowSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMailFlowSettings.ascx.resx index 3dfe91c1..9ed871cb 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMailFlowSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMailFlowSettings.ascx.resx @@ -136,7 +136,7 @@ Require that all senders are authenticated - <p>When "Deliver messages to both forwarding address and mailbox" checkbox is unchecked all incoming mail will be delivered to forwarding e-mail and deleted from local mailbox.</p><p>When editing Accepted and Rejected lists of accounts, please make sure that the same account (mailbox, contact or distribution list) is not included in both lists.</p> + Forward To: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMobile.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMobile.ascx.resx index 7b809afa..28ea3657 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMobile.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMobile.ascx.resx @@ -133,7 +133,7 @@ There are no mobile devices. - <p>Manage mobile devices here.</p><p>To add a new device, begin a partnership with Microsoft Exchange from the device and it will appear in the device list.</p><p>You can remove devices that you are no longer using. If you forget your device password, you can access it here. If you lose your phone or mobile device, you can initiate a remote device wipe to protect your information.</p> + Last Sync Time diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMobileDetails.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMobileDetails.ascx.resx index 56efeeba..13302e20 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMobileDetails.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMobileDetails.ascx.resx @@ -130,7 +130,7 @@ Wipe All Data from Device - <p>Manage the mobile device here.</p><p>If you forget your device password, you can access it here. If you lose your phone or mobile device, you can initiate a remote device wipe to protect your information . You can also cancel a wipe request if it was initiated by accident or the device was found subsequently.</p> + Device wipe acnowledge time: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPermissions.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPermissions.ascx.resx index 5e891cc2..9c1cac80 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPermissions.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPermissions.ascx.resx @@ -124,7 +124,7 @@ Save Changes - <p>When you grant <b>Full Access</b> permission to a user, that user can open this mailbox and access all of its content.</p> <br><p>When you grant <b>Send As</b> permission to a user, that user can send messages as this mailbox. </p> <br><p>We do not recommend to use this setting together “Send on behalf” (“Send as”) – it may work unpredictable</p> + Grant this permission to: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPlans.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPlans.ascx.resx index 714cad30..f2b0cc1d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPlans.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPlans.ascx.resx @@ -145,7 +145,7 @@ No mailbox plans have been added yet. To add a new mailbox plan click "Add New Mailbox plan" button. - <p> A Mailbox plan is a template that defines the characteristics of a mailbox </p> <p>The mailbox plan name needs to be unique. A mailbox plan cannot be modified. In case a mailbox needs a mailbox plan with another characteristics, a new mailbox plan needs to be created and assigned to the mailbox. A mailbox plan can only be deleted when the plan is not assigned to any mailboxes. </p> + Source plan: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxSetupInstructions.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxSetupInstructions.ascx.resx index de0dd29b..cb156567 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxSetupInstructions.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxSetupInstructions.ascx.resx @@ -121,7 +121,7 @@ Send - <p>You can send setup instructions to the newly created mailbox user.</p> + CC: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxes.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxes.ascx.resx index a254bede..ef18271b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxes.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxes.ascx.resx @@ -157,13 +157,7 @@ Subscriber - <p><b>Mailboxes</b> are used to receive and send electronic messages. Each mailbox is a separate Exchange account which may be a person, room or inventory unit.</p> - -<p><b>Primary E-Mail Address</b> is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint. Also, Primary E-Mail Address is shown in "From" field of messages sent from this mailbox.</p> - -<p>You can always change your primary e-mail address on "E-Mail Addresses" tab of mailbox settings.</p> - -<p>Note that deleting mailbox will not delete corresponding Active Directory account. You can delete Active Directory account on “Users” page.</p> + Total Mailboxes Created: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderEmailAddresses.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderEmailAddresses.ascx.resx index 0cb25609..090b5944 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderEmailAddresses.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderEmailAddresses.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 Add E-mail Address @@ -127,7 +127,7 @@ Set As Primary - <b>Primary E-Mail Address</b> is a User Principal Name (UPN). It will be used as a login in Outlook 2003/2007 and Outlook Web Access (OWA). Also, Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page. We always provide you with a free domain that would allow your organization migrating to Exchange as soon as possible.</p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p> + E-mail Address diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderGeneralSettings.ascx.resx index f8ba156f..e7310e41 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderGeneralSettings.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 ShowProgressDialog('Updating public folder settings...'); @@ -130,7 +130,7 @@ Mail Enabled Public Folder - <p>To rename public folder just specify its new name in "Folder Name" folder.</p><p><b>Authors</b> list contains Exchange mailboxes that are able to post/send messages to public folder. All other organization members can view folder contents only.</p> + Authors: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderMailEnable.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderMailEnable.ascx.resx index 06dbc71b..13bc78db 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderMailEnable.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderMailEnable.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 Cancel @@ -127,7 +127,7 @@ Enable Mail Public Folder - To create a new public folder ... + E-mail Address: * diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderMailFlowSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderMailFlowSettings.ascx.resx index e0913b81..b10052b3 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderMailFlowSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolderMailFlowSettings.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 ShowProgressDialog('Updating public folder settings...'); @@ -127,7 +127,7 @@ Require that all senders are authenticated - <p>When editing Accepted and Rejected lists of accounts, please make sure that the same account (mailbox, contact or distribution list) is not included in both lists.</p> + Edit Public Folder diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolders.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolders.ascx.resx index 51a809dc..36e3aecc 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolders.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangePublicFolders.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 Create New Public Folder @@ -127,7 +127,7 @@ Delete Selected Folders - <p><b>Public Folders</b> can be used to share various information across Exchange organization.</p><p>All public folders of each Exchange organization are nested within a default root organization folder which is not visible to other organizations and which you cannot maintain.</p><p>If you need to delete a whole branch of folders you may check only top ones.</p> + Total Public Folders Created: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeStorageUsage.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeStorageUsage.ascx.resx index 4046f8fd..71773c43 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeStorageUsage.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeStorageUsage.ascx.resx @@ -127,7 +127,7 @@ ShowProgressDialog('Please wait...'); - <p>Organization disk space actual usage is calculated on timely basis (usually once a day). You can recalculate it right now by clicking "Recalculate Disk Space" button.</p><p>Click on the link with used disk space to see actual usage breakdown by all organization mailboxes.</p> + Allocated Disk Space (MB): diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeStorageUsageBreakdown.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeStorageUsageBreakdown.ascx.resx index 6688dce6..c5860ce9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeStorageUsageBreakdown.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeStorageUsageBreakdown.ascx.resx @@ -121,7 +121,7 @@ OK - <p> + There are no public folders in the organization. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationAddDomainName.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationAddDomainName.ascx.resx index 1b687b23..5068ac02 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationAddDomainName.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationAddDomainName.ascx.resx @@ -121,7 +121,7 @@ Cancel - Select a domain name, e.g. "mydomain.com" or "sub.mydomain.com" + Add Domain Name diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationCreateOrganization.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationCreateOrganization.ascx.resx index 0f6fe988..484c8c47 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationCreateOrganization.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationCreateOrganization.ascx.resx @@ -124,7 +124,7 @@ Create Organization - <p><b>Organization name</b> is used just as display name for references purposes. It will not be used somewhere on Exchange Server.</p> <p><b>Organization ID</b> is an unique organization identifier. Organization ID will be used as GAL name.</p> + Organization ID: * diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationCreateUser.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationCreateUser.ascx.resx index 7754d53e..2737698d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationCreateUser.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationCreateUser.ascx.resx @@ -127,13 +127,7 @@ Send Summary Letter - <p><b>Display Name</b> is a “friendly” name used by other programs, such as Microsoft Exchange or SharePoint.</p> - -<p><b>E-Mail Address</b> is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p> - -<p>New organization domains can be added on "Domain Names" page.</p> - -<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols.</p> + E-mail Address: * diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationDomainNames.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationDomainNames.ascx.resx index 8775c057..cb83dba8 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationDomainNames.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationDomainNames.ascx.resx @@ -142,9 +142,7 @@ Domain Name - <p>Each organization can have several domain names. These domain names are used as part of the primary e-mail address (UPN) of the new accounts. Exchange-enabled organizations use domain name when creating e-mail addresses for mailboxes, and distribution lists. Domain name is also used when creating new site collection in SharePoint.</p> -<p>Default domain name is selected by default when creating a new e-mail address. You can always change default domain name and it will not affect existing accounts.</p> -<p>For each domain name a corresponding DNS Zone is created. You can edit DNS zone records by clicking domain name link. If you are unsure about the structure of DNS zone, please do not modify zone records.</p> + Total Domain Names Used: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx index 9c8ad7bf..7bd2b8e7 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx @@ -118,9 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - <p>Welcome to the organization home page!</p> -<p>Using the left menu you can manage organization domain names and users.</p> -<p>Organization statistics displays current status of the organization.</p> + Created: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx index 2867a2c5..fb511e76 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx @@ -133,9 +133,7 @@ Set Password - <p><b>Display Name</b> is a “friendly” name used by other programs, such as Microsoft Exchange or SharePoint.</p> -<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols.</p> -<p>You can specify manager account to build organizational structure of your company.</p> + Address: @@ -246,6 +244,6 @@ Set Login Name - Set login name for services + Update Services \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserSetupInstructions.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserSetupInstructions.ascx.resx index d59541dc..b6686d03 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserSetupInstructions.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserSetupInstructions.ascx.resx @@ -121,7 +121,7 @@ Send - <p>You can send setup instructions to the newly created user.</p> + CC: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUsers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUsers.ascx.resx index 3923f30b..69a7581f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUsers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUsers.ascx.resx @@ -157,13 +157,7 @@ Primary E-mail Address - <p>Active Directory user accounts are used to:</p> -<p>• Authenticate the identity of a user.<br> -• Authorize or deny access to domain resources.<br> -• Administer other security principals.<br> -• Audit actions performed using the user account.</p> -<p>Primary E-Mail Address is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p> -<p>User account can also represent Exchange mailbox, which may be a person, room or inventory unit.</p> + Total Users Created in this Organization: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/Organizations.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/Organizations.ascx.resx index f87c9b7d..9a44ec38 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/Organizations.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/Organizations.ascx.resx @@ -157,9 +157,7 @@ Owner - <p><b>Organization</b> is a group of Active Directory users, contacts and groups.<br><br> -All accounts within one organization are located in the same Organizational Unit and are not visible to members of other organizations.<br><br> -Exchange-enabled organization has its own Global Address List (GAL) and Offline Address Book (OAB). Mailboxes, contacts, and distribution lists of Exchange-enabled organization share the same GAL and OAB</p> + Total Organizations Created: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx index b1ad839d..8fe84227 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx @@ -116,6 +116,15 @@ + + + + + +
+ +
+ @@ -239,21 +248,10 @@ - - - - - -
- -
- - - diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs index 50348e70..cb4369f6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2012, 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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -346,6 +318,24 @@ namespace WebsitePanel.Portal.HostedSolution { /// protected global::System.Web.UI.WebControls.TextBox txtExternalEmailAddress; + /// + /// locNotes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Localize locNotes; + + /// + /// txtNotes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtNotes; + /// /// secCompanyInfo control. /// @@ -688,24 +678,6 @@ namespace WebsitePanel.Portal.HostedSolution { /// protected global::WebsitePanel.Portal.ExchangeServer.UserControls.CountrySelector country; - /// - /// locNotes control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Localize locNotes; - - /// - /// txtNotes control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox txtNotes; - /// /// secAdvanced control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAddLyncUserPlan.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAddLyncUserPlan.ascx.resx index daee76c2..df0d9cbe 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAddLyncUserPlan.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAddLyncUserPlan.ascx.resx @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - <p> A plan is a template that defines the characteristics of a lync users </p> <p>The plan name needs to be unique. A plan cannot be modified. In case a user needs a plan with another characteristics, a new plan needs to be created and assigned to the user. A plan can only be deleted when the plan is not assigned to any users. </p> + Add Lync User Plan diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncCreateUser.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncCreateUser.ascx.resx index fd626cd7..1d274881 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncCreateUser.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncCreateUser.ascx.resx @@ -124,7 +124,7 @@ Create - Select an existing Organization user and click the “Create” button to enable an individual user account for Microsoft Lync Server. + Display name* : diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncEditUser.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncEditUser.ascx.resx index efcae705..8405529f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncEditUser.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncEditUser.ascx.resx @@ -124,7 +124,7 @@ Save changes - <p> A plan is a template that defines the capabilities of a lync user. In order to change the plan assigned to this user, select a plan and click the Save Changes button </p> + Display name: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncFederationDomains.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncFederationDomains.ascx.resx index e60864dd..a45d8f91 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncFederationDomains.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncFederationDomains.ascx.resx @@ -136,11 +136,7 @@ Domain Name - <p>By adding a federation domain you allow your users, that are enabled for federation, to interact through Lync with users from the specified domain. Your users as well as the users from the federated domain will see eachother status. </p> - -<p>Federation is a mutual agreement between you and your federation partner (owner of the domain you want to federate with). Once you have added the federation domain to your list, your partner will need to do the same from his side</p> - - + Lync Federation Domains diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUserPlans.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUserPlans.ascx.resx index 844f8e76..ab50c0af 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUserPlans.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUserPlans.ascx.resx @@ -142,7 +142,7 @@ No plans have been added yet. To add a new plan click "Add New Plan" button. - <p> A plan is a template that defines the capabilities of a lync users </p> <p>The plan name needs to be unique. A plan cannot be modified. In case a lync user needs a plan with another characteristics, a new plan needs to be created and assigned to the lync user. A plan can only be deleted when the plan is not assigned to any lync users. </p> + Source plan: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUsers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUsers.ascx.resx index 748a13ee..8c44e59c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUsers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUsers.ascx.resx @@ -130,9 +130,7 @@ Login - <p>Microsoft Lync Server delivers unified communications to the users, including software-powered VoIP, Web and audio/video conferencing, and enterprise instant messaging.</p> -<p>Click the “Create Lync User” button to enable a user account for Microsoft Lync Server. </p> -<p>If you delete an account in Microsoft Lync Server, the account is no longer available for use with Microsoft Lync Server unless you enable the account again. When you delete an account, all Lync Server settings for the account are lost, so you must configure the account again after enabling.</p> + Display name diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/CreateOCSUser.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/CreateOCSUser.ascx.resx index 859f311a..cea9a623 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/CreateOCSUser.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/CreateOCSUser.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 Create OCS User @@ -124,7 +124,7 @@ Create - Select an existing Organization user and click the “Create” button to enable an individual user account for Office Communications Server. + Display name* : diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/EditOCSUser.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/EditOCSUser.ascx.resx index bf4bdbf2..677e3608 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/EditOCSUser.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/EditOCSUser.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 Edit OCS User @@ -139,12 +139,7 @@ Enable Public IM connectivity - <p><b>Sign-in name</b> specifies the Session Initiation Protocol (SIP) address that is currently registered for this user and will be used to route messages to and from the user. The sign-in name is in the form "sip:user@domain" and must be unique.</p> -<p><b>Federation</b> specifies whether the user can communicate with users from other organizations that have an Office Communications Server deployment and a federated link.</p> -<p><b>Public IM connectivity</b> specifies whether the user can communicate with users who are hosted on AOL, Yahoo!, or the MSN network of Internet services.</p> -<p><b>Archiving</b> enables or disables archiving of IM conversations of the user. Archiving can be enabled independently for internal conversations and for conversations with users outside your organization.</p> -<p><b>Enhanced presence</b> enables users to control their presence with more granularity. Enhanced presence enables users to create different presence categories and assign data items to the categories.</p> -<p><b>Note:</b> Some settings cannot be configured for individual users depending on the Global Properties.</p> + Display name: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/OCSUsers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/OCSUsers.ascx.resx index 31a67e0e..9290b1fe 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/OCSUsers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/OCS/App_LocalResources/OCSUsers.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 OCS Users @@ -130,9 +130,7 @@ Sign-in name - <p>Office Communications Server delivers streamlined communications to the users, including software-powered VoIP, Web and audio/video conferencing, and enterprise instant messaging.</p> -<p>Click the “Create OCS User” button to enable an individual user account for Office Communications Server. </p> -<p>If you delete an account in Office Communications Server, the account is no longer available for use with Office Communications Server unless you enable the account again. When you delete an account, all Office Communications Server settings for the account are lost, so you must configure the account again after enabling.</p> + Display name From 8c940fb73df8ccc465c05d36bae5c1d7deb3ebb6 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sat, 24 Nov 2012 12:49:39 -0500 Subject: [PATCH 21/28] Merge --- .../WebsitePanel.EnterpriseServer/Web.config | 14 ++-------- ...zationUserGeneralSettings.ascx.designer.cs | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 6c7d9d64..3766094f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,19 +5,11 @@ - - + - - - + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs index cb4369f6..8f8af98e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs @@ -1,3 +1,31 @@ +// Copyright (c) 2012, 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. + //------------------------------------------------------------------------------ // // This code was generated by a tool. From 3e8813c1e6f69575fd5ae1d55e01d9e40c3f2bf7 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sat, 24 Nov 2012 12:59:15 -0500 Subject: [PATCH 22/28] Added tag build-2.0.0.190 for changeset cd9b3fb5fe86 From ded00c3c31f5cb1dbecdc3526440c5aab700a082 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sat, 24 Nov 2012 13:02:56 -0500 Subject: [PATCH 23/28] Added tag build-2.0.0.191 for changeset bf33156ff169 From 695c0bc94f7fc6fb482dc06891af17a761807721 Mon Sep 17 00:00:00 2001 From: robvde Date: Sat, 24 Nov 2012 22:17:37 +0400 Subject: [PATCH 24/28] Replaced upn by samaccountname as accountname in exchange accounts ContactGeneralSettings reformatted --- .../ExchangeServerController.cs | 31 +++++++------ .../HostedSolution/OrganizationController.cs | 11 +++-- .../OrganizationProvider.cs | 2 +- .../ExchangeContactGeneralSettings.ascx | 23 +++++----- ...ngeContactGeneralSettings.ascx.designer.cs | 45 ++++++++----------- 5 files changed, 55 insertions(+), 57 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs index e012ee65..e4fccf87 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs @@ -767,7 +767,7 @@ namespace WebsitePanel.EnterpriseServer // load account ExchangeAccount account = GetAccount(itemId, accountId); - return exchange.GetMailboxStatistics(account.AccountName); + return exchange.GetMailboxStatistics(account.UserPrincipalName); } catch (Exception ex) { @@ -1241,6 +1241,9 @@ namespace WebsitePanel.EnterpriseServer string CounterStr = "00000"; int counter = 0; bool bFound = false; + + if (!AccountExists(accountName)) return accountName; + do { accountName = genSamLogin(name, CounterStr); @@ -1819,7 +1822,7 @@ namespace WebsitePanel.EnterpriseServer // delete mailbox int serviceExchangeId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(serviceExchangeId, org.ServiceId); - exchange.DisableMailbox(account.AccountName); + exchange.DisableMailbox(account.UserPrincipalName); account.AccountType = ExchangeAccountType.User; account.MailEnabledPublicFolder = false; @@ -1869,7 +1872,7 @@ namespace WebsitePanel.EnterpriseServer // delete mailbox int serviceExchangeId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(serviceExchangeId, org.ServiceId); - exchange.DeleteMailbox(account.AccountName); + exchange.DeleteMailbox(account.UserPrincipalName); @@ -1944,7 +1947,7 @@ namespace WebsitePanel.EnterpriseServer int exchangeServiceId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); - return exchange.GetMailboxGeneralSettings(account.AccountName); + return exchange.GetMailboxGeneralSettings(account.UserPrincipalName); } catch (Exception ex) { @@ -1991,7 +1994,7 @@ namespace WebsitePanel.EnterpriseServer hideAddressBook = true; exchange.SetMailboxGeneralSettings( - account.AccountName, + account.UserPrincipalName, hideAddressBook, disabled); @@ -2063,7 +2066,7 @@ namespace WebsitePanel.EnterpriseServer ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); exchange.SetMailboxEmailAddresses( - account.AccountName, + account.UserPrincipalName, GetAccountSimpleEmailAddresses(itemId, accountId)); return 0; @@ -2119,7 +2122,7 @@ namespace WebsitePanel.EnterpriseServer ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); exchange.SetMailboxPrimaryEmailAddress( - account.AccountName, + account.UserPrincipalName, emailAddress); if (DataProvider.CheckOCSUserExists(account.AccountId)) @@ -2187,7 +2190,7 @@ namespace WebsitePanel.EnterpriseServer ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); exchange.SetMailboxEmailAddresses( - account.AccountName, + account.UserPrincipalName, GetAccountSimpleEmailAddresses(itemId, accountId)); return 0; @@ -2228,7 +2231,7 @@ namespace WebsitePanel.EnterpriseServer // get mailbox settings int exchangeServiceId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); - ExchangeMailbox mailbox = exchange.GetMailboxMailFlowSettings(account.AccountName); + ExchangeMailbox mailbox = exchange.GetMailboxMailFlowSettings(account.UserPrincipalName); mailbox.DisplayName = account.DisplayName; return mailbox; } @@ -2273,7 +2276,7 @@ namespace WebsitePanel.EnterpriseServer int exchangeServiceId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); - exchange.SetMailboxMailFlowSettings(account.AccountName, + exchange.SetMailboxMailFlowSettings(account.UserPrincipalName, enableForwarding, forwardingAccountName, forwardToBoth, @@ -2321,7 +2324,7 @@ namespace WebsitePanel.EnterpriseServer // get mailbox settings int exchangeServiceId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); - ExchangeMailbox mailbox = exchange.GetMailboxAdvancedSettings(account.AccountName); + ExchangeMailbox mailbox = exchange.GetMailboxAdvancedSettings(account.UserPrincipalName); mailbox.DisplayName = account.DisplayName; return mailbox; } @@ -2529,7 +2532,7 @@ namespace WebsitePanel.EnterpriseServer // get mailbox settings int exchangeServiceId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); - ExchangeMailbox mailbox = exchange.GetMailboxPermissions(org.OrganizationId, account.AccountName); + ExchangeMailbox mailbox = exchange.GetMailboxPermissions(org.OrganizationId, account.UserPrincipalName); mailbox.DisplayName = account.DisplayName; return mailbox; } @@ -2571,7 +2574,7 @@ namespace WebsitePanel.EnterpriseServer int exchangeServiceId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); - exchange.SetMailboxPermissions(org.OrganizationId, account.AccountName, sendAsaccounts, fullAccessAcounts); + exchange.SetMailboxPermissions(org.OrganizationId, account.UserPrincipalName, sendAsaccounts, fullAccessAcounts); return 0; @@ -2656,7 +2659,7 @@ namespace WebsitePanel.EnterpriseServer exchange.SetMailboxAdvancedSettings( org.OrganizationId, - account.AccountName, + account.UserPrincipalName, plan.EnablePOP, plan.EnableIMAP, plan.EnableOWA, diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs index 17c5c573..ef2994d8 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs @@ -1336,11 +1336,11 @@ namespace WebsitePanel.EnterpriseServer if (orgProxy.CreateUser(org.OrganizationId, sAMAccountName, displayName, upn, password, enabled) == 0) { - OrganizationUser retUser = orgProxy.GetUserGeneralSettings(upn, org.OrganizationId); + accountName = sAMAccountName; + OrganizationUser retUser = orgProxy.GetUserGeneralSettings(sAMAccountName, org.OrganizationId); TaskManager.Write("sAMAccountName :" + retUser.DomainUserName); - userId = AddOrganizationUser(itemId, upn, displayName, email, retUser.DomainUserName, password, subscriberNumber); - accountName = upn; + userId = AddOrganizationUser(itemId, sAMAccountName, displayName, email, retUser.DomainUserName, password, subscriberNumber); // register email address AddAccountEmailAddress(userId, email); @@ -1432,7 +1432,7 @@ namespace WebsitePanel.EnterpriseServer TaskManager.Write("sAMAccountName :" + retUser.DomainUserName); - userId = AddOrganizationUser(itemId, accountName, displayName, email, retUser.DomainUserName, password, subscriberNumber); + userId = AddOrganizationUser(itemId, retUser.SamAccountName, displayName, email, retUser.DomainUserName, password, subscriberNumber); AddAccountEmailAddress(userId, email); @@ -1461,6 +1461,9 @@ namespace WebsitePanel.EnterpriseServer string CounterStr = "00000"; int counter = 0; bool bFound = false; + + if (!AccountExists(accountName)) return accountName; + do { accountName = genSamLogin(name, CounterStr); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/OrganizationProvider.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/OrganizationProvider.cs index 782b59d0..cd7e60b0 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/OrganizationProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/OrganizationProvider.cs @@ -371,7 +371,7 @@ namespace WebsitePanel.Providers.HostedSolution userPath = GetUserPath(organizationId, loginName); if (!ActiveDirectoryUtils.AdObjectExists(userPath)) { - userPath = ActiveDirectoryUtils.CreateUser(path, upn, loginName, displayName, password, enabled); + userPath = ActiveDirectoryUtils.CreateUser(path, null, loginName, displayName, password, enabled); DirectoryEntry entry = new DirectoryEntry(userPath); ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.UserPrincipalName, upn); entry.CommitChanges(); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx index 47c26b55..cd5d026b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx @@ -78,8 +78,17 @@
+ + + + + + +
+ +
- @@ -121,7 +130,7 @@ - @@ -165,7 +174,7 @@ - @@ -204,14 +213,6 @@ - - - - - -
- -
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx.designer.cs index 6186bb22..1868eb35 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeContactGeneralSettings.ascx.designer.cs @@ -228,6 +228,24 @@ namespace WebsitePanel.Portal.ExchangeServer { /// protected global::System.Web.UI.WebControls.TextBox txtLastName; + /// + /// locNotes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Localize locNotes; + + /// + /// txtNotes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtNotes; + /// /// secCompanyInfo control. /// @@ -570,24 +588,6 @@ namespace WebsitePanel.Portal.ExchangeServer { /// protected global::WebsitePanel.Portal.ExchangeServer.UserControls.CountrySelector country; - /// - /// locNotes control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Localize locNotes; - - /// - /// txtNotes control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox txtNotes; - /// /// btnSave control. /// @@ -605,14 +605,5 @@ namespace WebsitePanel.Portal.ExchangeServer { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1; - - /// - /// FormComments control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Localize FormComments; } } From 86d64a71e3b5e462ec9cf3430c45c46911e6db98 Mon Sep 17 00:00:00 2001 From: robvde Date: Sat, 24 Nov 2012 22:26:12 +0400 Subject: [PATCH 25/28] Few adjustment with regard to accountName --- .../Code/ExchangeServer/ExchangeServerController.cs | 2 +- .../Code/HostedSolution/CRMController.cs | 2 +- .../Code/HostedSolution/ReportController.cs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs index e4fccf87..9e8665bb 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs @@ -4766,7 +4766,7 @@ namespace WebsitePanel.EnterpriseServer int exchangeServiceId = GetExchangeServiceID(org.PackageId); ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId); - return exchange.GetMobileDevices(account.AccountName); + return exchange.GetMobileDevices(account.UserPrincipalName); } catch (Exception ex) { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/CRMController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/CRMController.cs index 10a2bd10..ed6cb8d0 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/CRMController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/CRMController.cs @@ -249,7 +249,7 @@ namespace WebsitePanel.EnterpriseServer OrganizationResult serverRes = crm.CreateOrganization(orgId, org.OrganizationId, org.Name, baseCurrencyCode, baseCurrencyName, - baseCurrencySymbol, user.AccountName, user.FirstName, user.LastName, user.PrimaryEmailAddress, + baseCurrencySymbol, user.SamAccountName, user.FirstName, user.LastName, user.PrimaryEmailAddress, collation); if (!serverRes.IsSuccess) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/ReportController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/ReportController.cs index adad212f..b934d5e0 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/ReportController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/ReportController.cs @@ -444,12 +444,12 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution try { - stats = exchange.GetMailboxStatistics(mailbox.AccountName); + stats = exchange.GetMailboxStatistics(mailbox.UserPrincipalName); } catch (Exception ex) { TaskManager.WriteError(ex, "Could not get mailbox statistics. AccountName: {0}", - mailbox.AccountName); + mailbox.UserPrincipalName); } From a9213a2098f15b9fdb2a8988793c90e00f89ec4d Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sat, 24 Nov 2012 13:57:46 -0500 Subject: [PATCH 26/28] Added tag build-2.0.0.192 for changeset c6043f88f4b6 From 769751374e30bbed66c0e8593845c61a2bf4e6ea Mon Sep 17 00:00:00 2001 From: robvde Date: Sun, 25 Nov 2012 06:28:25 +0400 Subject: [PATCH 27/28] Fixed: Empty completion message when setting user principalname --- .../ExchangeServer/OrganizationUserGeneralSettings.ascx.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs index f74e0aa2..3ea2ae6c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs @@ -287,11 +287,11 @@ namespace WebsitePanel.Portal.HostedSolution return; } - messageBox.ShowSuccessMessage("ORGANIZATION_SET_USER_PRINCIPALNAME"); + messageBox.ShowSuccessMessage("ORGANIZATION_SET_USER_USERPRINCIPALNAME"); } catch (Exception ex) { - messageBox.ShowErrorMessage("ORGANIZATION_SET_USER_PRINCIPALNAME", ex); + messageBox.ShowErrorMessage("ORGANIZATION_SET_USER_USERPRINCIPALNAME", ex); } } From e45b5faa0d5605c17cdc6b3df227a0eedc578e07 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sun, 25 Nov 2012 08:43:48 -0500 Subject: [PATCH 28/28] Added tag build-2.0.0.193 for changeset aa5d35f5f7f7