我正在尝试了解JIRA权限API。在打电话给他们的许可服务时,即
http://example.com:8080/jira/rest/api/2/mypermissions [GET]
/rest/api/2/mypermissions?projectKey&projectId&issueKey&issueId
我对当前登录用户的响应低于:
它为各种权限密钥/节点返回2个属性:
你能说出它的实现是什么以及它是如何工作的?
在观察到反应后,我发现了
deprecatedKey
属性不适用于所有权限节点
有多个权限具有相同的id
(即permissionId)但不同的deprecatedKey
参数
答案 0 :(得分:0)
在我对the documentation的理解中,使用JIRA 6.4更改了权限模型,旧的权限密钥已过时。然而,由于backward compatibility原因,它们被保存在API中(即,当API更改时,使用旧API的旧版客户端不会被破坏)。
引用:
在6.4版之前,此服务使用与
com.atlassian.jira.security.Permissions.Permission
常量对应的键返回项目权限。从6.4开始,这些密钥被认为已弃用,此服务返回与com.atlassian.jira.permission.ProjectPermissions
中定义的常量对应的系统项目权限密钥。对于向后兼容性,仍会返回具有旧密钥的权限,它们使用deprecatedKey = true属性进行标记。使用当前键的项目权限缺少该属性。
这意味着,例如在v6.4之前的JIRA中,有一个名为VIEW_WORKFLOW_READONLY
的权限。从6.4开始可能添加了另一个许可,废除了这个权限(虽然我不知道在这个具体例子中哪个)。所以现在这个权限要么具有不同的密钥,要么被合并到anoter权限集中。分为几个新引入的权限也是一种选择。
弃用意味着在开发新的客户端应用程序时不应再使用此旧权限密钥,并且将在API的未来版本中将其删除。
详细了解弃用率on Wikipedia。
另一个属性havePermission
只是意味着请求者被授予了给定上下文(项目/问题)中特定键的权限。