Skip to content

Commit

Permalink
Adding -Interactive param to manually set PortalAliases
Browse files Browse the repository at this point in the history
  • Loading branch information
engage-chancock authored and bdukes committed Jun 9, 2023
1 parent 6cafaf1 commit d938213
Showing 1 changed file with 32 additions and 5 deletions.
37 changes: 32 additions & 5 deletions DnnWebsiteManagement/DnnWebsiteManagement.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,10 @@ function Restore-DNNSite {
[switch]$IncludeSource = $defaultIncludeSource,

[parameter(Mandatory = $false)]
[string]$GitRepository = ''
[string]$GitRepository = '',

[parameter(Mandatory = $false)]
[switch]$Interactive
);

$siteZipFile = Get-Item $SiteZipPath
Expand All @@ -373,7 +376,7 @@ function Restore-DNNSite {
}

$IncludeSource = $IncludeSource -or $Version -ne ''
New-DNNSite $Name -SiteZipPath:$SiteZipPath -DatabaseBackupPath:$DatabaseBackupPath -Version:$Version -IncludeSource:$IncludeSource -Domain:$Domain -GitRepository:$GitRepository;
New-DNNSite $Name -SiteZipPath:$SiteZipPath -DatabaseBackupPath:$DatabaseBackupPath -Version:$Version -IncludeSource:$IncludeSource -Domain:$Domain -GitRepository:$GitRepository -Interactive:$Interactive;

$sitePath = Join-Path $www $Name;
$scriptsDir = Join-Path $sitePath '.dnn-website-management';
Expand Down Expand Up @@ -530,7 +533,9 @@ function New-DNNSite {
[Alias("oldDomain")]
[string]$Domain = '',

[string]$GitRepository = ''
[string]$GitRepository = '',

[switch]$Interactive
);

Assert-AdministratorRole
Expand Down Expand Up @@ -599,8 +604,30 @@ function New-DNNSite {

if ($Domain -ne '') {
if ($PSCmdlet.ShouldProcess($Name, 'Update Portal Aliases')) {
invokeSql -Query:"UPDATE $(getDnnDatabaseObjectName -objectName:'PortalAlias' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier) SET HTTPAlias = REPLACE(HTTPAlias, '$Domain', '$Name')" -Database:$Name
invokeSql -Query:"UPDATE $(getDnnDatabaseObjectName -objectName:'PortalSettings' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier) SET SettingValue = REPLACE(SettingValue, '$Domain', '$Name') WHERE SettingName = 'DefaultPortalAlias'" -Database:$Name
$aliasCounter = invokeSql -Query:"SELECT count(*) AliasCount FROM $(getDnnDatabaseObjectName -objectName:'PortalAlias' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier)" -Database:$Name
$aliasCount = $aliasCounter.aliasCount
$ProcessManual = ''

if ($Interactive.IsPresent) {
$ProcessManual = Read-Host -Prompt "Would you like to manually rename all $aliasCount portal aliases? (y/n)"
while("y","n" -notcontains $ProcessManual ) {
$ProcessManual = Read-Host -Prompt "Would you like to manually rename all $aliasCount portal aliases? (y/n)"
}
}

if ($ProcessManual -eq 'y') {
$oldAliases = invokeSql -Query:"SELECT HTTPAlias FROM $(getDnnDatabaseObjectName -objectName:'PortalAlias' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier)" -Database:$Name
foreach ($aliasRow in $oldAliases) {
$alias = $aliasRow.HTTPAlias
$updatedAlias = Read-Host -Prompt "New name for '$alias'"
invokeSql -Query:"UPDATE $(getDnnDatabaseObjectName -objectName:'PortalAlias' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier) SET HTTPAlias = '$updatedAlias' WHERE HTTPAlias = '$alias'" -Database:$Name
invokeSql -Query:"UPDATE $(getDnnDatabaseObjectName -objectName:'PortalSettings' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier) SET SettingValue = '$updatedAlias' WHERE SettingName = 'DefaultPortalAlias' AND SettingValue = '$alias'" -Database:$Name
}
}
else {
invokeSql -Query:"UPDATE $(getDnnDatabaseObjectName -objectName:'PortalAlias' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier) SET HTTPAlias = REPLACE(HTTPAlias, '$Domain', '$Name')" -Database:$Name
invokeSql -Query:"UPDATE $(getDnnDatabaseObjectName -objectName:'PortalSettings' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier) SET SettingValue = REPLACE(SettingValue, '$Domain', '$Name') WHERE SettingName = 'DefaultPortalAlias'" -Database:$Name
}
}

$aliases = invokeSql -Query:"SELECT HTTPAlias FROM $(getDnnDatabaseObjectName -objectName:'PortalAlias' -DatabaseOwner:$DatabaseOwner -ObjectQualifier:$ObjectQualifier) WHERE HTTPAlias != '$Name'" -Database:$Name
Expand Down

0 comments on commit d938213

Please sign in to comment.