UI plumbing change UPN
Fixed: ExchangeAccount Password stored unencrypted when setting primary email address
This commit is contained in:
parent
95d0623ce3
commit
8a4159a0ff
9 changed files with 75 additions and 35 deletions
|
@ -6957,3 +6957,10 @@ AS
|
||||||
RETURN @Result'
|
RETURN @Result'
|
||||||
END
|
END
|
||||||
GO
|
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
|
||||||
|
|
|
@ -150,6 +150,7 @@ order by rg.groupOrder
|
||||||
public const string ORGANIZATIONS = "HostedSolution.Organizations";
|
public const string ORGANIZATIONS = "HostedSolution.Organizations";
|
||||||
public const string ORGANIZATION_USERS = "HostedSolution.Users";
|
public const string ORGANIZATION_USERS = "HostedSolution.Users";
|
||||||
public const string ORGANIZATION_DOMAINS = "HostedSolution.Domains";
|
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_USERS = "HostedCRM.Users";
|
||||||
public const string CRM_ORGANIZATION = "HostedCRM.Organization";
|
public const string CRM_ORGANIZATION = "HostedCRM.Organization";
|
||||||
|
|
||||||
|
|
|
@ -1818,6 +1818,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
account.AccountType = ExchangeAccountType.User;
|
account.AccountType = ExchangeAccountType.User;
|
||||||
account.MailEnabledPublicFolder = false;
|
account.MailEnabledPublicFolder = false;
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
DataProvider.DeleteUserEmailAddresses(account.AccountId, account.PrimaryEmailAddress);
|
DataProvider.DeleteUserEmailAddresses(account.AccountId, account.PrimaryEmailAddress);
|
||||||
|
|
||||||
|
@ -2129,6 +2130,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
// save account
|
// save account
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2357,6 +2359,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
else account.MailboxManagerActions &= ~action;
|
else account.MailboxManagerActions &= ~action;
|
||||||
|
|
||||||
// update account
|
// update account
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3193,6 +3196,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// update account
|
// update account
|
||||||
account.DisplayName = displayName;
|
account.DisplayName = displayName;
|
||||||
account.PrimaryEmailAddress = emailAddress;
|
account.PrimaryEmailAddress = emailAddress;
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3521,6 +3525,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
// update account
|
// update account
|
||||||
account.DisplayName = displayName;
|
account.DisplayName = displayName;
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3741,6 +3746,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
addressLists.ToArray());
|
addressLists.ToArray());
|
||||||
|
|
||||||
// save account
|
// save account
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -4143,6 +4149,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
account.AccountName = accountName;
|
account.AccountName = accountName;
|
||||||
account.MailEnabledPublicFolder = true;
|
account.MailEnabledPublicFolder = true;
|
||||||
account.PrimaryEmailAddress = email;
|
account.PrimaryEmailAddress = email;
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
// register e-mail
|
// register e-mail
|
||||||
|
@ -4195,6 +4202,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// update and save account
|
// update and save account
|
||||||
account.MailEnabledPublicFolder = false;
|
account.MailEnabledPublicFolder = false;
|
||||||
account.PrimaryEmailAddress = "";
|
account.PrimaryEmailAddress = "";
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
|
|
||||||
|
@ -4314,6 +4322,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
// rename original folder
|
// rename original folder
|
||||||
account.DisplayName = newFullName;
|
account.DisplayName = newFullName;
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
// rename nested folders
|
// rename nested folders
|
||||||
|
@ -4531,6 +4540,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
emailAddress);
|
emailAddress);
|
||||||
|
|
||||||
// save account
|
// save account
|
||||||
|
account.AccountPassword = null;
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1735,7 +1735,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (!String.IsNullOrEmpty(password))
|
if (!String.IsNullOrEmpty(password))
|
||||||
account.AccountPassword = CryptoUtils.Encrypt(password);
|
account.AccountPassword = CryptoUtils.Encrypt(password);
|
||||||
else
|
else
|
||||||
account.AccountPassword = string.Empty;
|
account.AccountPassword = null;
|
||||||
|
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,19 @@
|
||||||
</configSections>
|
</configSections>
|
||||||
<!-- Connection strings -->
|
<!-- Connection strings -->
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
<add name="EnterpriseServer" connectionString="Server=(local)\SQLExpress;Database=WebsitePanel;uid=sa;pwd=Password12" providerName="System.Data.SqlClient" />
|
<!--
|
||||||
|
<add name="EnterpriseServer" connectionString="server=HSTPROV01;database=WebsitePanelMerge;uid=WebsitePanel;pwd=aj7ep6fyhmw3b5qeth7c;" />
|
||||||
|
<add name="EnterpriseServer" connectionString="server=HSTWSP01;database=WebsitePanelMerge;uid=WebsitePanel;pwd=pserxfbnlc6hwmdedbp0;" providerName="System.Data.SqlClient" />
|
||||||
|
-->
|
||||||
|
<add name="EnterpriseServer" connectionString="server=HSTPROV01;database=WebsitePanelMerge;uid=WebsitePanel;pwd=aj7ep6fyhmw3b5qeth7c;" />
|
||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
<appSettings>
|
<appSettings>
|
||||||
<!-- Encryption util settings -->
|
<!-- A1D4KDHUE83NKHddF -->
|
||||||
<add key="WebsitePanel.CryptoKey" value="1234567890" />
|
<!--
|
||||||
|
<add key="WebsitePanel.CryptoKey" value="3x7eqt7zabc5n5afs6dg" />
|
||||||
|
<add key="WebsitePanel.CryptoKey" value="fr2ym4wn2gmbrj7dz336" />
|
||||||
|
-->
|
||||||
|
<add key="WebsitePanel.CryptoKey" value="3x7eqt7zabc5n5afs6dg" />
|
||||||
<!-- A1D4KDHUE83NKHddF -->
|
<!-- A1D4KDHUE83NKHddF -->
|
||||||
<add key="WebsitePanel.EncryptionEnabled" value="true" />
|
<add key="WebsitePanel.EncryptionEnabled" value="true" />
|
||||||
<!-- Web Applications -->
|
<!-- Web Applications -->
|
||||||
|
|
|
@ -3263,6 +3263,9 @@
|
||||||
<data name="Quota.HostedSolution.Users" xml:space="preserve">
|
<data name="Quota.HostedSolution.Users" xml:space="preserve">
|
||||||
<value>Users per Organization</value>
|
<value>Users per Organization</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Quota.HostedSolution.AllowChangeUPN" xml:space="preserve">
|
||||||
|
<value>Allow to Change UserPrincipalName</value>
|
||||||
|
</data>
|
||||||
<data name="Quota.HostedSolution.Domains" xml:space="preserve">
|
<data name="Quota.HostedSolution.Domains" xml:space="preserve">
|
||||||
<value>Domains per Organization</value>
|
<value>Domains per Organization</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/EmailAddress.ascx" TagName="EmailAddress" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,7 +44,10 @@
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"> <asp:Localize ID="locUserPrincipalName" runat="server" meta:resourcekey="locUserPrincipalName" Text="Login Name:"></asp:Localize></td>
|
<td class="FormLabel150"> <asp:Localize ID="locUserPrincipalName" runat="server" meta:resourcekey="locUserPrincipalName" Text="Login Name:"></asp:Localize></td>
|
||||||
<td><asp:Label runat="server" ID="lblUserPrincipalName" /></td>
|
<td>
|
||||||
|
<asp:Label runat="server" ID="lblUserPrincipalName" />
|
||||||
|
<wsp:EmailAddress id="upn" runat="server" ValidationGroup="CreateMailbox"></wsp:EmailAddress>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -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)
|
if (user.Locked)
|
||||||
chkLocked.Enabled = true;
|
chkLocked.Enabled = true;
|
||||||
else
|
else
|
||||||
|
|
|
@ -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.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -139,6 +111,15 @@ namespace WebsitePanel.Portal.HostedSolution {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Label lblUserPrincipalName;
|
protected global::System.Web.UI.WebControls.Label lblUserPrincipalName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// upn control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EmailAddress upn;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locDisplayName control.
|
/// locDisplayName control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue