-- =====================================================================================================
-- Author: Rock
-- Create Date:
-- Modified Date: 01-03-2021
-- Description: A post depoloy utility script for testing that set certain functionality for test mode.
--
-- Change History:
-- 01-03-2021 COREYH - Add this script description.
-- Also added the script requirements.
-- Requirements:
-- The [RockUser] login must exist in the SQL database.
-- ======================================================================================================
-- CREATE FUNCTION FOR REMOVING NON-ALPHA CHARACTERS
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ufnUtility_RemoveNonAlphaCharacters]') AND type = 'FN')
DROP FUNCTION [dbo].[ufnUtility_RemoveNonAlphaCharacters]
GO
CREATE FUNCTION [dbo].[ufnUtility_RemoveNonAlphaCharacters](@Temp VarChar(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
DECLARE @KeepValues as VARCHAR(50)
SET @KeepValues = '%[^a-z]%'
WHILE PatIndex(@KeepValues, @Temp) > 0
SET @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')
RETURN @Temp
END
GO
/* Recreate RockUser so it points to the current server's Logins */
DROP USER [RockUser]
GO
CREATE USER [RockUser] FOR LOGIN [RockUser]
GO
ALTER ROLE [db_owner] ADD MEMBER [RockUser]
GO
-- ADD 'TEST' BANNER
UPDATE B SET
[PreHtml] = '
You are connected to the Test database.
'
, [ModifiedDateTime] = GETDATE()
FROM [Block] B
INNER JOIN [BlockType] T ON T.[Id] = B.[BlockTypeId]
WHERE T.[Path] = '~/Blocks/Core/SmartSearch.ascx'
AND B.[Zone] = 'Header'
-- TURN OFF SSL FOR ALL PAGES
UPDATE [Page] SET [RequiresEncryption] = 0
-- TURN OFF SSL FOR ALL SITES
UPDATE [Site] SET [RequiresEncryption] = 0
-- INACTIVATE JOBS
UPDATE [ServiceJob] SET [IsActive] = 0
-- BLANK OUT EMAILS
UPDATE [Person]
set [Email] = LOWER(dbo.[ufnUtility_RemoveNonAlphaCharacters]([NickName])) + LOWER(dbo.[ufnUtility_RemoveNonAlphaCharacters]([LastName])) + '@safety.netz'
WHERE [Email] IS NOT NULL
-- Update the Mail Medium/Transport settings to use SMTP with Localhost/25
DECLARE @SMTPEntityTypeId int = ( SELECT TOP 1 [Id] FROM [EntityType] WHERE [Name] = 'Rock.Communication.Transport.SMTP' )
DECLARE @MailEntityTypeId int = ( SELECT TOP 1 [Id] FROM [EntityType] WHERE [Name] = 'Rock.Communication.Medium.Email' )
DECLARE @MailAttributeId int
-- SMTP Server
SET @MailAttributeId = ( SELECT TOP 1 [Id] FROM [Attribute] WHERE [EntityTypeId] = @SMTPEntityTypeId AND [Key] = 'Server' )
UPDATE [AttributeValue] SET [Value] = 'localhost' WHERE [AttributeId] = @MailAttributeId
-- SMTP Port
SET @MailAttributeId = ( SELECT TOP 1 [Id] FROM [Attribute] WHERE [EntityTypeId] = @SMTPEntityTypeId AND [Key] = 'Port' )
UPDATE [AttributeValue] SET [Value] = '25' WHERE [AttributeId] = @MailAttributeId
-- SMTP Username
SET @MailAttributeId = ( SELECT TOP 1 [Id] FROM [Attribute] WHERE [EntityTypeId] = @SMTPEntityTypeId AND [Key] = 'UserName' )
UPDATE [AttributeValue] SET [Value] = '' WHERE [AttributeId] = @MailAttributeId
-- SMTP Password
SET @MailAttributeId = ( SELECT TOP 1 [Id] FROM [Attribute] WHERE [EntityTypeId] = @SMTPEntityTypeId AND [Key] = 'Password' )
UPDATE [AttributeValue] SET [Value] = '' WHERE [AttributeId] = @MailAttributeId
-- SMTP UseSSL
SET @MailAttributeId = ( SELECT TOP 1 [Id] FROM [Attribute] WHERE [EntityTypeId] = @SMTPEntityTypeId AND [Key] = 'UseSSL' )
UPDATE [AttributeValue] SET [Value] = 'False' WHERE [AttributeId] = @MailAttributeId
-- Mail Transport
DECLARE @SMTPEntityTypeGuid varchar(50) = ( SELECT LOWER(CAST([Guid] as varchar(50))) FROM [EntityType] WHERE [Id] = @SMTPEntityTypeId )
SET @MailAttributeId = ( SELECT TOP 1 [Id] FROM [Attribute] WHERE [EntityTypeId] = @MailEntityTypeId AND [Key] = 'TransportContainer' )
UPDATE [AttributeValue] SET [Value] = @SMTPEntityTypeGuid WHERE [AttributeId] = @MailAttributeId
-- Add localhost domain to internal site so routes work
IF NOT EXISTS (SELECT [Id] FROM [SiteDomain] WHERE SiteId = 1 AND Domain = 'localhost' )
BEGIN
DECLARE @domainOrder INT = (SELECT Max([Order]) + 1 FROM [SiteDomain] WHERE SiteId = 1)
INSERT INTO [dbo].[SiteDomain](IsSystem, SiteId, Domain, [Guid], [Order])
VALUES(0, 1, 'localhost', NEWID(), @domainOrder)
END