7. Проверка политики прав¶
Перед каждым действием AI проверяет:
- Тип клиента — B2C не может вызвать команды для B2B (
repairCamera,runLineTestи т.д.) - Уровень доступа — B2B-партнёр с уровнем 3 (ограниченный) не может всё, что уровень 2 (полный). Текущий аналог: авторизация в ss_service_bot через service token → GIS API → SSO → GQL JWT
- Привязка к устройствам — партнёр работает только со своими устройствами. Проверка через GIS API
- Rate limits — ограничение на частоту команд. Настраиваемый dimension (
device_id,user_id,global) и period (minute,hour,day)
Если прав нет — AI вежливо объясняет причину.
Права настраиваются через админку: какие действия доступны какому типу клиента и уровню доступа.
Пример разделения команд по доступу¶
Команды ниже — примеры. Финальный набор и распределение по уровням определяется при реализации.
| Команда | B2C | B2B (ур. 2) | B2B (ур. 3) |
|---|---|---|---|
checkIntercomStatus |
✅ | ✅ | ✅ |
GetDigitalKeys |
✅ | ✅ | ✅ |
repairCamera |
— | ✅ | — |
runLineTest |
— | ✅ | — |
generateRTSPLink |
— | ✅ | ✅ |
restartStream |
— | ✅ | — |
synchronizeKeys |
— | ✅ | ✅ |
changeFlatsLevels |
— | ✅ | — |