resources/privileges.ps1

function Assert-QlikPrivilege {
    [CmdletBinding()]
    param (
        [parameter(Mandatory = $true, Position = 1, ValueFromPipeline = $true)]
        [object]$InputObject,
        [parameter(Position = 0)]
        [string[]]$privileges
    )

    PROCESS {
        $access = @(Get-QlikPrivileges -InputObject $InputObject)
        $privileges.ForEach{
            if ($access -notcontains $_) {
                throw ("Expected '{0}' to be found in collection @('{1}'), but it was not found. {2} - {{{3}}}" -f $_, ($access -join "', '"), $InputObject.schemaPath, $InputObject.id)
            }
        }
    }
}

function Get-QlikPrivilege {
    [CmdletBinding()]
    param (
        [parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
        [object]$InputObject,
        [int]$privilegesFilter
    )

    PROCESS {
        $resourceType = $InputObject.schemaPath
        $path = "/qrs/$resourceType/previewprivileges"
        If ( $privilegesFilter ) { $path += "?privilegesFilter=$privilegesFilter" }
        return Invoke-QlikPost $path ($InputObject | ConvertTo-Json -Depth 10 -Compress)
    }
}