private/New-SpOPermissionEntry.ps1

Function New-SpOPermissionEntry{
    <#
        Author = "Jos Lieben (jos@lieben.nu)"
        CompanyName = "Lieben Consultancy"
        Copyright = "https://www.lieben.nu/liebensraum/commercial-use/"
    #>
    
    Param(
        [Parameter(Mandatory=$true)]$Permission,
        [Parameter(Mandatory=$true)]$targetPath
    )

    if($Permission.principalSysId -in ("SHAREPOINT\system")){
        Write-LogMessage -level 5 -message "Skipping permission $($Permission.principalSysId) as it is a system account"
        return $Null
    }

    if(!$global:octo.userConfig.includeCurrentUser -and ($Permission.principalEntraId -eq $global:octo.currentUser.id -or $Permission.principalSysId -like "*$($global:octo.currentUser.userPrincipalName)*")){
        Write-LogMessage -level 5 -message "Skipping permission $($Permission.principalSysId) as it is the auditor account"
        return $Null
    }

    if(!($global:SPOPermissions.Keys -Contains $targetPath)){
        $global:SPOPermissions.$($targetPath) = @()
    }elseif($global:SPOPermissions.$($targetPath) -Contains $Permission){
        Write-LogMessage -level 5 -message "Not adding permission $($Permission.principalSysId) to $targetPath as it is already present"
        return $Null
    }

    Write-LogMessage -level 5 -message "Adding permission $($Permission.principalRole) for $($Permission.principalSysId) to $targetPath"
    $global:SPOPermissions.$($targetPath) += $Permission    
}