Как устроены права
Права на действия даёт роль человека в конкретном проекте, а не его должность: один и тот же человек может быть менеджером в одном проекте и наблюдателем в другом. Общие роли редактирует только администратор приложения — в настройках приложения → «Роли». Администратор проекта не становится от этого администратором приложения.
Права проверяются по трём уровням: роль в проекте, наличие у роли конкретного разрешения и, если операция касается типа задачи, ограничение этого разрешения группами типов.

Штатные роли
В приложении четыре готовые роли. Две из них системные — их права не редактируются; две можно настраивать и создавать свои.
- «Administrator (admin)» — администратор проекта: полный доступ, ограничения групп типов на него не действуют. Системная роль.
- «Manager (manager)» — ведёт настройки проекта, задачи и вехи. Штатно: создание, правка и удаление задач, смена статуса, назначение, наблюдатели, сроки, внутренние комментарии, просмотр и запись времени, управление вехами. Права на wiki и спринты явно не выданы.
- «Member (member)» — работает с задачами: создание, правка, смена статуса, назначение, наблюдатели, сроки, внутренние комментарии, просмотр и запись времени. Без удаления задач и управления вехами.
- «Viewer (viewer)» — только чтение задач доступного проекта, отдельных прав нет. Системная роль.
Как настроить роль
Нажмите «Добавить роль», раскройте её, заполните название, идентификатор и описание, отметьте права и сохраните. Отдельных групп ролей в интерфейсе нет: группы пользователей Webasyst используются при добавлении участников, а группы типов задач — при ограничении прав.
- Название, slug и описание — как роль называется и что означает. Slug admin занят системной ролью.
- «только чтение» — признак readonly: у такой роли редактор прав скрыт, а переходы статусов запрещены. Системные readonly-роли не редактируются.
- «все типы» — область действия включённого права. Раскройте её и отметьте группы типов; если не отмечена ни одна, право действует на все типы.
- «Доступ к проектам» — это право Webasyst, а не роли приложения: «только назначенные проекты» показывают человеку его проекты, «все проекты» — все. Оно не выдаёт прав на действия, поэтому не заменяет роль.
Полный перечень прав
Каждое разрешение можно включить для всех типов, включить для выбранных групп или выключить; у новой роли все они выключены. Подписи в редакторе английские — ниже они приведены так, как их видит администратор, с идентификатором в скобках.
- «Create tasks (task.create)» — создание задач.
- «Edit tasks (task.edit)» — редактирование задач.
- «Delete tasks (task.delete)» — удаление задач.
- «Change status (task.change_status)» — смена статуса; дополнительно проверяется разрешён ли переход в рабочем процессе.
- «Assign users (task.assign)» — назначение исполнителя.
- «Manage watchers (task.manage_watchers)» — управление наблюдателями.
- «Set dates (task.set_dates)» — изменение сроков задачи.
- «Manage milestones (milestone.edit)» — управление вехами.
- «Manage sprints (sprint.edit)» — управление спринтами; отдельные операции могут требовать администратора приложения.
- «View wiki (wiki.view)» — просмотр wiki с учётом видимости страницы.
- «Edit wiki (wiki.edit)» — создание и правка страниц wiki.
- «Internal comments (comment.internal)» — доступ к внутренним комментариям.
- «View time logs (time.view)» — просмотр учёта времени.
- «Log time (time.log)» — запись трудозатрат.
Просмотра задач в списке прав нет: он подразумевается у любого участника проекта. Без роли прав нет вовсе, кроме администратора приложения.
Ограничения по группам типов
Ограничение по группам работает не всегда, а только когда операция передаёт тип задачи. Общая проверка права без типа группу не смотрит, поэтому ограничение группами нельзя считать фильтром видимости проекта или всех его разделов.
Если снять последнюю отмеченную группу, область права снова становится «все типы», а не «ни одного»: запрет выдаётся только выключением самого права.
Кто открывает настройки
Общие настройки приложения доступны администратору приложения; обычному пользователю остаются «Мои настройки». В проекте общие вкладки открываются ролям admin и manager и администратору приложения. Удаление проекта разрешено только admin проекта и администратору приложения. Набор прав на задачи сам по себе управление настройками проекта не даёт.
Типичный случай
Команда из пяти человек. Одному дают admin — он ведёт настройки проекта. Те, кто работает с задачами, получают member: им хватает создания, правки, статусов и сроков. Руководителю, которому нужны настройки проекта и вехи, — manager. Заказчику или наблюдателю — viewer: он видит задачи, но ничего не меняет.
Если человек должен видеть задачи, но не менять их, viewer подходит больше, чем member с урезанными правами: роль с отдельными галочками придётся перепроверять при каждом изменении рабочего процесса.
Что важно учесть
Не путайте роль проекта с администрированием приложения: пользовательская роль с правами задач не открывает общие настройки проекта, а назначение admin проекта не открывает общие настройки приложения.
Смена статуса и переход в рабочем процессе проверяются вместе — права «Change status» недостаточно, если нужного перехода для роли нет.
Новые роли создавайте под задачу, а не под человека: роль живёт дольше, а состав людей меняется. Перед удалением или переименованием роли посмотрите, в каких проектах она назначена.

