Что, зачем и почему
В данной статье Anton Chemlev попробует разобраться кто есть кто в JIRA: пользователи, группы, роли и т.п. Тема достаточно сложная и многие пользователи/администраторы путаются. Цель статьи такова - после ознакомления с текстом у читателя должно сформироваться общее понимание устройства пользовательской, групповой и ролевой модели JIRA.
ВАЖНО: Мы говорим о версии Jira > 7.X.X, так именно в 7-ке появились изменения в пользовательской модели.
Многие начинающие, да и продолжающие пользователи Jira, путаются в обилии системных сущностей, представляющих пользователей, их группировку, роли и т.п. Между тем, у каждой такой сущности есть свои области применения в рамках системы и сложившиеся рецепты использования. Для начала давайте составим список того, в чем нам предстоит разобраться, итак:
Далее предлагаю брать поочередно каждую сущность и разбирать, что она из себя представляет по такому шаблону:
Все очень просто - User (Пользователь) это основная боевая единица в системе, олицетворяющая конкретную персону. User = учетная запись. User может быть создан как внутри (Internal Directory), так и получен извне (один из вариантов подключения - LDAP Connector, Delegated LDAP, Atlassian Crowd (сюда же отношу и использование другой Jira в качестве поставщика учеток)).
Пользователь может находиться в 2-х состояниях - Active и Inactive. В случае если пользователь Active и состоит в одной из групп, имеющих Application Access, то тогда "сжирается" 1 лицензия. Также пользователь может быть удален, об этом ниже.
Используется повсеместно, так как issue создаются, выполняются, комментируются и т.п. именно сущностью User. Если быть точным, то User - это экземпляр класса Application User. Сущность используется в схемах: Permission scheme, Notification scheme, Issue security scheme. Кроме того, в workflow можно использовать User в conditions, validators, post-functions. Например, настроить процесс так, чтобы определенный переход мог быть выполнен только определенным User (сразу оговорюсь, что так можно делать, но не нужно - лучше не завязываться на конкретную личность, ибо люди имеют свойство увольняться, болеть и т.п.).
Тоже простая концепция - это объединение пользователей в некое множество по какому-либо признаку. Группы могут как создаваться локально, так и тянуться из LDAP, либо все вместе.
Использование также повсеместное, как и у User, использование в схемах и процессах тоже аналогичное. Но есть важное отличие: именно группе/-ам предоставляется Application Access, оно же - право логина в систему. Какая-либо из групп, указанных в Application Access может быть назначена default, пользователи будут попадать в эту группу при создании. По умолчанию это группа jira-core-users или jira-software-users, создаваемые системой наряду с группой jira-administrators.
Проектные роли - гибкий и легкий способ привязки пользователей и групп к определенным проектам. Роли определяются администраторами Jira на уровне всей системы.
Роли используются в Permission schemes, Notidication schemes, Issue Security levels, а также в Conditions процессов. Различные плагины расширяют использование ролей. Кроме того, роли можно указывать в настройках видимости комментариев issues, а также использовать для предоставления доступа к сохраненным фильтрам и дашбордам.
Проектные роли чем-то похожи на группы, однако главное различие в том, что участие в группе глобально, а нахождение в роли зависит от проекта к проекту. Кроме того, управлять составом групп могут только администраторы Jira, а проектные роли могут быть могут назначаться администраторами проекта (т.е. имеющими разрешение Administer Projects).
По факту Project Lead является тоже проектной ролью, но в системе он выделен отдельно и по сути является атрибутом проекта. Такое выделение несет еще и организационную нагрузку - в списке проектов в системе видно кто является Project Lead (читай - кому нужно эскалировать вопросы).
Для каждого проекта Project Lead устанавливается отдельно и этот атрибут проекта является обязательным. По умолчанию данную роль занимает создатель проекта. Project Lead может использоваться как и все прочие роли, а кроме того в качестве Default Assignee проекта или компонента. Использование в схемах и процессах аналогично прочим ролям.
Однозначных рекомендаций вроде бы и нет, но следуя здравому смыслу на данную роль хорошо бы назначать фактического менеджера проекта. Кроме того, удобно дать данной роли право Administer Projects в Permission scheme.
Название говорит само за себя - исполнитель по умолчанию.
Используется в основном в 2-х местах: проектах и компонентах (и в одной пост-функции). Для того, чтобы задачи назначались на Default assignee, требуется выполнение нескольких условий:
Подразумевается, что в проекте по разработке программного продукта могут выделяться отдельные компоненты/модули (frontend, backend, database, etc.) и у каждого компонента может быть свой lead, руководитель.
Список компонентов является уникальным для каждого проекта. Соответственно, для каждого компонента опционально может быть указан component lead. Для того чтобы issue с данным компонентом был назначен на него, нужно в поле Default Assignee компонента указать Component Lead. Есть небольшая хитрость, связанная с тем, что для issue можно указать больше одного компонента. В таком случае, issue будет назначен на Component Lead того компонента, чье имя идет первым по алфавиту.
Все просто - это создатель issue.
Данная роль является атрибутом issue. Хитрость в том, что пользователь в проекте, имеющий разрешение Modify Reporter может изменить значение данного поля. По умолчанию это поле является обязательным, то есть не может быть пустым, однако есть вот такой возможный сценарий - пользователь, стоящий в поле Reporter, был удален (не деактивирован, а именно удален). В данном случае в этом поле будет стоять значение Anonymous. Кроме того, данная роль активно используется в валидаторах, условиях и пост-функциях процессов, а также Permission, Notification, Issue Security schemes.
Проще некуда - Исполнитель issue собственной персоной.
Данная роль также является атрибутом issue. Чтобы быть исполнителем, нужно иметь разрешение Assignable User. Кроме того, данное поле может иметь значение Unassigned, но это должно быть включено в глобальных настройках системы. Данный атрибут неразрывно связан с Default Assignee и Component Lead - именно из данных сущностей могут браться значения при назначении issue в автоматическом режиме. Еще важный момент - пользователя, являющегося исполнителем нельзя удалить - система будет ругаться. Для удаления (помним, что это не лучший вариант?) сначала нужно переназначить issue на другого исполнителя.
Очень интересная сущность, представленная в GUI счетчиком . Наблюдатель - это пользователь получающий уведомления о событиях с issue (так по умолчанию, если все настроено). Наблюдателем может быть каждый.
Наблюдатель является атрибутом issue, по факту является некой коллекцией пользователей. Для того, чтобы управлять наблюдателями для issue, пользователь должен иметь разрешение Manage Watchers. Кроме того, если сконфигурировано глобально в системе и не переопределено пользователем в своем профиле, то наблюдателем автоматически становится Reporter и пользователь, написавший хотя бы один комментарий к issue. Важно понимать, что Наблюдатель никак не относится с разрешениями, назначение пользователя наблюдателем никак не влияет на его права.
Особый тип кастомного поля, позволяющий выбирать одного или более пользователей в системе.
По умолчанию в системе не используется.
Особый тип кастомного поля, позволяющий выбирать одну или более групп в системе.
По умолчанию в системе не используется.
Многие плагины добавляют свои роли в список ролей Jira, а также имеют в своем функционале роли, которые никак не пересекаются с системой. Пример - Team Lead в Tempo Timesheets, роль существующая только внутри плагина.
Все очень индивидуально и зависит от плагина.
Опять-таки - все индивидуально.
Итак, мы попробовали разобраться - что же внутри у Jira с точки зрения банальной социологии. Надеюсь, данная статья помогла немного развеять туман.
Anna Zekunova
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
4 comments