Приглашения
Добавляйте людей в свою команду, приглашая их по email-адресу и с назначением роли. Приглашённый получает защищённую ссылку и присоединяется, как только принимает приглашение, будучи авторизованным под приглашённым адресом.
Кто может приглашать
Для приглашения требуется право manage_team, поэтому отправлять приглашения могут только owner и администраторы. См. Роли и права.
Отправка приглашения
Dashboard → Settings → Team (/dashboard/settings?tab=team)
- Введите email-адрес приглашаемого.
- Выберите роль:
admin,memberилиviewer. (ownerникогда не является назначаемым; недопустимое значение откатывается доmember.) - Отправьте приглашение.
Что происходит на бэкенде:
- Email нормализуется (обрезаются пробелы, приводится к нижнему регистру) и проверяется.
- Если этот человек уже является участником команды, приглашение отклоняется с ошибкой.
- Проверяется лимит мест: активные участники плюс ожидающие приглашения должны быть ниже лимита плана владельца (
max_team_members). Если команда заполнена, вам предлагается обновить план. См. Места и биллинг. - Создаётся (или обновляется) ожидающее приглашение для пары
(team, email), и отправляется письмо с уникальной ссылкой.
Приглашения upsert-ятся по email: повторное приглашение того же адреса обновляет токен, роль и срок действия и сбрасывает приглашение в состояние pending — вы никогда не накапливаете дублирующиеся приглашения для одного человека.
Жизненный цикл приглашения
| Состояние | Значение |
|---|---|
pending |
Отправлено, ещё не принято и не отклонено, срок не истёк |
accepted |
Приглашённый присоединился к команде |
declined |
Приглашённый отклонил ссылку |
| expired | Срок действия ссылки (по умолчанию 7 дней / 168 часов) истёк |
Принять можно только приглашения, которые находятся в состоянии pending и не истекли. Истёкшие или уже обработанные ссылки показывают «This invitation is invalid or has expired.»
Безопасность токена
- Ссылка приглашения несёт секретный токен; в базе данных хранится только его SHA-256 хеш, поэтому утёкшую строку базы данных нельзя превратить обратно в рабочую ссылку.
- Принятие требует авторизации под приглашённым email. Ссылка, пересланная или украденная кем-то другим, не может быть использована — при принятии проверяется, что email вашей сессии совпадает с приглашённым адресом.
- Токены истекают через 7 дней по умолчанию.
Процесс принятия
- Приглашённый переходит по ссылке:
GET /team/invite/{token}. - Страница приглашения показывает название команды и детали приглашения.
- Если приглашённый не авторизован, ему предлагается сначала войти (или зарегистрироваться) с приглашённым email.
- Если он авторизован, но под другим email, в принятии отказывается с сообщением, указывающим правильный адрес.
- Приглашённый принимает приглашение:
POST /team/invite/{token}/accept. - В рамках одной транзакции:
- Подтверждается, что команда всё ещё существует.
- Повторно проверяется лимит мест (защищает от заполнения команды между отправкой и принятием).
- Создаётся строка участия с приглашённой ролью (ограниченной до admin/member/viewer).
- Активная команда пользователя переключается на эту команду.
- Приглашение помечается как
accepted.
- Приглашённый попадает на дашборд, работая теперь внутри новой команды.
Если на момент принятия команда заполнена, приглашённый видит: «This team has reached its member limit. Ask the owner to upgrade the plan.»
Отклонение
Приглашённый может отклонить приглашение со страницы приглашения: POST /team/invite/{token}/decline. Это помечает приглашение как declined и не требует авторизации.
Управление участниками после присоединения
Владельцы и администраторы могут управлять участниками из Dashboard → Settings → Team:
- Сменить роль — Установить участнику роль admin, member или viewer. Вы не можете изменить собственную роль, и роль владельца здесь изменить нельзя (используйте передачу владения).
- Удалить участника — Удалить участника, не являющегося владельцем. Он автоматически перенаправляется обратно на свою персональную команду, чтобы никогда не оставаться заблокированным. Себя таким способом удалить нельзя (используйте «Leave team»); владельца удалить нельзя.
Выход и передача
- Выйти из команды — Любой участник, кроме владельца, может выйти (
POST /dashboard/settings/team/leave); его активная команда возвращается к персональной команде. Владелец не может выйти — он должен сначала передать владение. - Передать владение — Владелец передаёт владение существующему участнику (
POST /dashboard/settings/team/transfer, требуетtransfer_ownership). В рамках одной транзакции новый владелец становитсяowner, а прежний владелец становитсяadmin, сохраняя инвариант «ровно один владелец». Цель уже должна быть участником команды.
Дальнейшие шаги
- Роли и права — Что может делать каждая роль
- Места и биллинг — Как работают лимиты мест и тарифные планы
- Обзор команд — Концепция субаккаунтов компании