POST /api/projects/:id/transfer-owner — Сменить владельца проекта
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/projects/:id/transfer-owner |
| Auth | requireAuth — только авторизованный |
| Scope токена | read_write |
| PG-функции | api.transfer_project_owner |
| Таблицы | project, space_member |
| SRM | SRM-313 |
| RP (права) | — |
| Файл роута | server/routes/projects.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
newOwnerId | body | подтвердить | |
new_owner_id | body | подтвердить |
Коды ответов/ошибок (из хендлера): 400 (+ 200) — уточнить причины вручную
Для человека
Как открыть: в списке проектов на карточке проекта откройте меню «⋯» и выберите «Сменить владельца». Затем укажите нового владельца из участников спейса.
Передаёт проект другому участнику его спейса: после смены новым владельцем становится выбранный участник, прежний теряет владельческие права. Полезно при передаче дел внутри команды.
Ограничения:
- Новый владелец должен уже состоять в спейсе проекта (
409, если нет). Пользователя со стороны сначала добавляют в спейс. - Сменить владельца может администратор организации, менеджер спейса или текущий владелец проекта. Остальным действие недоступно (
403). Точные правила — RP-161.
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). Вызывающий должен быть org_admin своей организации, spaceman спейса проекта или текущим владельцем (RP-161).
Тело запроса (JSON):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
new_owner_id | uuid | да | Новый владелец. Должен уже состоять в спейсе проекта |
Пример запроса:
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_AUTHORIZED | 403 | Вызывающий не org_admin/spaceman/owner для этого проекта |
PROJECT_NOT_FOUND | 404 | Проект не найден или невидим вызывающему |
SPACE_NOT_FOUND | 404 | Спейс проекта не найден |
PROJECT_HAS_NO_SPACE | 409 | У проекта нет спейса — некуда привязать владельца |
NEW_OWNER_NOT_IN_SPACE | 409 | Назначаемый владелец не состоит в спейсе проекта |
Связанные
- Экраны: Список проектов
- Конвенции · Роли · Ошибки · Глоссарий