Перейти к содержанию

Управление командой

Раздел описывает работу с пользователями трекера TrafMate: учётные записи, роли, разграничение доступа (ACL), API-ключи и восстановление пароля.

Пользователи

Управление пользователями доступно в разделе «Пользователи». Раздел виден только администраторам.

Каждая учётная запись содержит поля:

Поле Описание
Логин Уникальное имя для входа
Роль admin или user
Статус active (активна) или paused (приостановлена)
Пароль Задаётся при создании; хранится в виде bcrypt-хеша

Пароль никогда не хранится и не отображается в открытом виде - в базе данных сохраняется только его bcrypt-хеш.

Защищённые учётные записи

Отдельные учётные записи помечаются флагом protected. Такую запись нельзя:

  • удалить;
  • деактивировать (перевести в статус paused);
  • лишить роли admin.

Ограничение действует не только в интерфейсе, но и на уровне базы данных - через триггеры. Это означает, что защищённую запись невозможно испортить даже прямым SQL-запросом в обход UI. Механизм защищает основной root-аккаунт от случайной или ошибочной блокировки.

Роли

В трекере две роли:

  • admin - полный доступ ко всем разделам, сущностям и настройкам без ограничений.
  • user (баер) - ограниченный доступ, определяемый настройками ACL. Видит только те разделы и только те сущности, которые ему разрешены.

Разграничение доступа (ACL)

Доступ баера ограничивается двумя независимыми слоями.

Слой 1. Доступ к разделам

Определяется набором ресурсов пользователя (user_resources) - какие пункты меню и какие API-эндпоинты доступны учётной записи. Управляемые разделы:

  • campaigns - кампании;
  • offers - офферы;
  • landings - лендинги;
  • streams - потоки;
  • domains - домены;
  • reports - отчёты;
  • conversions - конверсии;
  • clicks - клики;
  • и другие.

Если раздел не выдан пользователю, соответствующий пункт меню и его API недоступны.

Слой 2. Изоляция по группам

Определяется набором групп пользователя (user_groups). Баер видит только сущности, относящиеся к его группам. Сущности чужих групп для него не существуют.

Поведение при нарушении

Если не-администратор обращается к чужой группе или к административному эндпоинту, запрос отклоняется с кодом 403 (Forbidden).

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

Управление доступом пользователя

Настройка доступа выполняется в карточке пользователя. Администратор задаёт:

  • Разделы (ресурсы) - к каким пунктам меню и API имеет доступ пользователь;
  • Группы - какие группы сущностей видит пользователь.

Изменения вступают в силу для всех обращений пользователя, включая доступ по его API-ключам (см. ниже).

API-ключи (Admin API)

API-ключи создаются в разделе «Настройки» -> карточка «API-ключи». Раздел доступен только администраторам.

Назначение

Ключ даёт доступ к REST API трекера. Формат ключа: префикс tm_ и hex-строка (например, tm_a1b2c3...).

Ключ передаётся в запросе одним из способов:

  • заголовок Api-Key: <ключ>;
  • заголовок Authorization: Bearer <ключ>.

Наследование прав (ACL)

API-ключ наследует права своего пользователя. Ключ не даёт больше доступа, чем есть у владельца:

  • ключ администратора имеет полный доступ;
  • ключ баера видит только разделы и группы этого баера - те же ограничения ACL, что и в интерфейсе.

Показ и хранение

Ключ показывается полностью только один раз - в момент создания. Скопируйте и сохраните его сразу. При последующих просмотрах ключ отображается в маскированном виде и восстановить его целиком нельзя.

Отзыв

Чтобы отозвать доступ, удалите ключ. После удаления запросы с этим ключом перестают работать немедленно.

Восстановление пароля

Самостоятельного сброса пароля пользователем нет. Новый пароль задаёт администратор в карточке пользователя.

Порядок действий:

  1. Откройте раздел «Пользователи».
  2. Откройте карточку нужного пользователя.
  3. Задайте новый пароль и сохраните.

Новый пароль сохраняется в виде bcrypt-хеша и вступает в силу сразу.