UI plumbing change UPN

Fixed: ExchangeAccount Password stored unencrypted when setting primary email
address
This commit is contained in:
robvde 2012-11-23 18:42:11 +04:00
parent 95d0623ce3
commit 8a4159a0ff
9 changed files with 75 additions and 35 deletions

View file

@ -6956,4 +6956,11 @@ 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

View file

@ -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";

View file

@ -1817,7 +1817,8 @@ namespace WebsitePanel.EnterpriseServer
exchange.DisableMailbox(account.AccountName); exchange.DisableMailbox(account.AccountName);
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;

View file

@ -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);

View file

@ -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 -->

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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>