From 50ab60f723ddc4bad68721057b2ed96670f8df8a Mon Sep 17 00:00:00 2001 From: Markov Date: Sat, 28 Feb 2026 00:42:58 +0100 Subject: [PATCH] IDEAS: RBAC system design notes --- archive/IDEAS.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/archive/IDEAS.md b/archive/IDEAS.md index 6c2cfbe..2fa7ff3 100644 --- a/archive/IDEAS.md +++ b/archive/IDEAS.md @@ -628,3 +628,37 @@ Tracker отслеживает подключённых агентов: --- *Документ для обсуждения и аналитики. Обновляется по мере развития идей.* + +## RBAC — Система прав (TODO) + +### Идея +Гранулярные права для участников проекта и агентов. + +### Участники проекта +- **Owner** — создатель проекта, полный доступ (всегда по умолчанию) +- **Member** — стандартный участник, полный доступ (текущее поведение) +- **Viewer** — только чтение (уже решено ранее) +- **Custom roles** — настраиваемые роли с набором permissions + +### Permissions (идеи) +- `tasks.create` — создание задач +- `tasks.edit` — редактирование задач +- `tasks.delete` — удаление задач +- `tasks.change_status` — смена статуса +- `tasks.assign` — назначение исполнителя +- `files.upload` — загрузка файлов +- `files.delete` — удаление файлов +- `chat.send` — отправка сообщений +- `project.settings` — доступ к настройкам проекта +- `members.manage` — добавление/удаление участников + +### Права для агентов +- Ограничение действий через ту же систему permissions +- Например: агент может менять статус, но не может удалять задачи +- Настраивается в AgentConfig или через роли + +### Реализация (потом) +- Таблица `roles` (project-scoped) +- Таблица `role_permissions` (role_id → permission) +- `project_members.role_id` вместо текущего `role: str` +- Middleware/dependency проверяет permissions на каждом endpoint