是否可以使用JIRA SOAP api来确定给定用户是否可以查看给定记录?

时间:2011-04-07 17:46:03

标签: python api soap jira

我希望能够做到这样的事情:

#!/usr/bin/python
if jira.user_has_permission('jsmith', 'JIRA-123'):
    print '%s has permission to view %s' % (user, record)
else:
    print '%s does not have permission to view %s' % (user, record)

如何实现jira.user_has_permission()?

注意:我正在寻找能够确定访问API的用户以外的用户是否有权查看给定记录。

编辑: 我还打开了一个解决方案,告诉我用户是否有权查看给定项目内的记录。我尝试使用getProjectByKey,然后使用getProjectWithSchemesById,但无法获取我需要的用户信息。

2 个答案:

答案 0 :(得分:1)

使用标准API啰嗦,但现在就去。

getProjectWithSchemesById为您提供了一个RemoteProject对象。可能必须由具有jira-admin权限的用户调用。请注意,getProjectByKey不会在返回的值中设置权限方案,但是可以方便地获取要在getProjectWithSchemesById中使用的项目ID。

getProjectWithSchemesById中的RemoteProject对象有一个返回RemotePermissionScheme对象的getPermissionScheme方法。

RemotePermissionScheme对象具有getRemoteEntries方法

生成的RemoteEntries数组是您需要迭代以查找“浏览”权限以及哪些用户和组拥有它。

〜马特

答案 1 :(得分:0)

soap操作getIssue将抛出RemotePermissionException http://docs.atlassian.com/rpc-jira-plugin/latest/com/atlassian/jira/rpc/exception/RemotePermissionException.html 当用户尝试访问权限时,她不应该访问。

不确定如何在python中完成此操作,但我确信应该有办法在方法中捕获异常。

弗朗西斯