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

POST /api/site-admin/organizations/:id/set-admin — Назначить администратора организации

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

ПолеЗначение
HTTPPOST /api/site-admin/organizations/:id/set-admin
AuthrequireSiteAdmin — только site-admin
Scope токенаread_write
PG-функцииapi.admin_set_org_admin
Таблицыorg_member
SRMSRM-074
RP (права)RP-060, RP-061, RP-062
Файл роутаserver/routes/site-admin.js
Статусdone

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

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

Коды ответов/ошибок (из хендлера): 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):

ПолеТипОбяз.Назначение
userIduuidдаПользователь, которому даётся роль администратора в этой организации

Ответ 200:

{ "ok": true }

Ошибки: 400userId не передан; 400 с текстом «Пользователь или организация не найдены» — несуществующий пользователь или организация (нарушение внешнего ключа нормализуется в это сообщение).

Связанные