IDEAS: RBAC system design notes
This commit is contained in:
parent
c8f343f588
commit
50ab60f723
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user