#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, разрешения на просмотр проблемы.