Ролевая модель (RBAC) — Grace CRM Assistant
Версия: 1.0 Дата: 4 мая 2026
Статус: Этап 0 -- согласование файл 04_rbac.md
1. Принципы ролевой модели
-
Минимальные права: каждая роль получает только те права, которые необходимы для выполнения её функции
-
Изоляция данных: менеджер видит только свои проекты и клиентов
-
Конфиденциальность премий: данные о расчёте премии (Кк) видны только самому менеджеру и его непосредственному руководителю (РОП)
-
Наследование: роли не наследуются, каждая назначается явно
-
Аудит: все действия фиксируются в audit log с timestamp и user_id
2. Роли системы
2.1 Контур Sales AI
| Роль | ID | Назначение |
|---|---|---|
| Менеджер по продажам | manager |
Работа со своими проектами, рекомендации, уведомления |
| Руководитель отдела продаж | rop |
Мониторинг команды, эскалации, аналитика по отделу |
| Заместитель ГД | deputy_gd |
Стратегическая аналитика, агрегированные данные |
| Администратор системы | admin |
Управление системой, конфиг, синхронизация |
2.2 Контур Knowledge AI
| Роль | ID | Назначение |
|---|---|---|
| Ответственный за базу знаний | knowledge_manager |
Загрузка документов, управление базой знаний |
| Читатель базы знаний | knowledge_reader |
Поиск и просмотр документов |
2.3 Системные роли
| Роль | ID | Назначение |
|---|---|---|
| Системный интегратор | system |
Межсистемное взаимодействие (API-to-API) |
3. Матрица прав доступа
3.1 Данные CRM
| Объект | manager | rop | deputy_gd | admin |
|---|---|---|---|---|
| Свои проекты (просмотр) | ✅ | ✅ | ✅ | ✅ |
| Все проекты команды (просмотр) | ❌ | ✅ | ✅ | ✅ |
| Все проекты компании (просмотр) | ❌ | ❌ | ✅ | ✅ |
| Свои клиенты (просмотр) | ✅ | ✅ | ✅ | ✅ |
| Все клиенты (просмотр) | ❌ | ✅ | ✅ | ✅ |
| Комментарии по своим проектам | ✅ | ✅ | ✅ | ✅ |
| Комментарии по всем проектам | ❌ | ✅ | ✅ | ✅ |
3.2 Рекомендации
| Действие | manager | rop | deputy_gd | admin |
|---|---|---|---|---|
| Получать рекомендации по своим проектам | ✅ | ✅ | ❌ | ✅ |
| Просматривать рекомендации по команде | ❌ | ✅ | ❌ | ✅ |
| Подтверждать выполнение рекомендации | ✅ | ✅ | ❌ | ✅ |
| Запрашивать рекомендацию вручную | ✅ | ✅ | ❌ | ✅ |
3.3 Аналитика
| Объект | manager | rop | deputy_gd | admin |
|---|---|---|---|---|
| Своя воронка продаж | ✅ | ✅ | ✅ | ✅ |
| Воронка по команде | ❌ | ✅ | ✅ | ✅ |
| Агрегированная аналитика компании | ❌ | ❌ | ✅ | ✅ |
| Свой коэффициент качества (Кк) | ✅ | ✅ | ❌ | ✅ |
| Кк по команде | ❌ | ✅ | ❌ | ✅ |
| Кк агрегированно по отделу | ❌ | ❌ | ✅ | ✅ |
| Свой прогноз премии | ✅ | ✅ | ❌ | ✅ |
| Прогноз премии по команде | ❌ | ✅ | ❌ | ✅ |
| Прогноз премии по всему отделу | ❌ | ❌ | ❌ | ✅ |
Примечание: Зам. ГД видит только агрегированные данные по отделу, без персональных показателей менеджеров.
3.4 База знаний
| Действие | manager | rop | deputy_gd | knowledge_manager | admin |
|---|---|---|---|---|---|
| Поиск по базе знаний | ✅ | ✅ | ✅ | ✅ | ✅ |
| Просмотр документов | ✅ | ✅ | ✅ | ✅ | ✅ |
| Загрузка документов | ❌ | ❌ | ❌ | ✅ | ✅ |
| Редактирование документов | ❌ | ❌ | ❌ | ✅ | ✅ |
| Удаление документов | ❌ | ❌ | ❌ | ✅ | ✅ |
| Запуск Lint Agent (аудит) | ❌ | ❌ | ❌ | ✅ | ✅ |
3.5 Управление системой
| Действие | manager | rop | deputy_gd | knowledge_manager | admin |
|---|---|---|---|---|---|
| Запуск синхронизации | ❌ | ❌ | ❌ | ❌ | ✅ |
| Просмотр статуса синхронизации | ❌ | ❌ | ❌ | ❌ | ✅ |
| Изменение правил проверки Quality Agent | ❌ | ❌ | ❌ | ❌ | ✅ |
| Изменение SLA-параметров | ❌ | ❌ | ❌ | ❌ | ✅ |
| Просмотр audit log | ❌ | ❌ | ❌ | ❌ | ✅ |
| Управление пользователями и ролями | ❌ | ❌ | ❌ | ❌ | ✅ |
3.6 Уведомления
| Действие | manager | rop | deputy_gd | admin |
|---|---|---|---|---|
| Получать уведомления о своих проектах | ✅ | ✅ | ❌ | ✅ |
| Получать сводку по команде | ❌ | ✅ | ✅ | ✅ |
| Получать эскалации | ❌ | ✅ | ✅ | ✅ |
| Настраивать предпочтительный канал (Mattermost/Telegram) | ✅ | ✅ | ✅ | ✅ |
4. Изоляция данных: правила фильтрации
Менеджер (role: manager)
projects WHERE manager_id = {current_user_id}
accounts WHERE manager_id = {current_user_id}
OR assistant_user_id = {current_user_id}
recommendations WHERE manager_id = {current_user_id}
kk_score WHERE manager_id = {current_user_id}
bonus_forecast WHERE manager_id = {current_user_id}
РОП (role: rop)
projects WHERE manager_id IN (
SELECT id FROM users WHERE department_id = {rop_department_id}
)
-- или конфигурируемый список подчинённых менеджеров
Зам. ГД (role: deputy_gd)
-- Только агрегированные данные, без персональных показателей
SELECT COUNT(*), SUM(amount), AVG(probability_percent)
FROM projects
-- без разбивки по конкретным менеджерам в разделе премий
5. Назначение ролей
5.1 Текущее назначение (I-TECH)
| Пользователь | Роль в Grace CRM | Роль в AI-системе |
|---|---|---|
| Менеджеры отдела продаж | Продажи | manager |
| Руководитель отдела продаж | РОП | rop |
| Заместитель ГД по развитию | Зам. ГД | deputy_gd |
| Дмитрий Калдарбеков | Руководитель отдела цифровизации | admin |
| Ответственный за базу знаний | -- | knowledge_manager |
5.2 Правила назначения
-
Роль назначается администратором системы
-
Один пользователь может иметь несколько ролей (например,
rop+knowledge_reader) -
Назначение ролей фиксируется в audit log
-
Роли синхронизируются с учётными записями Grace CRM (при наличии SSO/LDAP)
6. Аутентификация
6.1 Режимы
| Режим | Применение |
|---|---|
| SSO через Grace CRM | Основной режим для сотрудников I-TECH |
| JWT Bearer Token | Межсистемные интеграции (1С, BI, ERP) |
| API Key | Системные интеграторы (role: system) |
6.2 Параметры JWT
| Параметр | Значение |
|---|---|
| Алгоритм | RS256 |
| Срок действия | 8 часов (рабочая смена) |
| Refresh token | 30 дней |
| Payload | user_id, roles[], department_id, exp |
7. Audit Log
Все действия пользователей фиксируются со следующими полями:
| Поле | Описание |
|---|---|
timestamp |
Дата и время события |
user_id |
ID пользователя |
user_role |
Роль на момент действия |
action |
Тип действия (READ / WRITE / DELETE / SYNC / LOGIN) |
resource_type |
Тип объекта (project / recommendation / document / ...) |
resource_id |
ID объекта |
ip_address |
IP-адрес запроса |
result |
success / forbidden / error |
Обязательно логируются:
-
Просмотр данных о премиях и Кк
-
Загрузка и удаление документов из базы знаний
-
Запуск синхронизации
-
Изменение конфигурации
-
Назначение и изменение ролей
-
Все неудачные попытки авторизации
Хранение: audit log хранится 12 месяцев, доступен только admin.
No comments to display
No comments to display