Skip to content

Commit

Permalink
Merge branch 'dev' of https://github.com/BNWEIN/CIPP-API into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
BNWEIN committed Sep 27, 2023
2 parents c72f34c + 746ad13 commit 5e787e4
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 19 deletions.
37 changes: 19 additions & 18 deletions EditGroup/run.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ if ($AddMembers) {
$AddMembers | ForEach-Object {
try {
$member = $_
$MemberIDs = "https://graph.microsoft.com/v1.0/directoryObjects/$($member)"
$MemberName = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $Userobj.tenantid).mail
if ($member -like '*#EXT#*') { $member = [System.Web.HttpUtility]::UrlEncode($member) }
$MemberIDs = "https://graph.microsoft.com/v1.0/directoryObjects/" + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($member)" -tenantid $Userobj.tenantid).id
$addmemberbody = "{ `"[email protected]`": $(ConvertTo-Json @($MemberIDs)) }"
if ($userobj.groupType -eq "Distribution list" -or $userobj.groupType -eq "Mail-Enabled Security") {
$Params = @{ Identity = $userobj.groupid; Member = $member; BypassSecurityGroupManagerCheck = $true }
Expand All @@ -29,10 +29,10 @@ if ($AddMembers) {
New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($userobj.groupid)" -tenantid $Userobj.tenantid -type patch -body $addmemberbody -Verbose
}
Write-LogMessage -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "Added $member to $($userobj.groupid) group" -Sev "Info"
$body = $results.add("Success. $MemberName has been added")
$body = $results.add("Success. $member has been added")
}
catch {
$body = $results.add("Failed to add member $memberName to $($userobj.Groupid): $($_.Exception.Message)")
$body = $results.add("Failed to add member $member to $($userobj.Groupid): $($_.Exception.Message)")
}
}

Expand All @@ -48,11 +48,12 @@ if ($AddContacts) {
New-ExoRequest -tenantid $Userobj.tenantid -cmdlet "Add-DistributionGroupMember" -cmdParams $params -UseSystemMailbox $true
Write-LogMessage -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "Added $member to $($userobj.groupid) group" -Sev "Info"
$body = $results.add("Success. $member has been added")
} else {
Write-LogMessage -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "You cannot add a contact to a security group" -Sev "Error"
$body = $results.add("You cannot add a contact to a security group")
}
else {
Write-LogMessage -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "You cannot add a contact to a security group" -Sev "Error"
$body = $results.add("You cannot add a contact to a security group")
}
}
}
catch {
$body = $results.add("Failed to add member $member to $($userobj.Groupid): $($_.Exception.Message)")
}
Expand All @@ -64,17 +65,17 @@ $RemoveMembers = ($userobj.Removemember).value
try {
if ($RemoveMembers) {
$RemoveMembers | ForEach-Object {
$MemberInfo = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $Userobj.tenantid)
$member = $_
if ($userobj.groupType -eq "Distribution list" -or $userobj.groupType -eq "Mail-Enabled Security") {
$Params = @{ Identity = $userobj.groupid; Member = $member ; BypassSecurityGroupManagerCheck = $true }
New-ExoRequest -tenantid $Userobj.tenantid -cmdlet "Remove-DistributionGroupMember" -cmdParams $params -UseSystemMailbox $true
}
else {
New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($userobj.groupid)/members/$($Member)/`$ref" -tenantid $Userobj.tenantid -type DELETE
$MemberInfo = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $Userobj.tenantid)
New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($userobj.groupid)/members/$($MemberInfo.id)/`$ref" -tenantid $Userobj.tenantid -type DELETE
}
Write-LogMessage -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "Removed $member from $($userobj.groupid) group" -Sev "Info"
$body = $results.add("Success. Member $($memberinfo.mail) has been removed")
$body = $results.add("Success. Member $member has been removed")
}
}
}
Expand Down Expand Up @@ -150,16 +151,16 @@ if ($userobj.allowExternal -eq 'true') {

if ($userobj.sendCopies -eq 'true') {
try {
$Params = @{ Identity = $userobj.Groupid; subscriptionEnabled = $true; AutoSubscribeNewMembers = $true }
New-ExoRequest -tenantid $Userobj.tenantid -cmdlet "Set-UnifiedGroup" -cmdParams $params -useSystemMailbox $true
$Params = @{ Identity = $userobj.Groupid; subscriptionEnabled = $true; AutoSubscribeNewMembers = $true }
New-ExoRequest -tenantid $Userobj.tenantid -cmdlet "Set-UnifiedGroup" -cmdParams $params -useSystemMailbox $true

$MemberParams = @{ Identity = $userobj.Groupid; LinkType = "members" }
$Members = New-ExoRequest -tenantid $Userobj.tenantid -cmdlet "Get-UnifiedGrouplinks" -cmdParams $MemberParams
$MemberParams = @{ Identity = $userobj.Groupid; LinkType = "members" }
$Members = New-ExoRequest -tenantid $Userobj.tenantid -cmdlet "Get-UnifiedGrouplinks" -cmdParams $MemberParams

$MemberSmtpAddresses = $Members | ForEach-Object { $_.PrimarySmtpAddress }
$MemberSmtpAddresses = $Members | ForEach-Object { $_.PrimarySmtpAddress }

$subscriberParams = @{ Identity = $userobj.Groupid; LinkType = "subscribers"; Links = @($MemberSmtpAddresses) }
New-ExoRequest -tenantid $Userobj.tenantid -cmdlet "Add-UnifiedGrouplinks" -cmdParams $subscriberParams -Anchor $userobj.mail
$subscriberParams = @{ Identity = $userobj.Groupid; LinkType = "subscribers"; Links = @($MemberSmtpAddresses) }
New-ExoRequest -tenantid $Userobj.tenantid -cmdlet "Add-UnifiedGrouplinks" -cmdParams $subscriberParams -Anchor $userobj.mail


$body = $results.add("Send Copies of team emails and events to team members inboxes for $($userobj.mail) enabled.")
Expand Down
2 changes: 1 addition & 1 deletion GraphHelper.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -552,7 +552,7 @@ function Remove-CIPPCache {
function New-ExoRequest ($tenantid, $cmdlet, $cmdParams, $useSystemMailbox, $Anchor, $NoAuthCheck) {
if ((Get-AuthorisedRequest -TenantID $tenantid) -or $NoAuthCheck -eq $True) {
$token = Get-ClassicAPIToken -resource 'https://outlook.office365.com' -Tenantid $tenantid
$tenant = (get-tenants | Where-Object -Property defaultDomainName -EQ $tenantid).customerId
$tenant = (get-tenants -IncludeErrors | Where-Object -Property defaultDomainName -EQ $tenantid).customerId
if ($cmdParams) {
$Params = $cmdParams
}
Expand Down

0 comments on commit 5e787e4

Please sign in to comment.