Merge commit
This commit is contained in:
commit
84a89d1d0a
83 changed files with 3190 additions and 445 deletions
|
@ -4506,10 +4506,879 @@ GO
|
|||
UPDATE [dbo].[ScheduleTaskParameters] SET [DefaultValue]= N'MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MsSQL2012=SQL Server 2012;MsSQL2014=SQL Server 2014;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0' WHERE [TaskID]= 'SCHEDULE_TASK_BACKUP_DATABASE' AND [ParameterID]='DATABASE_GROUP'
|
||||
GO
|
||||
|
||||
/*SUPPORT SERVICE LEVELS*/
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = 'Service Levels')
|
||||
BEGIN
|
||||
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController], [ShowGroup]) VALUES (47, N'Service Levels', 2, NULL, 1)
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'SupportServiceLevels')
|
||||
CREATE TABLE SupportServiceLevels
|
||||
(
|
||||
[LevelID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
||||
[LevelName] NVARCHAR(100) NOT NULL,
|
||||
[LevelDescription] NVARCHAR(1000) NULL
|
||||
)
|
||||
GO
|
||||
|
||||
IF NOT EXISTS(select 1 from sys.columns COLS INNER JOIN sys.objects OBJS ON OBJS.object_id=COLS.object_id and OBJS.type='U' AND OBJS.name='ExchangeAccounts' AND COLS.name='LevelID')
|
||||
ALTER TABLE [dbo].[ExchangeAccounts] ADD
|
||||
[LevelID] [int] NULL,
|
||||
[IsVIP] [bit] NOT NULL DEFAULT 0
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetSupportServiceLevels')
|
||||
DROP PROCEDURE GetSupportServiceLevels
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetSupportServiceLevels]
|
||||
AS
|
||||
SELECT *
|
||||
FROM SupportServiceLevels
|
||||
RETURN
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetSupportServiceLevel')
|
||||
DROP PROCEDURE GetSupportServiceLevel
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetSupportServiceLevel]
|
||||
(
|
||||
@LevelID int
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM SupportServiceLevels
|
||||
WHERE LevelID = @LevelID
|
||||
RETURN
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddSupportServiceLevel')
|
||||
DROP PROCEDURE AddSupportServiceLevel
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[AddSupportServiceLevel]
|
||||
(
|
||||
@LevelID int OUTPUT,
|
||||
@LevelName nvarchar(100),
|
||||
@LevelDescription nvarchar(1000)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
IF EXISTS (SELECT * FROM SupportServiceLevels WHERE LevelName = @LevelName)
|
||||
BEGIN
|
||||
SET @LevelID = -1
|
||||
|
||||
RETURN
|
||||
END
|
||||
|
||||
INSERT INTO SupportServiceLevels
|
||||
(
|
||||
LevelName,
|
||||
LevelDescription
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@LevelName,
|
||||
@LevelDescription
|
||||
)
|
||||
|
||||
SET @LevelID = SCOPE_IDENTITY()
|
||||
|
||||
DECLARE @ResourseGroupID int
|
||||
|
||||
IF EXISTS (SELECT * FROM ResourceGroups WHERE GroupName = 'Service Levels')
|
||||
BEGIN
|
||||
DECLARE @QuotaLastID int, @CurQuotaName nvarchar(100),
|
||||
@CurQuotaDescription nvarchar(1000), @QuotaOrderInGroup int
|
||||
|
||||
SET @CurQuotaName = N'ServiceLevel.' + @LevelName
|
||||
SET @CurQuotaDescription = @LevelName + N', users'
|
||||
|
||||
SELECT @ResourseGroupID = GroupID FROM ResourceGroups WHERE GroupName = 'Service Levels'
|
||||
|
||||
SELECT @QuotaLastID = MAX(QuotaID) FROM Quotas
|
||||
|
||||
SELECT @QuotaOrderInGroup = MAX(QuotaOrder) FROM Quotas WHERE GroupID = @ResourseGroupID
|
||||
|
||||
IF @QuotaOrderInGroup IS NULL SET @QuotaOrderInGroup = 0
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM Quotas WHERE QuotaName = @CurQuotaName)
|
||||
BEGIN
|
||||
INSERT Quotas
|
||||
(QuotaID,
|
||||
GroupID,
|
||||
QuotaOrder,
|
||||
QuotaName,
|
||||
QuotaDescription,
|
||||
QuotaTypeID,
|
||||
ServiceQuota,
|
||||
ItemTypeID)
|
||||
VALUES
|
||||
(@QuotaLastID + 1,
|
||||
@ResourseGroupID,
|
||||
@QuotaOrderInGroup + 1,
|
||||
@CurQuotaName,
|
||||
@CurQuotaDescription,
|
||||
2,
|
||||
0,
|
||||
NULL)
|
||||
END
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
RETURN
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteSupportServiceLevel')
|
||||
DROP PROCEDURE DeleteSupportServiceLevel
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[DeleteSupportServiceLevel]
|
||||
(
|
||||
@LevelID int
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @LevelName nvarchar(100), @QuotaName nvarchar(100), @QuotaID int
|
||||
|
||||
SELECT @LevelName = LevelName FROM SupportServiceLevels WHERE LevelID = @LevelID
|
||||
|
||||
SET @QuotaName = N'ServiceLevel.' + @LevelName
|
||||
|
||||
SELECT @QuotaID = QuotaID FROM Quotas WHERE QuotaName = @QuotaName
|
||||
|
||||
IF @QuotaID IS NOT NULL
|
||||
BEGIN
|
||||
DELETE FROM HostingPlanQuotas WHERE QuotaID = @QuotaID
|
||||
DELETE FROM PackageQuotas WHERE QuotaID = @QuotaID
|
||||
DELETE FROM Quotas WHERE QuotaID = @QuotaID
|
||||
END
|
||||
|
||||
IF EXISTS (SELECT * FROM ExchangeAccounts WHERE LevelID = @LevelID)
|
||||
UPDATE ExchangeAccounts
|
||||
SET LevelID = NULL
|
||||
WHERE LevelID = @LevelID
|
||||
|
||||
DELETE FROM SupportServiceLevels WHERE LevelID = @LevelID
|
||||
|
||||
END
|
||||
|
||||
RETURN
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateSupportServiceLevel')
|
||||
DROP PROCEDURE UpdateSupportServiceLevel
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[UpdateSupportServiceLevel]
|
||||
(
|
||||
@LevelID int,
|
||||
@LevelName nvarchar(100),
|
||||
@LevelDescription nvarchar(1000)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @PrevQuotaName nvarchar(100), @PrevLevelName nvarchar(100)
|
||||
|
||||
SELECT @PrevLevelName = LevelName FROM SupportServiceLevels WHERE LevelID = @LevelID
|
||||
|
||||
SET @PrevQuotaName = N'ServiceLevel.' + @PrevLevelName
|
||||
|
||||
UPDATE SupportServiceLevels
|
||||
SET LevelName = @LevelName,
|
||||
LevelDescription = @LevelDescription
|
||||
WHERE LevelID = @LevelID
|
||||
|
||||
IF EXISTS (SELECT * FROM Quotas WHERE QuotaName = @PrevQuotaName)
|
||||
BEGIN
|
||||
DECLARE @QuotaID INT
|
||||
|
||||
SELECT @QuotaID = QuotaID FROM Quotas WHERE QuotaName = @PrevQuotaName
|
||||
|
||||
UPDATE Quotas
|
||||
SET QuotaName = N'ServiceLevel.' + @LevelName,
|
||||
QuotaDescription = @LevelName + ', users'
|
||||
WHERE QuotaID = @QuotaID
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
RETURN
|
||||
GO
|
||||
|
||||
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type IN ('FN', 'IF', 'TF') AND name = 'GetPackageServiceLevelResource')
|
||||
DROP FUNCTION GetPackageServiceLevelResource
|
||||
GO
|
||||
|
||||
CREATE FUNCTION dbo.GetPackageServiceLevelResource
|
||||
(
|
||||
@PackageID int,
|
||||
@GroupID int,
|
||||
@ServerID int
|
||||
)
|
||||
RETURNS bit
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM dbo.ResourceGroups WHERE GroupID = @GroupID AND GroupName = 'Service Levels')
|
||||
RETURN 0
|
||||
|
||||
IF @PackageID IS NULL
|
||||
RETURN 1
|
||||
|
||||
DECLARE @Result bit
|
||||
SET @Result = 1 -- enabled
|
||||
|
||||
DECLARE @PID int, @ParentPackageID int
|
||||
SET @PID = @PackageID
|
||||
|
||||
DECLARE @OverrideQuotas bit
|
||||
|
||||
IF @ServerID IS NULL OR @ServerID = 0
|
||||
SELECT @ServerID = ServerID FROM Packages
|
||||
WHERE PackageID = @PackageID
|
||||
|
||||
WHILE 1 = 1
|
||||
BEGIN
|
||||
|
||||
DECLARE @GroupEnabled int
|
||||
|
||||
-- get package info
|
||||
SELECT
|
||||
@ParentPackageID = ParentPackageID,
|
||||
@OverrideQuotas = OverrideQuotas
|
||||
FROM Packages WHERE PackageID = @PID
|
||||
|
||||
-- check if this is a root 'System' package
|
||||
SET @GroupEnabled = 1 -- enabled
|
||||
IF @ParentPackageID IS NULL
|
||||
BEGIN
|
||||
|
||||
IF @ServerID = 0
|
||||
RETURN 0
|
||||
ELSE IF @PID = -1
|
||||
RETURN 1
|
||||
ELSE IF @ServerID IS NULL
|
||||
RETURN 1
|
||||
ELSE IF @ServerID > 0
|
||||
RETURN 1
|
||||
ELSE RETURN 0
|
||||
END
|
||||
ELSE -- parentpackage is not null
|
||||
BEGIN
|
||||
-- check the current package
|
||||
IF @OverrideQuotas = 1
|
||||
BEGIN
|
||||
IF NOT EXISTS(
|
||||
SELECT GroupID FROM PackageResources WHERE GroupID = @GroupID AND PackageID = @PID
|
||||
)
|
||||
SET @GroupEnabled = 0
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
IF NOT EXISTS(
|
||||
SELECT HPR.GroupID FROM Packages AS P
|
||||
INNER JOIN HostingPlanResources AS HPR ON P.PlanID = HPR.PlanID
|
||||
WHERE HPR.GroupID = @GroupID AND P.PackageID = @PID
|
||||
)
|
||||
SET @GroupEnabled = 0
|
||||
END
|
||||
|
||||
-- check addons
|
||||
IF EXISTS(
|
||||
SELECT HPR.GroupID FROM PackageAddons AS PA
|
||||
INNER JOIN HostingPlanResources AS HPR ON PA.PlanID = HPR.PlanID
|
||||
WHERE HPR.GroupID = @GroupID AND PA.PackageID = @PID
|
||||
AND PA.StatusID = 1 -- active add-on
|
||||
)
|
||||
SET @GroupEnabled = 1
|
||||
END
|
||||
|
||||
IF @GroupEnabled = 0
|
||||
RETURN 0
|
||||
|
||||
SET @PID = @ParentPackageID
|
||||
|
||||
END -- end while
|
||||
|
||||
RETURN @Result
|
||||
END
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetPackageQuotasForEdit]
|
||||
(
|
||||
@ActorID int,
|
||||
@PackageID int
|
||||
)
|
||||
AS
|
||||
|
||||
-- check rights
|
||||
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||
|
||||
DECLARE @ServerID int, @ParentPackageID int, @PlanID int
|
||||
SELECT @ServerID = ServerID, @ParentPackageID = ParentPackageID, @PlanID = PlanID FROM Packages
|
||||
WHERE PackageID = @PackageID
|
||||
|
||||
-- get resource groups
|
||||
SELECT
|
||||
RG.GroupID,
|
||||
RG.GroupName,
|
||||
ISNULL(PR.CalculateDiskSpace, ISNULL(HPR.CalculateDiskSpace, 0)) AS CalculateDiskSpace,
|
||||
ISNULL(PR.CalculateBandwidth, ISNULL(HPR.CalculateBandwidth, 0)) AS CalculateBandwidth,
|
||||
--dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, @ServerID) AS Enabled,
|
||||
CASE
|
||||
WHEN RG.GroupName = 'Service Levels' THEN dbo.GetPackageServiceLevelResource(PackageID, RG.GroupID, @ServerID)
|
||||
ELSE dbo.GetPackageAllocatedResource(PackageID, RG.GroupID, @ServerID)
|
||||
END AS Enabled,
|
||||
--dbo.GetPackageAllocatedResource(@ParentPackageID, RG.GroupID, @ServerID) AS ParentEnabled
|
||||
CASE
|
||||
WHEN RG.GroupName = 'Service Levels' THEN dbo.GetPackageServiceLevelResource(@ParentPackageID, RG.GroupID, @ServerID)
|
||||
ELSE dbo.GetPackageAllocatedResource(@ParentPackageID, RG.GroupID, @ServerID)
|
||||
END AS ParentEnabled
|
||||
FROM ResourceGroups AS RG
|
||||
LEFT OUTER JOIN PackageResources AS PR ON RG.GroupID = PR.GroupID AND PR.PackageID = @PackageID
|
||||
LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID
|
||||
ORDER BY RG.GroupOrder
|
||||
|
||||
|
||||
-- return quotas
|
||||
SELECT
|
||||
Q.QuotaID,
|
||||
Q.GroupID,
|
||||
Q.QuotaName,
|
||||
Q.QuotaDescription,
|
||||
Q.QuotaTypeID,
|
||||
CASE
|
||||
WHEN PQ.QuotaValue IS NULL THEN dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID)
|
||||
ELSE PQ.QuotaValue
|
||||
END QuotaValue,
|
||||
dbo.GetPackageAllocatedQuota(@ParentPackageID, Q.QuotaID) AS ParentQuotaValue
|
||||
FROM Quotas AS Q
|
||||
LEFT OUTER JOIN PackageQuotas AS PQ ON PQ.QuotaID = Q.QuotaID AND PQ.PackageID = @PackageID
|
||||
ORDER BY Q.QuotaOrder
|
||||
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetPackageQuotas]
|
||||
(
|
||||
@ActorID int,
|
||||
@PackageID int
|
||||
)
|
||||
AS
|
||||
|
||||
-- check rights
|
||||
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||
|
||||
DECLARE @PlanID int, @ParentPackageID int
|
||||
SELECT @PlanID = PlanID, @ParentPackageID = ParentPackageID FROM Packages
|
||||
WHERE PackageID = @PackageID
|
||||
|
||||
-- get resource groups
|
||||
SELECT
|
||||
RG.GroupID,
|
||||
RG.GroupName,
|
||||
ISNULL(HPR.CalculateDiskSpace, 0) AS CalculateDiskSpace,
|
||||
ISNULL(HPR.CalculateBandwidth, 0) AS CalculateBandwidth,
|
||||
--dbo.GetPackageAllocatedResource(@ParentPackageID, RG.GroupID, 0) AS ParentEnabled
|
||||
CASE
|
||||
WHEN RG.GroupName = 'Service Levels' THEN dbo.GetPackageServiceLevelResource(@ParentPackageID, RG.GroupID, 0)
|
||||
ELSE dbo.GetPackageAllocatedResource(@ParentPackageID, RG.GroupID, 0)
|
||||
END AS ParentEnabled
|
||||
FROM ResourceGroups AS RG
|
||||
LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID
|
||||
--WHERE dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, 0) = 1
|
||||
WHERE (dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, 0) = 1 AND RG.GroupName <> 'Service Levels') OR
|
||||
(dbo.GetPackageServiceLevelResource(@PackageID, RG.GroupID, 0) = 1 AND RG.GroupName = 'Service Levels')
|
||||
ORDER BY RG.GroupOrder
|
||||
|
||||
|
||||
-- return quotas
|
||||
SELECT
|
||||
Q.QuotaID,
|
||||
Q.GroupID,
|
||||
Q.QuotaName,
|
||||
Q.QuotaDescription,
|
||||
Q.QuotaTypeID,
|
||||
dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID) AS QuotaValue,
|
||||
dbo.GetPackageAllocatedQuota(@ParentPackageID, Q.QuotaID) AS ParentQuotaValue,
|
||||
ISNULL(dbo.CalculateQuotaUsage(@PackageID, Q.QuotaID), 0) AS QuotaUsedValue
|
||||
FROM Quotas AS Q
|
||||
WHERE Q.HideQuota IS NULL OR Q.HideQuota = 0
|
||||
ORDER BY Q.QuotaOrder
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetHostingPlanQuotas]
|
||||
(
|
||||
@ActorID int,
|
||||
@PlanID int,
|
||||
@PackageID int,
|
||||
@ServerID int
|
||||
)
|
||||
AS
|
||||
|
||||
-- check rights
|
||||
IF dbo.CheckActorParentPackageRights(@ActorID, @PackageID) = 0
|
||||
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||
|
||||
DECLARE @IsAddon bit
|
||||
|
||||
IF @ServerID = 0
|
||||
SELECT @ServerID = ServerID FROM Packages
|
||||
WHERE PackageID = @PackageID
|
||||
|
||||
-- get resource groups
|
||||
SELECT
|
||||
RG.GroupID,
|
||||
RG.GroupName,
|
||||
CASE
|
||||
WHEN HPR.CalculateDiskSpace IS NULL THEN CAST(0 as bit)
|
||||
ELSE CAST(1 as bit)
|
||||
END AS Enabled,
|
||||
--dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, @ServerID) AS ParentEnabled,
|
||||
CASE
|
||||
WHEN RG.GroupName = 'Service Levels' THEN dbo.GetPackageServiceLevelResource(@PackageID, RG.GroupID, @ServerID)
|
||||
ELSE dbo.GetPackageAllocatedResource(@PackageID, RG.GroupID, @ServerID)
|
||||
END AS ParentEnabled,
|
||||
ISNULL(HPR.CalculateDiskSpace, 1) AS CalculateDiskSpace,
|
||||
ISNULL(HPR.CalculateBandwidth, 1) AS CalculateBandwidth
|
||||
FROM ResourceGroups AS RG
|
||||
LEFT OUTER JOIN HostingPlanResources AS HPR ON RG.GroupID = HPR.GroupID AND HPR.PlanID = @PlanID
|
||||
WHERE (RG.ShowGroup = 1)
|
||||
ORDER BY RG.GroupOrder
|
||||
|
||||
-- get quotas by groups
|
||||
SELECT
|
||||
Q.QuotaID,
|
||||
Q.GroupID,
|
||||
Q.QuotaName,
|
||||
Q.QuotaDescription,
|
||||
Q.QuotaTypeID,
|
||||
ISNULL(HPQ.QuotaValue, 0) AS QuotaValue,
|
||||
dbo.GetPackageAllocatedQuota(@PackageID, Q.QuotaID) AS ParentQuotaValue
|
||||
FROM Quotas AS Q
|
||||
LEFT OUTER JOIN HostingPlanQuotas AS HPQ ON Q.QuotaID = HPQ.QuotaID AND HPQ.PlanID = @PlanID
|
||||
WHERE Q.HideQuota IS NULL OR Q.HideQuota = 0
|
||||
ORDER BY Q.QuotaOrder
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[SearchOrganizationAccounts]
|
||||
(
|
||||
@ActorID int,
|
||||
@ItemID int,
|
||||
@FilterColumn nvarchar(50) = '',
|
||||
@FilterValue nvarchar(50) = '',
|
||||
@SortColumn nvarchar(50),
|
||||
@IncludeMailboxes bit
|
||||
)
|
||||
AS
|
||||
DECLARE @PackageID int
|
||||
SELECT @PackageID = PackageID FROM ServiceItems
|
||||
WHERE ItemID = @ItemID
|
||||
|
||||
-- check rights
|
||||
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||
|
||||
-- start
|
||||
DECLARE @condition nvarchar(700)
|
||||
SET @condition = '
|
||||
(EA.AccountType = 7 OR (EA.AccountType = 1 AND @IncludeMailboxes = 1) )
|
||||
AND EA.ItemID = @ItemID
|
||||
'
|
||||
|
||||
IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL
|
||||
AND @FilterValue <> '' AND @FilterValue IS NOT NULL
|
||||
SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + ''''
|
||||
|
||||
IF @SortColumn IS NULL OR @SortColumn = ''
|
||||
SET @SortColumn = 'EA.DisplayName ASC'
|
||||
|
||||
DECLARE @sql nvarchar(3500)
|
||||
|
||||
set @sql = '
|
||||
SELECT
|
||||
EA.AccountID,
|
||||
EA.ItemID,
|
||||
EA.AccountType,
|
||||
EA.AccountName,
|
||||
EA.DisplayName,
|
||||
EA.PrimaryEmailAddress,
|
||||
EA.SubscriberNumber,
|
||||
EA.UserPrincipalName,
|
||||
EA.LevelID,
|
||||
EA.IsVIP
|
||||
FROM ExchangeAccounts AS EA
|
||||
WHERE ' + @condition
|
||||
|
||||
print @sql
|
||||
|
||||
exec sp_executesql @sql, N'@ItemID int, @IncludeMailboxes bit',
|
||||
@ItemID, @IncludeMailboxes
|
||||
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetExchangeAccount]
|
||||
(
|
||||
@ItemID int,
|
||||
@AccountID int
|
||||
)
|
||||
AS
|
||||
SELECT
|
||||
E.AccountID,
|
||||
E.ItemID,
|
||||
E.AccountType,
|
||||
E.AccountName,
|
||||
E.DisplayName,
|
||||
E.PrimaryEmailAddress,
|
||||
E.MailEnabledPublicFolder,
|
||||
E.MailboxManagerActions,
|
||||
E.SamAccountName,
|
||||
E.AccountPassword,
|
||||
E.MailboxPlanId,
|
||||
P.MailboxPlan,
|
||||
E.SubscriberNumber,
|
||||
E.UserPrincipalName,
|
||||
E.ArchivingMailboxPlanId,
|
||||
AP.MailboxPlan as 'ArchivingMailboxPlan',
|
||||
E.EnableArchiving,
|
||||
E.LevelID,
|
||||
E.IsVIP
|
||||
FROM
|
||||
ExchangeAccounts AS E
|
||||
LEFT OUTER JOIN ExchangeMailboxPlans AS P ON E.MailboxPlanId = P.MailboxPlanId
|
||||
LEFT OUTER JOIN ExchangeMailboxPlans AS AP ON E.ArchivingMailboxPlanId = AP.MailboxPlanId
|
||||
WHERE
|
||||
E.ItemID = @ItemID AND
|
||||
E.AccountID = @AccountID
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetExchangeAccountsPaged]
|
||||
(
|
||||
@ActorID int,
|
||||
@ItemID int,
|
||||
@AccountTypes nvarchar(30),
|
||||
@FilterColumn nvarchar(50) = '',
|
||||
@FilterValue nvarchar(50) = '',
|
||||
@SortColumn nvarchar(50),
|
||||
@StartRow int,
|
||||
@MaximumRows int,
|
||||
@Archiving bit
|
||||
)
|
||||
AS
|
||||
|
||||
DECLARE @PackageID int
|
||||
SELECT @PackageID = PackageID FROM ServiceItems
|
||||
WHERE ItemID = @ItemID
|
||||
|
||||
-- check rights
|
||||
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||
|
||||
-- start
|
||||
DECLARE @condition nvarchar(700)
|
||||
SET @condition = '
|
||||
EA.AccountType IN (' + @AccountTypes + ')
|
||||
AND EA.ItemID = @ItemID
|
||||
'
|
||||
|
||||
IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL
|
||||
AND @FilterValue <> '' AND @FilterValue IS NOT NULL
|
||||
BEGIN
|
||||
IF @FilterColumn = 'PrimaryEmailAddress' AND @AccountTypes <> '2'
|
||||
BEGIN
|
||||
SET @condition = @condition + ' AND EA.AccountID IN (SELECT EAEA.AccountID FROM ExchangeAccountEmailAddresses EAEA WHERE EAEA.EmailAddress LIKE ''' + @FilterValue + ''')'
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + ''''
|
||||
END
|
||||
END
|
||||
|
||||
if @Archiving = 1
|
||||
BEGIN
|
||||
SET @condition = @condition + ' AND (EA.ArchivingMailboxPlanId > 0) '
|
||||
END
|
||||
|
||||
IF @SortColumn IS NULL OR @SortColumn = ''
|
||||
SET @SortColumn = 'EA.DisplayName ASC'
|
||||
|
||||
DECLARE @joincondition nvarchar(700)
|
||||
SET @joincondition = ',P.MailboxPlan FROM ExchangeAccounts AS EA
|
||||
LEFT OUTER JOIN ExchangeMailboxPlans AS P ON EA.MailboxPlanId = P.MailboxPlanId'
|
||||
|
||||
DECLARE @sql nvarchar(3500)
|
||||
|
||||
set @sql = '
|
||||
SELECT COUNT(EA.AccountID) FROM ExchangeAccounts AS EA
|
||||
WHERE ' + @condition + ';
|
||||
|
||||
WITH Accounts AS (
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row,
|
||||
EA.AccountID,
|
||||
EA.ItemID,
|
||||
EA.AccountType,
|
||||
EA.AccountName,
|
||||
EA.DisplayName,
|
||||
EA.PrimaryEmailAddress,
|
||||
EA.MailEnabledPublicFolder,
|
||||
EA.MailboxPlanId,
|
||||
EA.SubscriberNumber,
|
||||
EA.UserPrincipalName,
|
||||
EA.LevelID,
|
||||
EA.IsVIP ' + @joincondition +
|
||||
' WHERE ' + @condition + '
|
||||
)
|
||||
|
||||
SELECT * FROM Accounts
|
||||
WHERE Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows
|
||||
'
|
||||
|
||||
print @sql
|
||||
|
||||
exec sp_executesql @sql, N'@ItemID int, @StartRow int, @MaximumRows int',
|
||||
@ItemID, @StartRow, @MaximumRows
|
||||
|
||||
RETURN
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateExchangeAccountSLSettings')
|
||||
DROP PROCEDURE UpdateExchangeAccountSLSettings
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[UpdateExchangeAccountSLSettings]
|
||||
(
|
||||
@AccountID int,
|
||||
@LevelID int,
|
||||
@IsVIP bit
|
||||
)
|
||||
AS
|
||||
|
||||
BEGIN TRAN
|
||||
|
||||
IF (@LevelID = -1)
|
||||
BEGIN
|
||||
SET @LevelID = NULL
|
||||
END
|
||||
|
||||
UPDATE ExchangeAccounts SET
|
||||
LevelID = @LevelID,
|
||||
IsVIP = @IsVIP
|
||||
WHERE
|
||||
AccountID = @AccountID
|
||||
|
||||
IF (@@ERROR <> 0 )
|
||||
BEGIN
|
||||
ROLLBACK TRANSACTION
|
||||
RETURN -1
|
||||
END
|
||||
COMMIT TRAN
|
||||
RETURN
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'CheckServiceLevelUsage')
|
||||
DROP PROCEDURE CheckServiceLevelUsage
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[CheckServiceLevelUsage]
|
||||
(
|
||||
@LevelID int
|
||||
)
|
||||
AS
|
||||
SELECT COUNT(EA.AccountID)
|
||||
FROM SupportServiceLevels AS SL
|
||||
INNER JOIN ExchangeAccounts AS EA ON SL.LevelID = EA.LevelID
|
||||
WHERE EA.LevelID = @LevelID
|
||||
RETURN
|
||||
GO
|
||||
|
||||
-- Service Level Quotas, change type
|
||||
UPDATE Quotas
|
||||
SET QuotaTypeID = 2
|
||||
WHERE QuotaName like 'ServiceLevel.%'
|
||||
GO
|
||||
|
||||
ALTER FUNCTION [dbo].[CalculateQuotaUsage]
|
||||
(
|
||||
@PackageID int,
|
||||
@QuotaID int
|
||||
)
|
||||
RETURNS int
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @QuotaTypeID int
|
||||
DECLARE @QuotaName nvarchar(50)
|
||||
SELECT @QuotaTypeID = QuotaTypeID, @QuotaName = QuotaName FROM Quotas
|
||||
WHERE QuotaID = @QuotaID
|
||||
|
||||
IF @QuotaTypeID <> 2
|
||||
RETURN 0
|
||||
|
||||
DECLARE @Result int
|
||||
|
||||
IF @QuotaID = 52 -- diskspace
|
||||
SET @Result = dbo.CalculatePackageDiskspace(@PackageID)
|
||||
ELSE IF @QuotaID = 51 -- bandwidth
|
||||
SET @Result = dbo.CalculatePackageBandwidth(@PackageID)
|
||||
ELSE IF @QuotaID = 53 -- domains
|
||||
SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT
|
||||
INNER JOIN Domains AS D ON D.PackageID = PT.PackageID
|
||||
WHERE IsSubDomain = 0 AND IsInstantAlias = 0 AND IsDomainPointer = 0 AND PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 54 -- sub-domains
|
||||
SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT
|
||||
INNER JOIN Domains AS D ON D.PackageID = PT.PackageID
|
||||
WHERE IsSubDomain = 1 AND IsInstantAlias = 0 AND IsDomainPointer = 0 AND PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 220 -- domain pointers
|
||||
SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT
|
||||
INNER JOIN Domains AS D ON D.PackageID = PT.PackageID
|
||||
WHERE IsDomainPointer = 1 AND PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 71 -- scheduled tasks
|
||||
SET @Result = (SELECT COUNT(S.ScheduleID) FROM PackagesTreeCache AS PT
|
||||
INNER JOIN Schedule AS S ON S.PackageID = PT.PackageID
|
||||
WHERE PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 305 -- RAM of VPS
|
||||
SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP
|
||||
INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID
|
||||
INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID
|
||||
WHERE SIP.PropertyName = 'RamSize' AND PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 306 -- HDD of VPS
|
||||
SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP
|
||||
INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID
|
||||
INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID
|
||||
WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 309 -- External IP addresses of VPS
|
||||
SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP
|
||||
INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
|
||||
INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
|
||||
WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3)
|
||||
ELSE IF @QuotaID = 100 -- Dedicated Web IP addresses
|
||||
SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP
|
||||
INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
|
||||
INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
|
||||
WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 2)
|
||||
ELSE IF @QuotaID = 350 -- RAM of VPSforPc
|
||||
SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP
|
||||
INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID
|
||||
INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID
|
||||
WHERE SIP.PropertyName = 'Memory' AND PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 351 -- HDD of VPSforPc
|
||||
SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP
|
||||
INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID
|
||||
INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID
|
||||
WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 354 -- External IP addresses of VPSforPc
|
||||
SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP
|
||||
INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
|
||||
INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
|
||||
WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3)
|
||||
ELSE IF @QuotaID = 319 -- BB Users
|
||||
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts ea
|
||||
INNER JOIN BlackBerryUsers bu ON ea.AccountID = bu.AccountID
|
||||
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||
WHERE pt.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 320 -- OCS Users
|
||||
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts ea
|
||||
INNER JOIN OCSUsers ocs ON ea.AccountID = ocs.AccountID
|
||||
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||
WHERE pt.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 206 -- HostedSolution.Users
|
||||
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
|
||||
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||
WHERE pt.ParentPackageID = @PackageID AND ea.AccountType IN (1,5,6,7))
|
||||
ELSE IF @QuotaID = 78 -- Exchange2007.Mailboxes
|
||||
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
|
||||
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||
WHERE pt.ParentPackageID = @PackageID
|
||||
AND ea.AccountType IN (1)
|
||||
AND ea.MailboxPlanId IS NOT NULL)
|
||||
ELSE IF @QuotaID = 77 -- Exchange2007.DiskSpace
|
||||
SET @Result = (SELECT SUM(B.MailboxSizeMB) FROM ExchangeAccounts AS ea
|
||||
INNER JOIN ExchangeMailboxPlans AS B ON ea.MailboxPlanId = B.MailboxPlanId
|
||||
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||
WHERE pt.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 370 -- Lync.Users
|
||||
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
|
||||
INNER JOIN LyncUsers lu ON ea.AccountID = lu.AccountID
|
||||
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||
WHERE pt.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 376 -- Lync.EVUsers
|
||||
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
|
||||
INNER JOIN LyncUsers lu ON ea.AccountID = lu.AccountID
|
||||
INNER JOIN LyncUserPlans lp ON lu.LyncUserPlanId = lp.LyncUserPlanId
|
||||
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||
WHERE pt.ParentPackageID = @PackageID AND lp.EnterpriseVoice = 1)
|
||||
ELSE IF @QuotaID = 381 -- Dedicated Lync Phone Numbers
|
||||
SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP
|
||||
INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
|
||||
INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
|
||||
WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 5)
|
||||
ELSE IF @QuotaID = 430 -- Enterprise Storage
|
||||
SET @Result = (SELECT SUM(ESF.FolderQuota) FROM EnterpriseFolders AS ESF
|
||||
INNER JOIN ServiceItems SI ON ESF.ItemID = SI.ItemID
|
||||
INNER JOIN PackagesTreeCache PT ON SI.PackageID = PT.PackageID
|
||||
WHERE PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 431 -- Enterprise Storage Folders
|
||||
SET @Result = (SELECT COUNT(ESF.EnterpriseFolderID) FROM EnterpriseFolders AS ESF
|
||||
INNER JOIN ServiceItems SI ON ESF.ItemID = SI.ItemID
|
||||
INNER JOIN PackagesTreeCache PT ON SI.PackageID = PT.PackageID
|
||||
WHERE PT.ParentPackageID = @PackageID)
|
||||
ELSE IF @QuotaID = 423 -- HostedSolution.SecurityGroups
|
||||
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
|
||||
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||
WHERE pt.ParentPackageID = @PackageID AND ea.AccountType IN (8,9))
|
||||
ELSE IF @QuotaName like 'ServiceLevel.%' -- Support Service Level Quota
|
||||
BEGIN
|
||||
DECLARE @LevelID int
|
||||
|
||||
SELECT @LevelID = LevelID FROM SupportServiceLevels
|
||||
WHERE LevelName = REPLACE(@QuotaName,'ServiceLevel.','')
|
||||
|
||||
IF (@LevelID IS NOT NULL)
|
||||
SET @Result = (SELECT COUNT(EA.AccountID)
|
||||
FROM SupportServiceLevels AS SL
|
||||
INNER JOIN ExchangeAccounts AS EA ON SL.LevelID = EA.LevelID
|
||||
INNER JOIN ServiceItems SI ON EA.ItemID = SI.ItemID
|
||||
INNER JOIN PackagesTreeCache PT ON SI.PackageID = PT.PackageID
|
||||
WHERE EA.LevelID = @LevelID AND PT.ParentPackageID = @PackageID)
|
||||
ELSE SET @Result = 0
|
||||
END
|
||||
ELSE
|
||||
SET @Result = (SELECT COUNT(SI.ItemID) FROM Quotas AS Q
|
||||
INNER JOIN ServiceItems AS SI ON SI.ItemTypeID = Q.ItemTypeID
|
||||
INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID AND PT.ParentPackageID = @PackageID
|
||||
WHERE Q.QuotaID = @QuotaID)
|
||||
|
||||
RETURN @Result
|
||||
END
|
||||
GO
|
||||
|
||||
-- Hyper-V 2012 R2
|
||||
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [ProviderName] = 'Microsoft Hyper-V 2012 R2')
|
||||
BEGIN
|
||||
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (350, 30, N'HyperV2012R2', N'Microsoft Hyper-V 2012 R2', N'WebsitePanel.Providers.Virtualization.HyperV2012R2, WebsitePanel.Providers.Virtualization.HyperV2012R2', N'HyperV', 1)
|
||||
END
|
||||
GO
|
||||
|
||||
GO
|
Loading…
Add table
Add a link
Reference in a new issue