从 Confluence 页面获取限制

Getting restrictions from Confluence page

我对网络 API 调用不是很了解,但我一直在使用以下 powershell 代码(本示例中的这个网站是我发现有一些 public 数据的网站。 .. 我的网站是内部网站,需要我通过凭据,这对我来说一直没有问题):

If(-not (Get-InstalledModule -Name 'ConfluencePS')){Install-Module ConfluencePS}
Import-Module ConfluencePS

Set-ConfluenceInfo -BaseUri "https://wiki.opnfv.org"

$space = Get-confluencepage -Spacekey ds

ForEach($item in $space)
{
    $splatParams = @{
                        Uri = "https://wiki.opnfv.org/rest/api/content/$($item.ID)/restriction"
                        ContentType = 'application/json'
                        method = 'GET'
                    }
    #reference https://developer.atlassian.com/cloud/confluence/rest/#api-api-content-id-restriction-get
    Invoke-RestMethod @splatParams
}

ConfluencePS 的 documentation 显示限制仍然是一个开放的功能请求,但我需要让它在项目中工作。

我在 ConfluencePS.psm1 的第 982 行放置了一个断点,并且能够看到各种调用以及参数的结构但是当我尝试模仿它时(并根据融合更改 URI documentation) 我得到一个错误 "HTTP error 405 - MethodNotAllowed"。有人对我如何使这项工作有建议吗?我正在尝试 return 恢复对特定 space 中所有页面应用的权限。

按内容 ID 获取限制

你自己查到的,需要加上"byOperation"。

我能够使用以下代码获取特定页面的限制:

# for testing purposes ONLY, I've specified the URL and ID
$wikiUrl = "https://wiki.opnfv.org"
$itemId = "6820746"

$splatParams = @{
                    Uri = "$wikiUrl/rest/api/content/$itemId/restriction/byOperation"
                    ContentType = 'application/json'
                    method = 'GET'
                }
$result = Invoke-RestMethod @splatParams

在版本 6.0.4 和 6.15.9 上测试

按用户名过滤

如果您想按特定用户名过滤结果,您可以使用以下 URI: "$wikiUrl/rest/api/content/$itemId/restriction/byOperation/.../user?userName=".

顺便说一下,这种操作方式存在一个未解决的错误: restriction returns ambiguous responses