Fixed: Do not allow to delete a domain when used by hosting organization objects

This commit is contained in:
robvde 2012-11-23 15:54:47 +04:00
parent 18a4608ad2
commit 3e8a53a468
8 changed files with 64 additions and 5 deletions

View file

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

View file

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

View file

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

View file

@ -2896,6 +2896,9 @@
<data name="ServiceItemType.Organization" xml:space="preserve">
<value>Hosted Organization</value>
</data>
<data name="Error.EXCHANGE_UNABLE_TO_DELETE_DOMAIN" xml:space="preserve">
<value>Unable to delete domain, verify if domain is in use by hosted organization objects.</value>
</data>
<data name="Error.EXCHANGE_CREATE_MAILBOX" xml:space="preserve">
<value>Error creating mailbox. See audit log for more details.</value>
</data>
@ -5072,6 +5075,9 @@
<data name="Error.DELETE_LYNC_USER" xml:space="preserve">
<value>Cannot delete Lync User, the following errors have been occured:</value>
</data>
<data name="Error.LYNC_UNABLE_TO_ADD_PLAN" xml:space="preserve">
<value>Unabled to add plan</value>
</data>
<data name="Success.UPDATE_LYNC_USER" xml:space="preserve">
<value>General Lync User settings have been successfully updated.</value>
</data>

View file

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

View file

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

View file

@ -158,6 +158,7 @@ namespace WebsitePanel.Portal.Lync
if (result < 0)
{
messageBox.ShowResultMessage(result);
messageBox.ShowErrorMessage("LYNC_UNABLE_TO_ADD_PLAN");
return;
}