Приглашения и роли

Как пригласить участника, выдать роль и доступ к ресурсам, отозвать или отменить приглашение.

Приглашения и роли

В workspace можно пригласить других пользователей и выдать им роль и набор разрешений. Удобно для команды, агентского ведения клиентов или передачи доступа подрядчику.

Кого можно пригласить

Любого, у кого есть email. Если человек уже зарегистрирован в Framix — accept-ссылка ведёт на UI с кнопкой «Принять / Отклонить». Если нет — на signup, после регистрации membership создаётся автоматически.

Как пригласить

  1. Откройте /account/workspaces/<id> → блок «Участники».
  2. Нажмите «Пригласить».
  3. Укажите email, выберите роль (admin / member / viewer).
  4. Дополнительно настройте permissions для member — какие ресурсы видит (agents, projects, CRM, statistics, commerce, files). Для admin и viewer permissions не настраиваются: admin видит всё, viewer — только read-only.
  5. Отправьте приглашение.

В письме придёт ссылка вида https://framix.app/invite/<token>. Срок жизни приглашения по умолчанию — несколько дней; после expiresAt оно переходит в expired и принять его уже нельзя.

Роль owner через приглашение не выдаётся — для смены владельца есть отдельный flow «Передача ownership».

Что доступно по роли

РольПо умолчанию
ownerПолный доступ ко всем ресурсам и настройкам workspace, удаление, передача ownership, биллинг.
adminПолный доступ ко всем ресурсам. Не может удалить workspace и не платит за него — биллинг лежит на owner'е.
memberДоступ только к ресурсам, перечисленным в permissions. Удалять не может — это hard-rule.
viewerRead-only по всем ресурсам, к которым permissions дают чтение. Никаких изменений.

Структура permissions (для member):

{
  "agents":   "all" | ["agt_id1", "agt_id2"],
  "projects": "all" | ["prj_id1"],
  "crm":      true,
  "stats":    true,
  "commerce": true,
  "files":    true
}

Отсутствие ключа = нет доступа. "all" — полный доступ к ресурсу типа. Массив id — точечный доступ.

Примеры:

  • Контент-менеджер на один сайт: { projects: ["prj_blog"], files: true }.
  • SMM, ведущий чат-агента: { agents: ["agt_support"], crm: true }.
  • Бухгалтер клиента: роль viewer + { commerce: true, stats: true } — видит выручку и отчёты, ничего не правит.

Принятие и отказ

Адресат получает email со ссылкой. По клику видит:

  • от кого приглашение, в какой workspace, на какую роль;
  • кнопки «Принять» / «Отклонить».

После принятия workspace появляется в его списке в шапке и через /account/workspaces. После отклонения — приглашение помечается declined, повторно пригласить можно только новым приглашением.

Управление участниками

/account/workspaces/<id> → блок «Участники»:

ДействиеКто может
Изменить рольowner
Изменить permissions member'уowner
Удалить участника из workspaceowner
Покинуть workspaceсам участник (но owner — нет, нужно сначала передать ownership)

Управление приглашениями

В том же блоке — список pending-приглашений. Owner может отменить ещё не принятое приглашение (cancelled статус) — ссылка перестанет работать.

После accept'а membership создаётся как обычная запись в workspace_member; в дальнейшем доступом управляйте через неё, а не через старое приглашение.

Биллинг и команда

  • Списания идут с баланса owner'а workspace, а не с приглашённых участников.
  • Action'ы агентов/AI, инициированные приглашённым участником через AI-чат редактора, списываются с баланса owner'а того workspace, в котором лежит сайт/агент.
  • Личный AI-чат /ai каждого участника — это его персональный ассистент, списания идут с его собственного баланса, не с workspace.

Что хранится в инфраструктуре

ТаблицаЧто внутри
workspace_membermembership: workspaceId × userId × role × permissions
workspace_invitationpending/accepted/declined/cancelled/expired приглашения с токеном для accept-ссылки

На этой странице