Skip to content

Commit 001e9ee

Browse files
authored
Merge pull request #306 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents a8d45c2 + 15ec1f9 commit 001e9ee

File tree

3 files changed

+65
-34
lines changed

3 files changed

+65
-34
lines changed

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenantDetails.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Function Invoke-ListTenantDetails {
2828

2929
$Groups = (Get-TenantGroups -TenantFilter $TenantFilter) ?? @()
3030
$org | Add-Member -MemberType NoteProperty -Name 'Groups' -Value @($Groups)
31+
$StatusCode = [HttpStatusCode]::OK
3132

3233
} catch {
3334
$ErrorMessage = Get-CippException -Exception $_

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecNamedLocation.ps1

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,26 @@ function Invoke-ExecNamedLocation {
1515
Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug'
1616

1717

18+
# Interact with query parameters or the body of the request.
1819
$TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter
19-
$NamedLocationId = $Request.Body.NamedLocationId ?? $Request.Query.NamedLocationId
20-
$change = $Request.Body.change ?? $Request.Query.change
21-
$content = $Request.Body.input ?? $Request.Query.input
20+
$NamedLocationId = $Request.Body.namedLocationId ?? $Request.Query.namedLocationId
21+
$Change = $Request.Body.change ?? $Request.Query.change
22+
$Content = $Request.Body.input ?? $Request.Query.input
2223

2324
try {
24-
$results = Set-CIPPNamedLocation -NamedLocationId $NamedLocationId -TenantFilter $TenantFilter -change $change -content $content -Headers $Request.Headers
25+
$results = Set-CIPPNamedLocation -NamedLocationId $NamedLocationId -TenantFilter $TenantFilter -Change $Change -Content $Content -Headers $Headers
26+
$StatusCode = [HttpStatusCode]::OK
2527
} catch {
2628
$ErrorMessage = Get-CippException -Exception $_
27-
Write-LogMessage -headers $Request.Headers -API $APIName -message "Failed to edit named location: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage
29+
Write-LogMessage -headers $Headers -API $APIName -message "Failed to edit named location: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage
2830
$results = "Failed to edit named location. Error: $($ErrorMessage.NormalizedError)"
31+
$StatusCode = [HttpStatusCode]::InternalServerError
2932
}
3033

31-
32-
$body = [pscustomobject]@{'Results' = @($results) }
33-
3434
# Associate values to output bindings by calling 'Push-OutputBinding'.
3535
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
36-
StatusCode = [HttpStatusCode]::OK
37-
Body = $body
36+
StatusCode = $StatusCode
37+
Body = @{'Results' = @($results) }
3838
})
3939

4040
}

Modules/CIPPCore/Public/Set-CIPPNamedLocation.ps1

Lines changed: 54 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,75 @@ function Set-CIPPNamedLocation {
33
param(
44
$NamedLocationId,
55
$TenantFilter,
6-
#$change should be one of 'addip','addlocation','removeip','removelocation'
7-
[ValidateSet('addip', 'addlocation', 'removeip', 'removelocation')]
8-
$change,
9-
$content,
6+
#$Change should be one of 'addIp','addLocation','removeIp','removeLocation','rename','setTrusted','setUntrusted','delete'
7+
[ValidateSet('addIp', 'addLocation', 'removeIp', 'removeLocation', 'rename', 'setTrusted', 'setUntrusted', 'delete')]
8+
$Change,
9+
$Content,
1010
$APIName = 'Set Named Location',
1111
$Headers
1212
)
1313

1414
try {
15-
$NamedLocations = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$NamedLocationId" -Tenantid $tenantfilter
16-
switch ($change) {
17-
'addip' {
18-
$NamedLocations.ipRanges = @($NamedLocations.ipRanges + @{ cidrAddress = $content; '@odata.type' = '#microsoft.graph.iPv4CidrRange' })
15+
$NamedLocations = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$NamedLocationId" -Tenantid $TenantFilter
16+
17+
switch ($Change) {
18+
'addIp' {
19+
$NamedLocations.ipRanges = @($NamedLocations.ipRanges + @{ cidrAddress = $Content; '@odata.type' = '#microsoft.graph.iPv4CidrRange' })
20+
$ActionDescription = "Adding IP $Content to named location"
21+
}
22+
'addLocation' {
23+
$NamedLocations.countriesAndRegions = $NamedLocations.countriesAndRegions + $Content
24+
$ActionDescription = "Adding location $Content to named location"
25+
}
26+
'removeIp' {
27+
$NamedLocations.ipRanges = @($NamedLocations.ipRanges | Where-Object -Property cidrAddress -NE $Content)
28+
$ActionDescription = "Removing IP $Content from named location"
29+
}
30+
'removeLocation' {
31+
$NamedLocations.countriesAndRegions = @($NamedLocations.countriesAndRegions | Where-Object { $_ -NE $Content })
32+
$ActionDescription = "Removing location $Content from named location"
1933
}
20-
'addlocation' {
21-
$NamedLocations.countriesAndRegions = $NamedLocations.countriesAndRegions + $content
34+
'rename' {
35+
$NamedLocations.displayName = $Content
36+
$ActionDescription = "Renaming named location to: $Content"
2237
}
23-
'removeip' {
24-
$NamedLocations.ipRanges = @($NamedLocations.ipRanges | Where-Object -Property cidrAddress -NE $content)
38+
'setTrusted' {
39+
$NamedLocations.isTrusted = $true
40+
$ActionDescription = 'Setting named location as trusted'
2541
}
26-
'removelocation' {
27-
$NamedLocations.countriesAndRegions = @($NamedLocations.countriesAndRegions | Where-Object { $_ -NE $content })
42+
'setUntrusted' {
43+
$NamedLocations.isTrusted = $false
44+
$ActionDescription = 'Setting named location as untrusted'
45+
}
46+
'delete' {
47+
$ActionDescription = 'Deleting named location'
2848
}
2949
}
30-
if ($PSCmdlet.ShouldProcess($GroupName, "Assigning Application $ApplicationId")) {
31-
#Remove unneeded propertie
32-
if ($change -like '*location*') {
33-
$NamedLocations = $NamedLocations | Select-Object '@odata.type', 'displayName', 'countriesAndRegions', 'includeUnknownCountriesAndRegions'
50+
51+
if ($PSCmdlet.ShouldProcess($NamedLocations.displayName, $ActionDescription)) {
52+
if ($Change -eq 'delete') {
53+
$null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$NamedLocationId" -tenantid $TenantFilter -type DELETE
54+
$Result = "Deleted named location: $($NamedLocations.displayName)"
3455
} else {
35-
$NamedLocations = $NamedLocations | Select-Object '@odata.type', 'displayName', 'ipRanges', 'isTrusted'
56+
# PATCH operations - remove unneeded properties
57+
if ($NamedLocations.'@odata.type' -eq '#microsoft.graph.countryNamedLocation') {
58+
$NamedLocations = $NamedLocations | Select-Object '@odata.type', 'displayName', 'countriesAndRegions', 'includeUnknownCountriesAndRegions'
59+
} elseif ($NamedLocations.'@odata.type' -eq '#microsoft.graph.ipNamedLocation') {
60+
$NamedLocations = $NamedLocations | Select-Object '@odata.type', 'displayName', 'ipRanges', 'isTrusted'
61+
}
62+
63+
$JsonBody = ConvertTo-Json -InputObject $NamedLocations -Compress -Depth 10
64+
$null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$NamedLocationId" -tenantid $TenantFilter -type PATCH -body $JsonBody
65+
$Result = "Edited named location: $($NamedLocations.displayName). Change: $Change$(if ($Content) { " with content $Content" })"
3666
}
3767

38-
$null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$NamedLocationId" -tenantid $TenantFilter -type PATCH -body $($NamedLocations | ConvertTo-Json -Compress -Depth 10)
39-
Write-LogMessage -headers $Headers -API $APIName -message "Edited named location. Change: $change with content $($content)" -Sev 'Info' -tenant $TenantFilter
68+
Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info'
4069
}
41-
return "Edited named location. Change: $change with content $($content)"
70+
return $Result
4271
} catch {
4372
$ErrorMessage = Get-CippException -Exception $_
44-
Write-LogMessage -headers $Headers -API $APIName -message "Failed to edit named location: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage
45-
return "Failed to edit named location. Error: $($ErrorMessage.NormalizedError)"
73+
$Result = "Failed to edit named location: $($NamedLocations.displayName). Error: $($ErrorMessage.NormalizedError)"
74+
Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage
75+
throw $Result
4676
}
4777
}

0 commit comments

Comments
 (0)