Перейти к содержимому

POST /api/projects/:id/transfer-owner — Сменить владельца проекта

Сгенерировано из матриц + кода. Правки вносить в источники (docs/matrices/, server/routes/), не здесь.

ПолеЗначение
HTTPPOST /api/projects/:id/transfer-owner
AuthrequireAuth — только авторизованный
Scope токенаread_write
PG-функцииapi.transfer_project_owner
Таблицыproject, space_member
SRMSRM-313
RP (права)
Файл роутаserver/routes/projects.js
Статусdone

Аргументы запроса (best-effort из хендлера; путь-параметры опущены):

АргументГдеОбяз.Заметка
newOwnerIdbodyподтвердить
new_owner_idbodyподтвердить

Коды ответов/ошибок (из хендлера): 400 (+ 200) — уточнить причины вручную

Для человека

Как открыть: в списке проектов на карточке проекта откройте меню «⋯» и выберите «Сменить владельца». Затем укажите нового владельца из участников спейса.

Передаёт проект другому участнику его спейса: после смены новым владельцем становится выбранный участник, прежний теряет владельческие права. Полезно при передаче дел внутри команды.

Ограничения:

  • Новый владелец должен уже состоять в спейсе проекта (409, если нет). Пользователя со стороны сначала добавляют в спейс.
  • Сменить владельца может администратор организации, менеджер спейса или текущий владелец проекта. Остальным действие недоступно (403). Точные правила — RP-161.

Для агента

Запись — нужен токен со scope read_write (см. Конвенции). Вызывающий должен быть org_admin своей организации, spaceman спейса проекта или текущим владельцем (RP-161).

Тело запроса (JSON):

ПолеТипОбяз.Назначение
new_owner_iduuidдаНовый владелец. Должен уже состоять в спейсе проекта

Пример запроса:

Окно терминала
curl -X POST https://specbuilder.vnimanie.ai/api/projects/a1b2c3d4-.../transfer-owner \
-H "Authorization: Bearer tak_..." \
-H "Content-Type: application/json" \
-d '{"new_owner_id":"b2c3d4e5-..."}'

Ответ 200:

{ "ok": true }

Ответ всегда JSON.

Доменные коды (тело { error: "<КОД>" }) — см. Ошибки:

КодHTTPКогда
NOT_AUTHORIZED403Вызывающий не org_admin/spaceman/owner для этого проекта
PROJECT_NOT_FOUND404Проект не найден или невидим вызывающему
SPACE_NOT_FOUND404Спейс проекта не найден
PROJECT_HAS_NO_SPACE409У проекта нет спейса — некуда привязать владельца
NEW_OWNER_NOT_IN_SPACE409Назначаемый владелец не состоит в спейсе проекта

Связанные