什么是JIRA权限API中的deprecatedKey以及什么是用法

时间:2016-04-09 09:58:06

标签: jira jira-rest-api

我正在尝试了解JIRA权限API。在打电话给他们的许可服务时,即

http://example.com:8080/jira/rest/api/2/mypermissions [GET]

/rest/api/2/mypermissions?projectKey&projectId&issueKey&issueId

我对当前登录用户的响应低于:

enter image description here

它为各种权限密钥/节点返回2个属性:

  1. havePermission
  2. deprecatedKey
  3. 你能说出它的实现是什么以及它是如何工作的?

    在观察到反应后,我发现了  deprecatedKey属性不适用于所有权限节点 有多个权限具有相同的id(即permissionId)但不同的deprecatedKey参数

1 个答案:

答案 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只是意味着请求者被授予了给定上下文(项目/问题)中特定键的权限。