【问题标题】:Can the JIRA SOAP api be used to determine whether a given user can view a given record?可以使用 JIRA SOAP api 来确定给定用户是否可以查看给定记录吗?
【发布时间】:2011-04-07 17:46:02
【问题描述】:

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

#!/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,但无法获取我需要的用户信息。

【问题讨论】:

    标签: python api soap jira


    【解决方案1】:

    标准 API 有点啰嗦,但你可以去。

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

    来自 getProjectWithSchemesById 的 RemoteProject 对象有一个 getPermissionScheme 方法,该方法返回一个 RemotePermissionScheme 对象。

    RemotePermissionScheme 对象有一个 getRemoteEntries 方法

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

    ~马特

    【讨论】:

    • 我想我可能会编写一个自定义 SOAP 方法来执行此操作。
    【解决方案2】:

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

    不确定这是如何在 python 中完成的,但我相信应该有一种方法可以在您的方法中捕获异常。

    弗朗西斯

    【讨论】:

    • 您好 Francis,我正在寻找一个 API 来确定其他用户是否有权查看问题,而不是访问 API 的用户是否有权查看问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 2012-06-16
    • 2011-04-01
    • 2020-04-21
    • 1970-01-01
    相关资源
    最近更新 更多