Added: Support for "@" and "*" records for enabled/disable dns and ip mode

switch. Only when only one site exists.

Fixed: Smartermail domain retrieval to handle records with same domain name

Fixed: Added not-domain dependendent services globaldnssupport upon space
or domain creation
This commit is contained in:
robvde 2012-10-25 13:35:07 +04:00
parent f067884ec4
commit aafb82015b
14 changed files with 839 additions and 313 deletions

View file

@ -5922,42 +5922,6 @@ GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'GetDomainByNameByPointer')
BEGIN
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[GetDomainByNameByPointer]
(
@ActorID int,
@DomainName nvarchar(100),
@IsDomainPointer bit
)
AS
SELECT
D.DomainID,
D.PackageID,
D.ZoneItemID,
D.DomainName,
D.HostingAllowed,
ISNULL(D.WebSiteID, 0) AS WebSiteID,
WS.ItemName AS WebSiteName,
ISNULL(D.MailDomainID, 0) AS MailDomainID,
MD.ItemName AS MailDomainName,
Z.ItemName AS ZoneName,
D.IsSubDomain,
D.IsInstantAlias,
D.IsDomainPointer
FROM Domains AS D
INNER JOIN Packages AS P ON D.PackageID = P.PackageID
LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID
LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID
LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID
WHERE
D.DomainName = @DomainName
AND D.IsDomainPointer = @IsDomainPointer
AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1
RETURN'
END
GO
@ -6169,3 +6133,286 @@ LEFT OUTER JOIN IPAddresses AS IP ON NR.IPAddressID = IP.AddressID
RETURN
GO
ALTER PROCEDURE [dbo].[GetDomainByName]
(
@ActorID int,
@DomainName nvarchar(100),
@SearchOnDomainPointer bit,
@IsDomainPointer bit
)
AS
IF (@SearchOnDomainPointer = 1)
BEGIN
SELECT
D.DomainID,
D.PackageID,
D.ZoneItemID,
D.DomainItemID,
D.DomainName,
D.HostingAllowed,
ISNULL(D.WebSiteID, 0) AS WebSiteID,
WS.ItemName AS WebSiteName,
ISNULL(D.MailDomainID, 0) AS MailDomainID,
MD.ItemName AS MailDomainName,
Z.ItemName AS ZoneName,
D.IsSubDomain,
D.IsInstantAlias,
D.IsDomainPointer
FROM Domains AS D
INNER JOIN Packages AS P ON D.PackageID = P.PackageID
LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID
LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID
LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID
WHERE
D.DomainName = @DomainName
AND D.IsDomainPointer = @IsDomainPointer
AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1
RETURN
END
ELSE
BEGIN
SELECT
D.DomainID,
D.PackageID,
D.ZoneItemID,
D.DomainItemID,
D.DomainName,
D.HostingAllowed,
ISNULL(D.WebSiteID, 0) AS WebSiteID,
WS.ItemName AS WebSiteName,
ISNULL(D.MailDomainID, 0) AS MailDomainID,
MD.ItemName AS MailDomainName,
Z.ItemName AS ZoneName,
D.IsSubDomain,
D.IsInstantAlias,
D.IsDomainPointer
FROM Domains AS D
INNER JOIN Packages AS P ON D.PackageID = P.PackageID
LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID
LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID
LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID
WHERE
D.DomainName = @DomainName
AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1
RETURN
END
GO
ALTER PROCEDURE [dbo].[GetDomain]
(
@ActorID int,
@DomainID int
)
AS
SELECT
D.DomainID,
D.PackageID,
D.ZoneItemID,
D.DomainItemID,
D.DomainName,
D.HostingAllowed,
ISNULL(WS.ItemID, 0) AS WebSiteID,
WS.ItemName AS WebSiteName,
ISNULL(MD.ItemID, 0) AS MailDomainID,
MD.ItemName AS MailDomainName,
Z.ItemName AS ZoneName,
D.IsSubDomain,
D.IsInstantAlias,
D.IsDomainPointer
FROM Domains AS D
INNER JOIN Packages AS P ON D.PackageID = P.PackageID
LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID
LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID
LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID
WHERE
D.DomainID = @DomainID
AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1
RETURN
GO
ALTER PROCEDURE [dbo].[GetDomains]
(
@ActorID int,
@PackageID int,
@Recursive bit = 1
)
AS
-- check rights
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
RAISERROR('You are not allowed to access this package', 16, 1)
SELECT
D.DomainID,
D.PackageID,
D.ZoneItemID,
D.DomainItemID,
D.DomainName,
D.HostingAllowed,
ISNULL(WS.ItemID, 0) AS WebSiteID,
WS.ItemName AS WebSiteName,
ISNULL(MD.ItemID, 0) AS MailDomainID,
MD.ItemName AS MailDomainName,
Z.ItemName AS ZoneName,
D.IsSubDomain,
D.IsInstantAlias,
D.IsDomainPointer
FROM Domains AS D
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON D.PackageID = PT.PackageID
LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID
LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID
LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID
RETURN
GO
ALTER PROCEDURE [dbo].[GetDomainsByZoneID]
(
@ActorID int,
@ZoneID int
)
AS
SELECT
D.DomainID,
D.PackageID,
D.ZoneItemID,
D.DomainItemID,
D.DomainName,
D.HostingAllowed,
ISNULL(D.WebSiteID, 0) AS WebSiteID,
WS.ItemName AS WebSiteName,
ISNULL(D.MailDomainID, 0) AS MailDomainID,
MD.ItemName AS MailDomainName,
Z.ItemName AS ZoneName,
D.IsSubDomain,
D.IsInstantAlias,
D.IsDomainPointer
FROM Domains AS D
INNER JOIN Packages AS P ON D.PackageID = P.PackageID
LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID
LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID
LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID
WHERE
D.ZoneItemID = @ZoneID
AND dbo.CheckActorPackageRights(@ActorID, P.PackageID) = 1
RETURN
GO
ALTER PROCEDURE [dbo].[GetDomainsPaged]
(
@ActorID int,
@PackageID int,
@ServerID int,
@Recursive bit,
@FilterColumn nvarchar(50) = '',
@FilterValue nvarchar(50) = '',
@SortColumn nvarchar(50),
@StartRow int,
@MaximumRows int
)
AS
SET NOCOUNT ON
-- check rights
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
RAISERROR('You are not allowed to access this package', 16, 1)
-- build query and run it to the temporary table
DECLARE @sql nvarchar(2000)
IF @SortColumn = '' OR @SortColumn IS NULL
SET @SortColumn = 'DomainName'
SET @sql = '
DECLARE @Domains TABLE
(
ItemPosition int IDENTITY(1,1),
DomainID int
)
INSERT INTO @Domains (DomainID)
SELECT
D.DomainID
FROM Domains AS D
INNER JOIN Packages AS P ON D.PackageID = P.PackageID
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID
LEFT OUTER JOIN Services AS S ON Z.ServiceID = S.ServiceID
LEFT OUTER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID
WHERE (D.IsInstantAlias = 0 AND D.IsDomainPointer = 0) AND
((@Recursive = 0 AND D.PackageID = @PackageID)
OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, D.PackageID) = 1))
AND (@ServerID = 0 OR (@ServerID > 0 AND S.ServerID = @ServerID))
'
IF @FilterColumn <> '' AND @FilterValue <> ''
SET @sql = @sql + ' AND ' + @FilterColumn + ' LIKE @FilterValue '
IF @SortColumn <> '' AND @SortColumn IS NOT NULL
SET @sql = @sql + ' ORDER BY ' + @SortColumn + ' '
SET @sql = @sql + ' SELECT COUNT(DomainID) FROM @Domains;SELECT
D.DomainID,
D.PackageID,
D.ZoneItemID,
D.DomainItemID,
D.DomainName,
D.HostingAllowed,
ISNULL(WS.ItemID, 0) AS WebSiteID,
WS.ItemName AS WebSiteName,
ISNULL(MD.ItemID, 0) AS MailDomainID,
MD.ItemName AS MailDomainName,
D.IsSubDomain,
D.IsInstantAlias,
D.IsDomainPointer,
-- packages
P.PackageName,
-- server
ISNULL(SRV.ServerID, 0) AS ServerID,
ISNULL(SRV.ServerName, '''') AS ServerName,
ISNULL(SRV.Comments, '''') AS ServerComments,
ISNULL(SRV.VirtualServer, 0) AS VirtualServer,
-- user
P.UserID,
U.Username,
U.FirstName,
U.LastName,
U.FullName,
U.RoleID,
U.Email
FROM @Domains AS SD
INNER JOIN Domains AS D ON SD.DomainID = D.DomainID
INNER JOIN Packages AS P ON D.PackageID = P.PackageID
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID
LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID
LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID
LEFT OUTER JOIN Services AS S ON Z.ServiceID = S.ServiceID
LEFT OUTER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID
WHERE SD.ItemPosition BETWEEN @StartRow + 1 AND @StartRow + @MaximumRows'
exec sp_executesql @sql, N'@StartRow int, @MaximumRows int, @PackageID int, @FilterValue nvarchar(50), @ServerID int, @Recursive bit',
@StartRow, @MaximumRows, @PackageID, @FilterValue, @ServerID, @Recursive
RETURN
GO

View file

@ -785,21 +785,14 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@domainId", domainId));
}
public static IDataReader GetDomainByName(int actorId, string domainName)
public static IDataReader GetDomainByName(int actorId, string domainName, bool searchOnDomainPointer, bool isDomainPointer)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "GetDomainByName",
new SqlParameter("@ActorId", actorId),
new SqlParameter("@domainName", domainName));
}
public static IDataReader GetDomainByNameByPointer(int actorId, string domainName, bool isDomainPointer)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "GetDomainByNameByPointer",
new SqlParameter("@ActorId", actorId),
new SqlParameter("@domainName", domainName),
new SqlParameter("@isDomainPointer", isDomainPointer));
new SqlParameter("@SearchOnDomainPointer", searchOnDomainPointer),
new SqlParameter("@IsDomainPointer", isDomainPointer));
}

View file

@ -1564,7 +1564,7 @@ namespace WebsitePanel.EnterpriseServer
{
if (domain.ZoneItemId != 0)
{
ServerController.RemoveServiceDNSRecords(org.PackageId, ResourceGroups.Exchange, domain, "");
ServerController.RemoveServiceDNSRecords(org.PackageId, ResourceGroups.Exchange, domain, "", false);
}
}

View file

@ -1051,7 +1051,7 @@ namespace WebsitePanel.EnterpriseServer
int itemId = PackageController.AddPackageItem(item);
// update related domain with a new pointer
DomainInfo domain = ServerController.GetDomain(item.Name);
DomainInfo domain = ServerController.GetDomain(item.Name, true, false);
if (domain != null)
{
domain.MailDomainId = itemId;
@ -1065,7 +1065,7 @@ namespace WebsitePanel.EnterpriseServer
if (!String.IsNullOrEmpty(domain.InstantAliasName))
{
// load instant alias
DomainInfo instantAlias = ServerController.GetDomainItem(domain.InstantAliasName);
DomainInfo instantAlias = ServerController.GetDomain(domain.InstantAliasId);
if (instantAlias != null)
{
AddMailDomainPointer(itemId, instantAlias.DomainId);
@ -1164,7 +1164,7 @@ namespace WebsitePanel.EnterpriseServer
PackageController.DeletePackageItem(origItem.Id);
// update related domain with a new pointer
DomainInfo domain = ServerController.GetDomain(origItem.Name);
DomainInfo domain = ServerController.GetDomain(origItem.Name, true, false);
if (domain != null)
{
domain.MailDomainId = 0;
@ -1487,7 +1487,7 @@ namespace WebsitePanel.EnterpriseServer
// add/update domains/pointers
foreach (string domainName in domains)
{
DomainInfo domain = ServerController.GetDomain(domainName);
DomainInfo domain = ServerController.GetDomain(domainName, true, false);
if (domain == null)
{
domain = new DomainInfo();

View file

@ -475,6 +475,16 @@ namespace WebsitePanel.EnterpriseServer
{
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Os, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Dns, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Ftp, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2000, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2012, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Statistics, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.VPS, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.VPSForPC, domain, "");
}
}

View file

@ -1651,13 +1651,16 @@ namespace WebsitePanel.EnterpriseServer
public static DomainInfo GetDomain(string domainName)
{
// get domain by name
DomainInfo domain = GetDomainItem(domainName);
// return
return GetDomain(domain);
return ObjectUtils.FillObjectFromDataReader<DomainInfo>(
DataProvider.GetDomainByName(SecurityContext.User.UserId, domainName,false, false));
}
public static DomainInfo GetDomain(string domainName, bool searchOnDomainPointer, bool isDomainPointer)
{
return GetDomainItem(domainName, searchOnDomainPointer, isDomainPointer);
}
private static DomainInfo GetDomain(DomainInfo domain)
{
// check domain
@ -1666,7 +1669,7 @@ namespace WebsitePanel.EnterpriseServer
// get instant alias
domain.InstantAliasName = GetDomainAlias(domain.PackageId, domain.DomainName);
DomainInfo instantAlias = GetDomainItem(domain.InstantAliasName);
DomainInfo instantAlias = GetDomainItem(domain.InstantAliasName, true, false);
if (instantAlias != null)
domain.InstantAliasId = instantAlias.DomainId;
@ -1681,17 +1684,16 @@ namespace WebsitePanel.EnterpriseServer
public static DomainInfo GetDomainItem(string domainName)
{
return ObjectUtils.FillObjectFromDataReader<DomainInfo>(
DataProvider.GetDomainByName(SecurityContext.User.UserId, domainName));
return GetDomainItem(domainName, false, false);
}
public static DomainInfo GetDomainItem(string domainName, bool IsDomainPointer)
public static DomainInfo GetDomainItem(string domainName, bool searchOnDomainPointer, bool isDomainPointer)
{
return ObjectUtils.FillObjectFromDataReader<DomainInfo>(
DataProvider.GetDomainByNameByPointer(SecurityContext.User.UserId, domainName, IsDomainPointer));
DataProvider.GetDomainByName(SecurityContext.User.UserId, domainName, searchOnDomainPointer, isDomainPointer));
}
public static string GetDomainAlias(int packageId, string domainName)
{
// load package settings
@ -1740,6 +1742,16 @@ namespace WebsitePanel.EnterpriseServer
{
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Os, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Dns, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Ftp, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2000, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2012, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Statistics, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.VPS, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.VPSForPC, domain, "");
}
}
@ -1912,6 +1924,11 @@ namespace WebsitePanel.EnterpriseServer
}
public static void AddServiceDNSRecords(int packageId, string groupName, DomainInfo domain, string serviceIP)
{
AddServiceDNSRecords(packageId, groupName, domain, serviceIP, false);
}
public static void AddServiceDNSRecords(int packageId, string groupName, DomainInfo domain, string serviceIP, bool wildcardOnly)
{
int serviceId = PackageController.GetPackageServiceId(packageId, groupName);
if (serviceId > 0)
@ -1919,6 +1936,19 @@ namespace WebsitePanel.EnterpriseServer
List<DnsRecord> tmpZoneRecords = new List<DnsRecord>();
List<GlobalDnsRecord> dnsRecords = ServerController.GetDnsRecordsByService(serviceId);
if (wildcardOnly)
{
List<GlobalDnsRecord> temp = new List<GlobalDnsRecord>();
foreach (GlobalDnsRecord d in dnsRecords)
{
if ((d.RecordName == "*") ||
(d.RecordName == "@"))
temp.Add(d);
}
dnsRecords = temp;
}
DnsZone zone = (DnsZone)PackageController.GetPackageItem(domain.ZoneItemId);
tmpZoneRecords.AddRange(DnsServerController.BuildDnsResourceRecords(dnsRecords, "", domain.ZoneName, serviceIP));
@ -1949,13 +1979,25 @@ namespace WebsitePanel.EnterpriseServer
public static void RemoveServiceDNSRecords(int packageId, string groupName, DomainInfo domain, string serviceIP)
public static void RemoveServiceDNSRecords(int packageId, string groupName, DomainInfo domain, string serviceIP, bool wildcardOnly)
{
int serviceId = PackageController.GetPackageServiceId(packageId, groupName);
if (serviceId > 0)
{
List<DnsRecord> zoneRecords = new List<DnsRecord>();
List<GlobalDnsRecord> dnsRecords = ServerController.GetDnsRecordsByService(serviceId);
if (wildcardOnly)
{
List<GlobalDnsRecord> temp = new List<GlobalDnsRecord>();
foreach (GlobalDnsRecord d in dnsRecords)
{
if ((d.RecordName == "*") ||
(d.RecordName == "@"))
temp.Add(d);
}
dnsRecords = temp;
}
DnsZone zone = (DnsZone)PackageController.GetPackageItem(domain.ZoneItemId);
zoneRecords.AddRange(DnsServerController.BuildDnsResourceRecords(dnsRecords, "", domain.ZoneName, serviceIP));
@ -2266,6 +2308,16 @@ namespace WebsitePanel.EnterpriseServer
switch (group.GroupName)
{
case ResourceGroups.Dns:
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Ftp, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2000, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2012, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Statistics, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.VPS, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.VPSForPC, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Dns, domain, "");
break;
case ResourceGroups.Os:
@ -2329,21 +2381,44 @@ namespace WebsitePanel.EnterpriseServer
List<WebSite> sites = WebServerController.GetWebSites(domain.PackageId, false);
foreach (WebSite w in sites)
{
if (w.SiteId.ToLower().Replace("." + domain.DomainName.ToLower(), "").IndexOf('.') == -1)
if ((w.SiteId.ToLower().Replace("." + domain.DomainName.ToLower(), "").IndexOf('.') == -1) ||
(w.SiteId.ToLower() == domain.DomainName.ToLower()))
{
WebServerController.AddWebSitePointer(w.Id, w.SiteId.ToLower().Replace("." + domain.DomainName.ToLower(), ""), domain.DomainId, false, true, true);
WebServerController.AddWebSitePointer( w.Id,
(w.SiteId.ToLower() == domain.DomainName.ToLower()) ? "" : w.SiteId.ToLower().Replace("." + domain.DomainName.ToLower(), ""),
domain.DomainId, false, true, true);
}
List<DomainInfo> pointers = WebServerController.GetWebSitePointers(w.Id);
foreach (DomainInfo pointer in pointers)
{
if (pointer.DomainName.ToLower().Replace("." + domain.DomainName.ToLower(), "").IndexOf('.') == -1)
if ((pointer.DomainName.ToLower().Replace("." + domain.DomainName.ToLower(), "").IndexOf('.') == -1)||
(pointer.DomainName.ToLower() == domain.DomainName.ToLower()))
{
WebServerController.AddWebSitePointer(w.Id, pointer.DomainName.ToLower().Replace("." + domain.DomainName.ToLower(), ""), domain.DomainId, false, true, true);
WebServerController.AddWebSitePointer( w.Id,
(pointer.DomainName.ToLower() == domain.DomainName.ToLower()) ? "" : pointer.DomainName.ToLower().Replace("." + domain.DomainName.ToLower(), ""),
domain.DomainId, false, true, true);
}
}
}
if (sites.Count == 1)
{
// load site item
IPAddressInfo ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
string serviceIp = (ip != null) ? ip.ExternalIP : null;
if (string.IsNullOrEmpty(serviceIp))
{
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
if (settings["PublicSharedIP"] != null)
serviceIp = settings["PublicSharedIP"].ToString();
}
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
}
break;
}
}
@ -2479,7 +2554,7 @@ namespace WebsitePanel.EnterpriseServer
try
{
// load instant alias domain
DomainInfo instantAlias = GetDomainItem(domain.InstantAliasName, false);
DomainInfo instantAlias = GetDomainItem(domain.InstantAliasName, true, false);
if (instantAlias == null)
return 0;

View file

@ -3778,7 +3778,7 @@ namespace WebsitePanel.EnterpriseServer
ret = vs.GetDeviceEvents(serviceInfo.ServerName, serviceProviderItem.Name);
}
catch(Exception ex)
catch(Exception )
{
ret = null;
}
@ -3804,7 +3804,7 @@ namespace WebsitePanel.EnterpriseServer
ret = vs.GetMonitoringAlerts(serviceInfo.ServerName, serviceProviderItem.Name);
}
catch (Exception ex)
catch (Exception )
{
ret = null;
}
@ -3832,7 +3832,7 @@ namespace WebsitePanel.EnterpriseServer
ret = vs.GetPerfomanceValue(serviceProviderItem.Name, perf, startPeriod, endPeriod);
}
catch (Exception ex)
catch (Exception )
{
ret = null;
}

View file

@ -651,7 +651,6 @@ namespace WebsitePanel.EnterpriseServer
addressId = packageIp.AddressID;
}
List<GlobalDnsRecord> dnsRecords = ServerController.GetDnsRecordsByService(siteItem.ServiceId);
foreach (GlobalDnsRecord d in dnsRecords)
@ -668,6 +667,8 @@ namespace WebsitePanel.EnterpriseServer
try
{
IPAddressInfo ip;
// remove all web site pointers
DomainInfo domain = ServerController.GetDomain(siteItem.Name);
DomainInfo ZoneInfo = ServerController.GetDomain(domain.ZoneName);
@ -709,6 +710,27 @@ namespace WebsitePanel.EnterpriseServer
}
List<WebSite> sites = WebServerController.GetWebSites(domain.PackageId, false);
bool oneSiteOnly = (sites.Count == 1);
if (oneSiteOnly)
{
// load site item
ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
string serviceIp = (ip != null) ? ip.ExternalIP : null;
if (string.IsNullOrEmpty(serviceIp))
{
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
if (settings["PublicSharedIP"] != null)
serviceIp = settings["PublicSharedIP"].ToString();
}
ServerController.RemoveServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
}
// update site item
siteItem.SiteIPAddressId = addressId;
PackageController.UpdatePackageItem(siteItem);
@ -731,7 +753,7 @@ namespace WebsitePanel.EnterpriseServer
}
// load web site IP address
IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
string ipAddr = "*";
if (ip != null)
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
@ -749,10 +771,27 @@ namespace WebsitePanel.EnterpriseServer
newBindings.Add(b);
}
web.UpdateSiteBindings(siteItem.SiteId, newBindings.ToArray(), false);
if (oneSiteOnly)
{
sites = WebServerController.GetWebSites(domain.PackageId, false);
// load site item
ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
string serviceIp = (ip != null) ? ip.ExternalIP : null;
if (string.IsNullOrEmpty(serviceIp))
{
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
if (settings["PublicSharedIP"] != null)
serviceIp = settings["PublicSharedIP"].ToString();
}
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
}
return 0;
}
catch (Exception ex)
@ -782,6 +821,8 @@ namespace WebsitePanel.EnterpriseServer
try
{
IPAddressInfo ip;
DomainInfo domain = ServerController.GetDomain(siteItem.Name);
DomainInfo ZoneInfo = ServerController.GetDomain(domain.ZoneName);
@ -825,6 +866,27 @@ namespace WebsitePanel.EnterpriseServer
}
List<WebSite> sites = WebServerController.GetWebSites(domain.PackageId, false);
bool oneSiteOnly = (sites.Count == 1);
if (oneSiteOnly)
{
// load site item
ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
string serviceIp = (ip != null) ? ip.ExternalIP : null;
if (string.IsNullOrEmpty(serviceIp))
{
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
if (settings["PublicSharedIP"] != null)
serviceIp = settings["PublicSharedIP"].ToString();
}
ServerController.RemoveServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
}
//figure out the PackageAddressId
PackageIPAddress packageIpAddress = null;
var siteIpAddresses = ServerController.GetItemIPAddresses(siteItemId, IPAddressPool.None);
@ -858,6 +920,26 @@ namespace WebsitePanel.EnterpriseServer
, ZoneInfo.DomainId, true, true, true);
}
if (oneSiteOnly)
{
sites = WebServerController.GetWebSites(domain.PackageId, false);
// load site item
ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
string serviceIp = (ip != null) ? ip.ExternalIP : null;
if (string.IsNullOrEmpty(serviceIp))
{
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
if (settings["PublicSharedIP"] != null)
serviceIp = settings["PublicSharedIP"].ToString();
}
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
}
return 0;
}
catch (Exception ex)
@ -1178,6 +1260,18 @@ namespace WebsitePanel.EnterpriseServer
}
}
}
else
{
if (domain.ZoneItemId > 0)
{
DomainInfo domainTmp = ServerController.GetDomain(string.IsNullOrEmpty(hostName) ? domain.DomainName : hostName + "." + domain.DomainName, true, true);
if (domainTmp != null)
{
domainTmp.ZoneItemId = domain.ZoneItemId;
ServerController.UpdateDomain(domainTmp);
}
}
}
return 0;
}

View file

@ -5,11 +5,19 @@
</configSections>
<!-- Connection strings -->
<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>
<appSettings>
<!-- Encryption util settings -->
<add key="WebsitePanel.CryptoKey" value="1234567890" />
<!-- A1D4KDHUE83NKHddF -->
<!--
<add key="WebsitePanel.CryptoKey" value="3x7eqt7zabc5n5afs6dg" />
<add key="WebsitePanel.CryptoKey" value="fr2ym4wn2gmbrj7dz336" />
-->
<add key="WebsitePanel.CryptoKey" value="3x7eqt7zabc5n5afs6dg" />
<!-- A1D4KDHUE83NKHddF -->
<add key="WebsitePanel.EncryptionEnabled" value="true" />
<!-- Web Applications -->

View file

@ -518,6 +518,12 @@ namespace WebsitePanel.EnterpriseServer
return ServerController.GetDomains(packageId);
}
[WebMethod]
public List<DomainInfo> GetDomainsByDomainId(int domainId)
{
return ServerController.GetDomainsByDomainItemId(domainId);
}
[WebMethod]
public List<DomainInfo> GetMyDomains(int packageId)
{

View file

@ -121,9 +121,18 @@ namespace WebsitePanel.Portal
// load instant alias
DomainInfo instantAlias = ES.Services.Servers.GetDomain(domain.InstantAliasId);
WebSiteAliasPanel.Visible = false;
if (instantAlias != null)
{
WebSiteAliasPanel.Visible = (instantAlias.WebSiteId > 0);
DomainInfo[] Domains = ES.Services.Servers.GetDomainsByDomainId(domain.InstantAliasId);
foreach (DomainInfo d in Domains)
{
if (d.WebSiteId > 0)
{
WebSiteAliasPanel.Visible = true;
}
}
MailDomainAliasPanel.Visible = (instantAlias.MailDomainId > 0);
}

View file

@ -165,7 +165,17 @@ namespace WebsitePanel.Portal
(resourceGroup.GroupName == ResourceGroups.Lync)|
(resourceGroup.GroupName == ResourceGroups.Exchange)|
(resourceGroup.GroupName == ResourceGroups.Web)|
(resourceGroup.GroupName == ResourceGroups.Dns));
(resourceGroup.GroupName == ResourceGroups.Dns)|
(resourceGroup.GroupName == ResourceGroups.Ftp)|
(resourceGroup.GroupName == ResourceGroups.MsSql2000)|
(resourceGroup.GroupName == ResourceGroups.MsSql2005)|
(resourceGroup.GroupName == ResourceGroups.MsSql2008)|
(resourceGroup.GroupName == ResourceGroups.MsSql2012)|
(resourceGroup.GroupName == ResourceGroups.MySql4)|
(resourceGroup.GroupName == ResourceGroups.MySql5)|
(resourceGroup.GroupName == ResourceGroups.Statistics)|
(resourceGroup.GroupName == ResourceGroups.VPS)|
(resourceGroup.GroupName == ResourceGroups.VPSForPC));
}

View file

@ -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
%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%/esOrganizations.asmx /out:.\WebsitePanel.EnterpriseServer.Client\OrganizationProxy.cs /namespace:WebsitePanel.EnterpriseServer.HostedSolution /type:webClient
REM %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
@ -65,8 +65,8 @@ REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\PackagesProxy.cs
REM %WSDL% %SERVER_URL%/esScheduler.asmx /out:.\WebsitePanel.EnterpriseServer.Client\SchedulerProxy.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient
REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\SchedulerProxy.cs
REM %WSDL% %SERVER_URL%/esServers.asmx /out:.\WebsitePanel.EnterpriseServer.Client\ServersProxy.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient
REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\ServersProxy.cs
%WSDL% %SERVER_URL%/esServers.asmx /out:.\WebsitePanel.EnterpriseServer.Client\ServersProxy.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient
%WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\ServersProxy.cs
REM %WSDL% %SERVER_URL%/esSharePointServers.asmx /out:.\WebsitePanel.EnterpriseServer.Client\SharePointServersProxy.cs /namespace:WebsitePanel.EnterpriseServer /type:webClient
REM %WSE_CLEAN% .\WebsitePanel.EnterpriseServer.Client\SharePointServersProxy.cs