Перейти к документации
База знаний

Приглашения

Поделитесь с тем, кто ещё не зарегистрировался, — и ему придёт приглашение.

Подробности

  • Любое добавление — это приглашение, независимо от того, стоит ли за адресом аккаунт OpenEmail. Оно несёт роль, адреса и целые домены, выбранные в момент отправки, поэтому принятие даёт ровно тот доступ, который запрашивали, а не голое членство — и из «Настройки → Участники», и из кнопки «Поделиться» в строке адреса. Никого не помещают в рабочее пространство, которое он не принял.
  • Ожидающее приглашение не даёт ничего. Это не строка участника и не доступ к адресу, и ни один путь авторизации в продукте его не читает. Для всех проверок человек остаётся посторонним до момента принятия — единственного места, где приглашение превращается в доступ. Поэтому экран участников перечисляет их отдельно от людей, под заголовком, который говорит, что они получат, а не что у них есть.
  • Ссылка — это 256 бит случайности, а база данных хранит только её хеш с ключом, поэтому утёкшая резервная копия не даёт рабочего приглашения. Срок жизни — четырнадцать дней, и для погашения обе половины должны сойтись: владение ссылкой доказывает, что человек прочитал почту, отправленную на этот адрес, а вход под этим адресом доказывает, кто именно принимает. Вход под другим аккаунтом — тот отказ, с которым люди сталкиваются на практике, и экран называет оба адреса и предлагает выйти и переключиться, а не оставляет человека выяснять, в каком аккаунте он находится.
  • Проигнорировать письмо — тоже не тупик. Тот, кого пригласили, а он зарегистрировался сам неделю спустя, найдёт приглашение ожидающим в меню рабочих пространств и на обзорной странице пространства, с кнопкой «Принять», пока оно открыто. Регистрация с другим адресом не даёт ничего, и приглашение остаётся неотвеченным.
  • Приглашение можно отозвать — ссылка умирает немедленно — или отправить повторно: тогда выпускается новая ссылка, две недели отсчитываются заново, а старая выводится из обращения. Повторный запрос обновляет первое приглашение, а не отправляет второе. Ограничения здесь защищают от злоупотреблений и не являются лимитом на места: участников может быть сколько угодно, и оплата за человека не берётся никогда. Одно письмо раз в десять минут на любой конкретный адрес, сто неотвеченных приглашений на рабочее пространство и двести отправленных за скользящие сутки — в расчёте на рабочее пространство и на человека. Счётчик живёт в журнале, работающем только на дозапись, а не на самих приглашениях, поэтому отзыв приглашения, удаление названной в нём роли или удаление рабочего пространства лимит не возвращают.
  • POST /members в API делает то же, что и экран: он отвечает 202 с приглашением, а не с участником, кому бы ни принадлежал адрес, а PATCH и вызовы выдачи доступа работают только с тем, кто уже внутри.