POST /api/site-admin/organizations/:id/set-admin — Назначить администратора организации
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/site-admin/organizations/:id/set-admin |
| Auth | requireSiteAdmin — только site-admin |
| Scope токена | read_write |
| PG-функции | api.admin_set_org_admin |
| Таблицы | org_member |
| SRM | SRM-074 |
| RP (права) | RP-060, RP-061, RP-062 |
| Файл роута | server/routes/site-admin.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
userId | body | подтвердить |
Коды ответов/ошибок (из хендлера): 400 (+ 200) — уточнить причины вручную
Для человека
Как открыть: Admin Panel (пароль → код TOTP) → раздел «Организации» → у нужной организации действие «Назначить администратора» → выберите пользователя.
Делает выбранного пользователя администратором указанной организации. Это способ платформенного администратора передать управление организацией её собственному админу: после назначения этот пользователь сможет вести свою организацию — коллекции, спейсы, участников, инвайты — в её пределах.
Назначение «мягкое»: если пользователь уже состоит в организации, ему просто повышают роль до администратора; если ещё не состоял — он добавляется участником сразу с ролью администратора. Указать нужно реального пользователя и существующую организацию: если пользователь или организация не найдены, действие вернёт ошибку «Пользователь или организация не найдены» (400). Найти id пользователя помогает раздел «Пользователи». Подробнее про роли в организации — домен Организации.
Кто может. Только администратор платформы.
Для агента
Это операция site-admin, и она недоступна API-токену ни на каком scope. Назначение администратора организации — администраторская операция платформы под человеческой cookie-сессией.
Путь /api/site-admin/* закрыт для Bearer-токенов в agent-gate (server/auth/agentGate.js) — не в write-allowlist (закрыто по умолчанию), поэтому POST с Authorization: Bearer tak_... возвращает 403 (Forbidden for token). Markdown-зеркала нет.
Под защитой requireSiteAdmin. Id организации — в пути; id пользователя — в теле. Операция идемпотентна (upsert: вставка участника с ролью администратора либо повышение существующей роли):
curl -X POST https://specbuilder.vnimanie.ai/api/site-admin/organizations/f1e2d3c4-.../set-admin \ -b admin-cookies.txt \ -H "Content-Type: application/json" \ -d '{"userId":"7a6b5c4d-..."}'Путь-параметр: :id — id организации (uuid).
Тело запроса (JSON):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
userId | uuid | да | Пользователь, которому даётся роль администратора в этой организации |
Ответ 200:
{ "ok": true }Ошибки: 400 — userId не передан; 400 с текстом «Пользователь или организация не найдены» — несуществующий пользователь или организация (нарушение внешнего ключа нормализуется в это сообщение).
Связанные
- Экраны: Admin Panel
- Конвенции · Роли · Ошибки · Глоссарий