Можно ли использовать JIRA SOAP api для определения, может ли данный пользователь просматривать данную запись?

#python #api #soap #jira

#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, но не смог получить необходимую мне информацию о пользователе.

Ответ №1:

Стандартный API требует многословия, но вот, пожалуйста.

getProjectWithSchemesById предоставляет вам объект RemoteProject. Вероятно, должен вызываться пользователем с правами jira-admin. Обратите внимание, что getProjectByKey не устанавливает схему разрешений в возвращаемом значении, но является удобным способом получить идентификатор проекта для использования в getProjectWithSchemesById .

Объект RemoteProject из getProjectWithSchemesById имеет метод getPermissionScheme, который возвращает объект RemotePermissionScheme.

Объект RemotePermissionScheme имеет метод getRemoteEntries

Результирующий массив RemoteEntries — это то, что вам нужно перебрать, чтобы найти разрешение на просмотр и какие пользователи и группы им обладают.

~ Мэтт

Комментарии:

1. Я думаю, что, вероятно, написал бы пользовательский метод SOAP для этого.

Ответ №2:

Операция soap getIssue вызовет исключение RemotePermissionException http://docs.atlassian.com/rpc-jira-plugin/latest/com/atlassian/jira/rpc/exception/RemotePermissionException.html когда пользователь пытается получить доступ к разрешению, к которому он не должен обращаться.

Не уверен, как это делается в python, но я уверен, что должен быть способ перехватить исключение в вашем методе.

Фрэнсис

Комментарии:

1. Привет, Фрэнсис, я ищу API, чтобы определить, имеет ли другой пользователь разрешение на просмотр проблемы, а не имеет ли пользователь, обращающийся к API, разрешения на просмотр проблемы.